Просмотр исходного кода

update DescribeCenChildInstanceRouteEntries param ChildInstanceRegionId not required.

sdk-team 4 лет назад
Родитель
Сommit
f0d399036b
75 измененных файлов с 5235 добавлено и 5 удалено
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 60 0
      cbn/CMakeLists.txt
  4. 120 0
      cbn/include/alibabacloud/cbn/CbnClient.h
  5. 71 0
      cbn/include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.h
  6. 49 0
      cbn/include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.h
  7. 66 0
      cbn/include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainRequest.h
  8. 49 0
      cbn/include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainResult.h
  9. 75 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainRequest.h
  10. 51 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainResult.h
  11. 3 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterRequest.h
  12. 60 0
      cbn/include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainRequest.h
  13. 49 0
      cbn/include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainResult.h
  14. 69 0
      cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersRequest.h
  15. 49 0
      cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersResult.h
  16. 66 0
      cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesRequest.h
  17. 49 0
      cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesResult.h
  18. 66 0
      cbn/include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainRequest.h
  19. 49 0
      cbn/include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainResult.h
  20. 66 0
      cbn/include/alibabacloud/cbn/model/ListGrantVSwitchEnisRequest.h
  21. 61 0
      cbn/include/alibabacloud/cbn/model/ListGrantVSwitchEnisResult.h
  22. 3 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterAvailableResourceRequest.h
  23. 78 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsRequest.h
  24. 67 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsResult.h
  25. 66 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesRequest.h
  26. 57 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesResult.h
  27. 75 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsRequest.h
  28. 64 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsResult.h
  29. 81 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsRequest.h
  30. 73 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsResult.h
  31. 5 4
      cbn/include/alibabacloud/cbn/model/ListTransitRouterVpcAttachmentsResult.h
  32. 1 0
      cbn/include/alibabacloud/cbn/model/ListTransitRoutersResult.h
  33. 66 0
      cbn/include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainRequest.h
  34. 49 0
      cbn/include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainResult.h
  35. 69 0
      cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersRequest.h
  36. 49 0
      cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersResult.h
  37. 66 0
      cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesRequest.h
  38. 49 0
      cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesResult.h
  39. 3 0
      cbn/include/alibabacloud/cbn/model/UpdateTransitRouterRequest.h
  40. 540 0
      cbn/src/CbnClient.cc
  41. 108 0
      cbn/src/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.cc
  42. 44 0
      cbn/src/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.cc
  43. 107 0
      cbn/src/model/AssociateTransitRouterMulticastDomainRequest.cc
  44. 44 0
      cbn/src/model/AssociateTransitRouterMulticastDomainResult.cc
  45. 135 0
      cbn/src/model/CreateTransitRouterMulticastDomainRequest.cc
  46. 51 0
      cbn/src/model/CreateTransitRouterMulticastDomainResult.cc
  47. 9 0
      cbn/src/model/CreateTransitRouterRequest.cc
  48. 90 0
      cbn/src/model/DeleteTransitRouterMulticastDomainRequest.cc
  49. 44 0
      cbn/src/model/DeleteTransitRouterMulticastDomainResult.cc
  50. 115 0
      cbn/src/model/DeregisterTransitRouterMulticastGroupMembersRequest.cc
  51. 44 0
      cbn/src/model/DeregisterTransitRouterMulticastGroupMembersResult.cc
  52. 107 0
      cbn/src/model/DeregisterTransitRouterMulticastGroupSourcesRequest.cc
  53. 44 0
      cbn/src/model/DeregisterTransitRouterMulticastGroupSourcesResult.cc
  54. 107 0
      cbn/src/model/DisassociateTransitRouterMulticastDomainRequest.cc
  55. 44 0
      cbn/src/model/DisassociateTransitRouterMulticastDomainResult.cc
  56. 108 0
      cbn/src/model/ListGrantVSwitchEnisRequest.cc
  57. 72 0
      cbn/src/model/ListGrantVSwitchEnisResult.cc
  58. 9 0
      cbn/src/model/ListTransitRouterAvailableResourceRequest.cc
  59. 143 0
      cbn/src/model/ListTransitRouterMulticastDomainAssociationsRequest.cc
  60. 90 0
      cbn/src/model/ListTransitRouterMulticastDomainAssociationsResult.cc
  61. 107 0
      cbn/src/model/ListTransitRouterMulticastDomainVSwitchesRequest.cc
  62. 73 0
      cbn/src/model/ListTransitRouterMulticastDomainVSwitchesResult.cc
  63. 135 0
      cbn/src/model/ListTransitRouterMulticastDomainsRequest.cc
  64. 84 0
      cbn/src/model/ListTransitRouterMulticastDomainsResult.cc
  65. 151 0
      cbn/src/model/ListTransitRouterMulticastGroupsRequest.cc
  66. 102 0
      cbn/src/model/ListTransitRouterMulticastGroupsResult.cc
  67. 2 0
      cbn/src/model/ListTransitRouterVpcAttachmentsResult.cc
  68. 2 0
      cbn/src/model/ListTransitRoutersResult.cc
  69. 108 0
      cbn/src/model/ModifyTransitRouterMulticastDomainRequest.cc
  70. 44 0
      cbn/src/model/ModifyTransitRouterMulticastDomainResult.cc
  71. 115 0
      cbn/src/model/RegisterTransitRouterMulticastGroupMembersRequest.cc
  72. 44 0
      cbn/src/model/RegisterTransitRouterMulticastGroupMembersResult.cc
  73. 107 0
      cbn/src/model/RegisterTransitRouterMulticastGroupSourcesRequest.cc
  74. 44 0
      cbn/src/model/RegisterTransitRouterMulticastGroupSourcesResult.cc
  75. 9 0
      cbn/src/model/UpdateTransitRouterRequest.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2022-05-24 Version: 1.36.1133
+- update DescribeCenChildInstanceRouteEntries param ChildInstanceRegionId not required.
+
 2022-05-23 Version: 1.36.1132
 - Api init.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1132
+1.36.1133

+ 60 - 0
cbn/CMakeLists.txt

@@ -23,12 +23,16 @@ set(cbn_public_header
 set(cbn_public_header_model 
 	include/alibabacloud/cbn/model/ActiveFlowLogRequest.h
 	include/alibabacloud/cbn/model/ActiveFlowLogResult.h
+	include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.h
+	include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.h
 	include/alibabacloud/cbn/model/AddTraficMatchRuleToTrafficMarkingPolicyRequest.h
 	include/alibabacloud/cbn/model/AddTraficMatchRuleToTrafficMarkingPolicyResult.h
 	include/alibabacloud/cbn/model/AssociateCenBandwidthPackageRequest.h
 	include/alibabacloud/cbn/model/AssociateCenBandwidthPackageResult.h
 	include/alibabacloud/cbn/model/AssociateTransitRouterAttachmentWithRouteTableRequest.h
 	include/alibabacloud/cbn/model/AssociateTransitRouterAttachmentWithRouteTableResult.h
+	include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainRequest.h
+	include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/AttachCenChildInstanceRequest.h
 	include/alibabacloud/cbn/model/AttachCenChildInstanceResult.h
 	include/alibabacloud/cbn/model/CheckTransitRouterServiceRequest.h
@@ -51,6 +55,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/CreateTrafficMarkingPolicyResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterRequest.h
 	include/alibabacloud/cbn/model/CreateTransitRouterResult.h
+	include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainRequest.h
+	include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterPeerAttachmentRequest.h
 	include/alibabacloud/cbn/model/CreateTransitRouterPeerAttachmentResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterRouteEntryRequest.h
@@ -85,6 +91,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/DeleteTrafficMarkingPolicyResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterRequest.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterResult.h
+	include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainRequest.h
+	include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterPeerAttachmentRequest.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterPeerAttachmentResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterRouteEntryRequest.h
@@ -95,6 +103,10 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/DeleteTransitRouterVbrAttachmentResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterVpcAttachmentRequest.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterVpcAttachmentResult.h
+	include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersRequest.h
+	include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersResult.h
+	include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesRequest.h
+	include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesResult.h
 	include/alibabacloud/cbn/model/DescribeCenAttachedChildInstanceAttributeRequest.h
 	include/alibabacloud/cbn/model/DescribeCenAttachedChildInstanceAttributeResult.h
 	include/alibabacloud/cbn/model/DescribeCenAttachedChildInstancesRequest.h
@@ -139,6 +151,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/DisableCenVbrHealthCheckResult.h
 	include/alibabacloud/cbn/model/DisableTransitRouterRouteTablePropagationRequest.h
 	include/alibabacloud/cbn/model/DisableTransitRouterRouteTablePropagationResult.h
+	include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainRequest.h
+	include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/DissociateTransitRouterAttachmentFromRouteTableRequest.h
 	include/alibabacloud/cbn/model/DissociateTransitRouterAttachmentFromRouteTableResult.h
 	include/alibabacloud/cbn/model/EnableCenVbrHealthCheckRequest.h
@@ -149,6 +163,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/GrantInstanceToTransitRouterResult.h
 	include/alibabacloud/cbn/model/ListCenInterRegionTrafficQosPoliciesRequest.h
 	include/alibabacloud/cbn/model/ListCenInterRegionTrafficQosPoliciesResult.h
+	include/alibabacloud/cbn/model/ListGrantVSwitchEnisRequest.h
+	include/alibabacloud/cbn/model/ListGrantVSwitchEnisResult.h
 	include/alibabacloud/cbn/model/ListGrantVSwitchesToCenRequest.h
 	include/alibabacloud/cbn/model/ListGrantVSwitchesToCenResult.h
 	include/alibabacloud/cbn/model/ListTagResourcesRequest.h
@@ -157,6 +173,14 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/ListTrafficMarkingPoliciesResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterAvailableResourceRequest.h
 	include/alibabacloud/cbn/model/ListTransitRouterAvailableResourceResult.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsRequest.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsResult.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesRequest.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesResult.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsRequest.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsResult.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsRequest.h
+	include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterPeerAttachmentsRequest.h
 	include/alibabacloud/cbn/model/ListTransitRouterPeerAttachmentsResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterRouteEntriesRequest.h
@@ -183,12 +207,18 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/ModifyCenRouteMapResult.h
 	include/alibabacloud/cbn/model/ModifyFlowLogAttributeRequest.h
 	include/alibabacloud/cbn/model/ModifyFlowLogAttributeResult.h
+	include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainRequest.h
+	include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/MoveResourceGroupRequest.h
 	include/alibabacloud/cbn/model/MoveResourceGroupResult.h
 	include/alibabacloud/cbn/model/OpenTransitRouterServiceRequest.h
 	include/alibabacloud/cbn/model/OpenTransitRouterServiceResult.h
 	include/alibabacloud/cbn/model/PublishRouteEntriesRequest.h
 	include/alibabacloud/cbn/model/PublishRouteEntriesResult.h
+	include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersRequest.h
+	include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersResult.h
+	include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesRequest.h
+	include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesResult.h
 	include/alibabacloud/cbn/model/RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest.h
 	include/alibabacloud/cbn/model/RemoveTraficMatchRuleFromTrafficMarkingPolicyResult.h
 	include/alibabacloud/cbn/model/ReplaceTransitRouterRouteTableAssociationRequest.h
@@ -236,12 +266,16 @@ set(cbn_src
 	src/CbnClient.cc
 	src/model/ActiveFlowLogRequest.cc
 	src/model/ActiveFlowLogResult.cc
+	src/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.cc
+	src/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.cc
 	src/model/AddTraficMatchRuleToTrafficMarkingPolicyRequest.cc
 	src/model/AddTraficMatchRuleToTrafficMarkingPolicyResult.cc
 	src/model/AssociateCenBandwidthPackageRequest.cc
 	src/model/AssociateCenBandwidthPackageResult.cc
 	src/model/AssociateTransitRouterAttachmentWithRouteTableRequest.cc
 	src/model/AssociateTransitRouterAttachmentWithRouteTableResult.cc
+	src/model/AssociateTransitRouterMulticastDomainRequest.cc
+	src/model/AssociateTransitRouterMulticastDomainResult.cc
 	src/model/AttachCenChildInstanceRequest.cc
 	src/model/AttachCenChildInstanceResult.cc
 	src/model/CheckTransitRouterServiceRequest.cc
@@ -264,6 +298,8 @@ set(cbn_src
 	src/model/CreateTrafficMarkingPolicyResult.cc
 	src/model/CreateTransitRouterRequest.cc
 	src/model/CreateTransitRouterResult.cc
+	src/model/CreateTransitRouterMulticastDomainRequest.cc
+	src/model/CreateTransitRouterMulticastDomainResult.cc
 	src/model/CreateTransitRouterPeerAttachmentRequest.cc
 	src/model/CreateTransitRouterPeerAttachmentResult.cc
 	src/model/CreateTransitRouterRouteEntryRequest.cc
@@ -298,6 +334,8 @@ set(cbn_src
 	src/model/DeleteTrafficMarkingPolicyResult.cc
 	src/model/DeleteTransitRouterRequest.cc
 	src/model/DeleteTransitRouterResult.cc
+	src/model/DeleteTransitRouterMulticastDomainRequest.cc
+	src/model/DeleteTransitRouterMulticastDomainResult.cc
 	src/model/DeleteTransitRouterPeerAttachmentRequest.cc
 	src/model/DeleteTransitRouterPeerAttachmentResult.cc
 	src/model/DeleteTransitRouterRouteEntryRequest.cc
@@ -308,6 +346,10 @@ set(cbn_src
 	src/model/DeleteTransitRouterVbrAttachmentResult.cc
 	src/model/DeleteTransitRouterVpcAttachmentRequest.cc
 	src/model/DeleteTransitRouterVpcAttachmentResult.cc
+	src/model/DeregisterTransitRouterMulticastGroupMembersRequest.cc
+	src/model/DeregisterTransitRouterMulticastGroupMembersResult.cc
+	src/model/DeregisterTransitRouterMulticastGroupSourcesRequest.cc
+	src/model/DeregisterTransitRouterMulticastGroupSourcesResult.cc
 	src/model/DescribeCenAttachedChildInstanceAttributeRequest.cc
 	src/model/DescribeCenAttachedChildInstanceAttributeResult.cc
 	src/model/DescribeCenAttachedChildInstancesRequest.cc
@@ -352,6 +394,8 @@ set(cbn_src
 	src/model/DisableCenVbrHealthCheckResult.cc
 	src/model/DisableTransitRouterRouteTablePropagationRequest.cc
 	src/model/DisableTransitRouterRouteTablePropagationResult.cc
+	src/model/DisassociateTransitRouterMulticastDomainRequest.cc
+	src/model/DisassociateTransitRouterMulticastDomainResult.cc
 	src/model/DissociateTransitRouterAttachmentFromRouteTableRequest.cc
 	src/model/DissociateTransitRouterAttachmentFromRouteTableResult.cc
 	src/model/EnableCenVbrHealthCheckRequest.cc
@@ -362,6 +406,8 @@ set(cbn_src
 	src/model/GrantInstanceToTransitRouterResult.cc
 	src/model/ListCenInterRegionTrafficQosPoliciesRequest.cc
 	src/model/ListCenInterRegionTrafficQosPoliciesResult.cc
+	src/model/ListGrantVSwitchEnisRequest.cc
+	src/model/ListGrantVSwitchEnisResult.cc
 	src/model/ListGrantVSwitchesToCenRequest.cc
 	src/model/ListGrantVSwitchesToCenResult.cc
 	src/model/ListTagResourcesRequest.cc
@@ -370,6 +416,14 @@ set(cbn_src
 	src/model/ListTrafficMarkingPoliciesResult.cc
 	src/model/ListTransitRouterAvailableResourceRequest.cc
 	src/model/ListTransitRouterAvailableResourceResult.cc
+	src/model/ListTransitRouterMulticastDomainAssociationsRequest.cc
+	src/model/ListTransitRouterMulticastDomainAssociationsResult.cc
+	src/model/ListTransitRouterMulticastDomainVSwitchesRequest.cc
+	src/model/ListTransitRouterMulticastDomainVSwitchesResult.cc
+	src/model/ListTransitRouterMulticastDomainsRequest.cc
+	src/model/ListTransitRouterMulticastDomainsResult.cc
+	src/model/ListTransitRouterMulticastGroupsRequest.cc
+	src/model/ListTransitRouterMulticastGroupsResult.cc
 	src/model/ListTransitRouterPeerAttachmentsRequest.cc
 	src/model/ListTransitRouterPeerAttachmentsResult.cc
 	src/model/ListTransitRouterRouteEntriesRequest.cc
@@ -396,12 +450,18 @@ set(cbn_src
 	src/model/ModifyCenRouteMapResult.cc
 	src/model/ModifyFlowLogAttributeRequest.cc
 	src/model/ModifyFlowLogAttributeResult.cc
+	src/model/ModifyTransitRouterMulticastDomainRequest.cc
+	src/model/ModifyTransitRouterMulticastDomainResult.cc
 	src/model/MoveResourceGroupRequest.cc
 	src/model/MoveResourceGroupResult.cc
 	src/model/OpenTransitRouterServiceRequest.cc
 	src/model/OpenTransitRouterServiceResult.cc
 	src/model/PublishRouteEntriesRequest.cc
 	src/model/PublishRouteEntriesResult.cc
+	src/model/RegisterTransitRouterMulticastGroupMembersRequest.cc
+	src/model/RegisterTransitRouterMulticastGroupMembersResult.cc
+	src/model/RegisterTransitRouterMulticastGroupSourcesRequest.cc
+	src/model/RegisterTransitRouterMulticastGroupSourcesResult.cc
 	src/model/RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest.cc
 	src/model/RemoveTraficMatchRuleFromTrafficMarkingPolicyResult.cc
 	src/model/ReplaceTransitRouterRouteTableAssociationRequest.cc

+ 120 - 0
cbn/include/alibabacloud/cbn/CbnClient.h

@@ -24,12 +24,16 @@
 #include "CbnExport.h"
 #include "model/ActiveFlowLogRequest.h"
 #include "model/ActiveFlowLogResult.h"
+#include "model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.h"
+#include "model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.h"
 #include "model/AddTraficMatchRuleToTrafficMarkingPolicyRequest.h"
 #include "model/AddTraficMatchRuleToTrafficMarkingPolicyResult.h"
 #include "model/AssociateCenBandwidthPackageRequest.h"
 #include "model/AssociateCenBandwidthPackageResult.h"
 #include "model/AssociateTransitRouterAttachmentWithRouteTableRequest.h"
 #include "model/AssociateTransitRouterAttachmentWithRouteTableResult.h"
+#include "model/AssociateTransitRouterMulticastDomainRequest.h"
+#include "model/AssociateTransitRouterMulticastDomainResult.h"
 #include "model/AttachCenChildInstanceRequest.h"
 #include "model/AttachCenChildInstanceResult.h"
 #include "model/CheckTransitRouterServiceRequest.h"
@@ -52,6 +56,8 @@
 #include "model/CreateTrafficMarkingPolicyResult.h"
 #include "model/CreateTransitRouterRequest.h"
 #include "model/CreateTransitRouterResult.h"
+#include "model/CreateTransitRouterMulticastDomainRequest.h"
+#include "model/CreateTransitRouterMulticastDomainResult.h"
 #include "model/CreateTransitRouterPeerAttachmentRequest.h"
 #include "model/CreateTransitRouterPeerAttachmentResult.h"
 #include "model/CreateTransitRouterRouteEntryRequest.h"
@@ -86,6 +92,8 @@
 #include "model/DeleteTrafficMarkingPolicyResult.h"
 #include "model/DeleteTransitRouterRequest.h"
 #include "model/DeleteTransitRouterResult.h"
+#include "model/DeleteTransitRouterMulticastDomainRequest.h"
+#include "model/DeleteTransitRouterMulticastDomainResult.h"
 #include "model/DeleteTransitRouterPeerAttachmentRequest.h"
 #include "model/DeleteTransitRouterPeerAttachmentResult.h"
 #include "model/DeleteTransitRouterRouteEntryRequest.h"
@@ -96,6 +104,10 @@
 #include "model/DeleteTransitRouterVbrAttachmentResult.h"
 #include "model/DeleteTransitRouterVpcAttachmentRequest.h"
 #include "model/DeleteTransitRouterVpcAttachmentResult.h"
+#include "model/DeregisterTransitRouterMulticastGroupMembersRequest.h"
+#include "model/DeregisterTransitRouterMulticastGroupMembersResult.h"
+#include "model/DeregisterTransitRouterMulticastGroupSourcesRequest.h"
+#include "model/DeregisterTransitRouterMulticastGroupSourcesResult.h"
 #include "model/DescribeCenAttachedChildInstanceAttributeRequest.h"
 #include "model/DescribeCenAttachedChildInstanceAttributeResult.h"
 #include "model/DescribeCenAttachedChildInstancesRequest.h"
@@ -140,6 +152,8 @@
 #include "model/DisableCenVbrHealthCheckResult.h"
 #include "model/DisableTransitRouterRouteTablePropagationRequest.h"
 #include "model/DisableTransitRouterRouteTablePropagationResult.h"
+#include "model/DisassociateTransitRouterMulticastDomainRequest.h"
+#include "model/DisassociateTransitRouterMulticastDomainResult.h"
 #include "model/DissociateTransitRouterAttachmentFromRouteTableRequest.h"
 #include "model/DissociateTransitRouterAttachmentFromRouteTableResult.h"
 #include "model/EnableCenVbrHealthCheckRequest.h"
@@ -150,6 +164,8 @@
 #include "model/GrantInstanceToTransitRouterResult.h"
 #include "model/ListCenInterRegionTrafficQosPoliciesRequest.h"
 #include "model/ListCenInterRegionTrafficQosPoliciesResult.h"
+#include "model/ListGrantVSwitchEnisRequest.h"
+#include "model/ListGrantVSwitchEnisResult.h"
 #include "model/ListGrantVSwitchesToCenRequest.h"
 #include "model/ListGrantVSwitchesToCenResult.h"
 #include "model/ListTagResourcesRequest.h"
@@ -158,6 +174,14 @@
 #include "model/ListTrafficMarkingPoliciesResult.h"
 #include "model/ListTransitRouterAvailableResourceRequest.h"
 #include "model/ListTransitRouterAvailableResourceResult.h"
+#include "model/ListTransitRouterMulticastDomainAssociationsRequest.h"
+#include "model/ListTransitRouterMulticastDomainAssociationsResult.h"
+#include "model/ListTransitRouterMulticastDomainVSwitchesRequest.h"
+#include "model/ListTransitRouterMulticastDomainVSwitchesResult.h"
+#include "model/ListTransitRouterMulticastDomainsRequest.h"
+#include "model/ListTransitRouterMulticastDomainsResult.h"
+#include "model/ListTransitRouterMulticastGroupsRequest.h"
+#include "model/ListTransitRouterMulticastGroupsResult.h"
 #include "model/ListTransitRouterPeerAttachmentsRequest.h"
 #include "model/ListTransitRouterPeerAttachmentsResult.h"
 #include "model/ListTransitRouterRouteEntriesRequest.h"
@@ -184,12 +208,18 @@
 #include "model/ModifyCenRouteMapResult.h"
 #include "model/ModifyFlowLogAttributeRequest.h"
 #include "model/ModifyFlowLogAttributeResult.h"
+#include "model/ModifyTransitRouterMulticastDomainRequest.h"
+#include "model/ModifyTransitRouterMulticastDomainResult.h"
 #include "model/MoveResourceGroupRequest.h"
 #include "model/MoveResourceGroupResult.h"
 #include "model/OpenTransitRouterServiceRequest.h"
 #include "model/OpenTransitRouterServiceResult.h"
 #include "model/PublishRouteEntriesRequest.h"
 #include "model/PublishRouteEntriesResult.h"
+#include "model/RegisterTransitRouterMulticastGroupMembersRequest.h"
+#include "model/RegisterTransitRouterMulticastGroupMembersResult.h"
+#include "model/RegisterTransitRouterMulticastGroupSourcesRequest.h"
+#include "model/RegisterTransitRouterMulticastGroupSourcesResult.h"
 #include "model/RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest.h"
 #include "model/RemoveTraficMatchRuleFromTrafficMarkingPolicyResult.h"
 #include "model/ReplaceTransitRouterRouteTableAssociationRequest.h"
@@ -244,6 +274,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ActiveFlowLogResult> ActiveFlowLogOutcome;
 			typedef std::future<ActiveFlowLogOutcome> ActiveFlowLogOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ActiveFlowLogRequest&, const ActiveFlowLogOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ActiveFlowLogAsyncHandler;
+			typedef Outcome<Error, Model::AddTrafficMatchRuleToTrafficMarkingPolicyResult> AddTrafficMatchRuleToTrafficMarkingPolicyOutcome;
+			typedef std::future<AddTrafficMatchRuleToTrafficMarkingPolicyOutcome> AddTrafficMatchRuleToTrafficMarkingPolicyOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::AddTrafficMatchRuleToTrafficMarkingPolicyRequest&, const AddTrafficMatchRuleToTrafficMarkingPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddTrafficMatchRuleToTrafficMarkingPolicyAsyncHandler;
 			typedef Outcome<Error, Model::AddTraficMatchRuleToTrafficMarkingPolicyResult> AddTraficMatchRuleToTrafficMarkingPolicyOutcome;
 			typedef std::future<AddTraficMatchRuleToTrafficMarkingPolicyOutcome> AddTraficMatchRuleToTrafficMarkingPolicyOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::AddTraficMatchRuleToTrafficMarkingPolicyRequest&, const AddTraficMatchRuleToTrafficMarkingPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddTraficMatchRuleToTrafficMarkingPolicyAsyncHandler;
@@ -253,6 +286,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AssociateTransitRouterAttachmentWithRouteTableResult> AssociateTransitRouterAttachmentWithRouteTableOutcome;
 			typedef std::future<AssociateTransitRouterAttachmentWithRouteTableOutcome> AssociateTransitRouterAttachmentWithRouteTableOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::AssociateTransitRouterAttachmentWithRouteTableRequest&, const AssociateTransitRouterAttachmentWithRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AssociateTransitRouterAttachmentWithRouteTableAsyncHandler;
+			typedef Outcome<Error, Model::AssociateTransitRouterMulticastDomainResult> AssociateTransitRouterMulticastDomainOutcome;
+			typedef std::future<AssociateTransitRouterMulticastDomainOutcome> AssociateTransitRouterMulticastDomainOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::AssociateTransitRouterMulticastDomainRequest&, const AssociateTransitRouterMulticastDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AssociateTransitRouterMulticastDomainAsyncHandler;
 			typedef Outcome<Error, Model::AttachCenChildInstanceResult> AttachCenChildInstanceOutcome;
 			typedef std::future<AttachCenChildInstanceOutcome> AttachCenChildInstanceOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::AttachCenChildInstanceRequest&, const AttachCenChildInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachCenChildInstanceAsyncHandler;
@@ -286,6 +322,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateTransitRouterResult> CreateTransitRouterOutcome;
 			typedef std::future<CreateTransitRouterOutcome> CreateTransitRouterOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::CreateTransitRouterRequest&, const CreateTransitRouterOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTransitRouterAsyncHandler;
+			typedef Outcome<Error, Model::CreateTransitRouterMulticastDomainResult> CreateTransitRouterMulticastDomainOutcome;
+			typedef std::future<CreateTransitRouterMulticastDomainOutcome> CreateTransitRouterMulticastDomainOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::CreateTransitRouterMulticastDomainRequest&, const CreateTransitRouterMulticastDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTransitRouterMulticastDomainAsyncHandler;
 			typedef Outcome<Error, Model::CreateTransitRouterPeerAttachmentResult> CreateTransitRouterPeerAttachmentOutcome;
 			typedef std::future<CreateTransitRouterPeerAttachmentOutcome> CreateTransitRouterPeerAttachmentOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::CreateTransitRouterPeerAttachmentRequest&, const CreateTransitRouterPeerAttachmentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTransitRouterPeerAttachmentAsyncHandler;
@@ -337,6 +376,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTransitRouterResult> DeleteTransitRouterOutcome;
 			typedef std::future<DeleteTransitRouterOutcome> DeleteTransitRouterOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterRequest&, const DeleteTransitRouterOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterAsyncHandler;
+			typedef Outcome<Error, Model::DeleteTransitRouterMulticastDomainResult> DeleteTransitRouterMulticastDomainOutcome;
+			typedef std::future<DeleteTransitRouterMulticastDomainOutcome> DeleteTransitRouterMulticastDomainOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterMulticastDomainRequest&, const DeleteTransitRouterMulticastDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterMulticastDomainAsyncHandler;
 			typedef Outcome<Error, Model::DeleteTransitRouterPeerAttachmentResult> DeleteTransitRouterPeerAttachmentOutcome;
 			typedef std::future<DeleteTransitRouterPeerAttachmentOutcome> DeleteTransitRouterPeerAttachmentOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterPeerAttachmentRequest&, const DeleteTransitRouterPeerAttachmentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterPeerAttachmentAsyncHandler;
@@ -352,6 +394,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTransitRouterVpcAttachmentResult> DeleteTransitRouterVpcAttachmentOutcome;
 			typedef std::future<DeleteTransitRouterVpcAttachmentOutcome> DeleteTransitRouterVpcAttachmentOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterVpcAttachmentRequest&, const DeleteTransitRouterVpcAttachmentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterVpcAttachmentAsyncHandler;
+			typedef Outcome<Error, Model::DeregisterTransitRouterMulticastGroupMembersResult> DeregisterTransitRouterMulticastGroupMembersOutcome;
+			typedef std::future<DeregisterTransitRouterMulticastGroupMembersOutcome> DeregisterTransitRouterMulticastGroupMembersOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::DeregisterTransitRouterMulticastGroupMembersRequest&, const DeregisterTransitRouterMulticastGroupMembersOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeregisterTransitRouterMulticastGroupMembersAsyncHandler;
+			typedef Outcome<Error, Model::DeregisterTransitRouterMulticastGroupSourcesResult> DeregisterTransitRouterMulticastGroupSourcesOutcome;
+			typedef std::future<DeregisterTransitRouterMulticastGroupSourcesOutcome> DeregisterTransitRouterMulticastGroupSourcesOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::DeregisterTransitRouterMulticastGroupSourcesRequest&, const DeregisterTransitRouterMulticastGroupSourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeregisterTransitRouterMulticastGroupSourcesAsyncHandler;
 			typedef Outcome<Error, Model::DescribeCenAttachedChildInstanceAttributeResult> DescribeCenAttachedChildInstanceAttributeOutcome;
 			typedef std::future<DescribeCenAttachedChildInstanceAttributeOutcome> DescribeCenAttachedChildInstanceAttributeOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DescribeCenAttachedChildInstanceAttributeRequest&, const DescribeCenAttachedChildInstanceAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeCenAttachedChildInstanceAttributeAsyncHandler;
@@ -418,6 +466,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DisableTransitRouterRouteTablePropagationResult> DisableTransitRouterRouteTablePropagationOutcome;
 			typedef std::future<DisableTransitRouterRouteTablePropagationOutcome> DisableTransitRouterRouteTablePropagationOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DisableTransitRouterRouteTablePropagationRequest&, const DisableTransitRouterRouteTablePropagationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableTransitRouterRouteTablePropagationAsyncHandler;
+			typedef Outcome<Error, Model::DisassociateTransitRouterMulticastDomainResult> DisassociateTransitRouterMulticastDomainOutcome;
+			typedef std::future<DisassociateTransitRouterMulticastDomainOutcome> DisassociateTransitRouterMulticastDomainOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::DisassociateTransitRouterMulticastDomainRequest&, const DisassociateTransitRouterMulticastDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisassociateTransitRouterMulticastDomainAsyncHandler;
 			typedef Outcome<Error, Model::DissociateTransitRouterAttachmentFromRouteTableResult> DissociateTransitRouterAttachmentFromRouteTableOutcome;
 			typedef std::future<DissociateTransitRouterAttachmentFromRouteTableOutcome> DissociateTransitRouterAttachmentFromRouteTableOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DissociateTransitRouterAttachmentFromRouteTableRequest&, const DissociateTransitRouterAttachmentFromRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DissociateTransitRouterAttachmentFromRouteTableAsyncHandler;
@@ -433,6 +484,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListCenInterRegionTrafficQosPoliciesResult> ListCenInterRegionTrafficQosPoliciesOutcome;
 			typedef std::future<ListCenInterRegionTrafficQosPoliciesOutcome> ListCenInterRegionTrafficQosPoliciesOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ListCenInterRegionTrafficQosPoliciesRequest&, const ListCenInterRegionTrafficQosPoliciesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListCenInterRegionTrafficQosPoliciesAsyncHandler;
+			typedef Outcome<Error, Model::ListGrantVSwitchEnisResult> ListGrantVSwitchEnisOutcome;
+			typedef std::future<ListGrantVSwitchEnisOutcome> ListGrantVSwitchEnisOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListGrantVSwitchEnisRequest&, const ListGrantVSwitchEnisOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListGrantVSwitchEnisAsyncHandler;
 			typedef Outcome<Error, Model::ListGrantVSwitchesToCenResult> ListGrantVSwitchesToCenOutcome;
 			typedef std::future<ListGrantVSwitchesToCenOutcome> ListGrantVSwitchesToCenOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ListGrantVSwitchesToCenRequest&, const ListGrantVSwitchesToCenOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListGrantVSwitchesToCenAsyncHandler;
@@ -445,6 +499,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListTransitRouterAvailableResourceResult> ListTransitRouterAvailableResourceOutcome;
 			typedef std::future<ListTransitRouterAvailableResourceOutcome> ListTransitRouterAvailableResourceOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterAvailableResourceRequest&, const ListTransitRouterAvailableResourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterAvailableResourceAsyncHandler;
+			typedef Outcome<Error, Model::ListTransitRouterMulticastDomainAssociationsResult> ListTransitRouterMulticastDomainAssociationsOutcome;
+			typedef std::future<ListTransitRouterMulticastDomainAssociationsOutcome> ListTransitRouterMulticastDomainAssociationsOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterMulticastDomainAssociationsRequest&, const ListTransitRouterMulticastDomainAssociationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterMulticastDomainAssociationsAsyncHandler;
+			typedef Outcome<Error, Model::ListTransitRouterMulticastDomainVSwitchesResult> ListTransitRouterMulticastDomainVSwitchesOutcome;
+			typedef std::future<ListTransitRouterMulticastDomainVSwitchesOutcome> ListTransitRouterMulticastDomainVSwitchesOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterMulticastDomainVSwitchesRequest&, const ListTransitRouterMulticastDomainVSwitchesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterMulticastDomainVSwitchesAsyncHandler;
+			typedef Outcome<Error, Model::ListTransitRouterMulticastDomainsResult> ListTransitRouterMulticastDomainsOutcome;
+			typedef std::future<ListTransitRouterMulticastDomainsOutcome> ListTransitRouterMulticastDomainsOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterMulticastDomainsRequest&, const ListTransitRouterMulticastDomainsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterMulticastDomainsAsyncHandler;
+			typedef Outcome<Error, Model::ListTransitRouterMulticastGroupsResult> ListTransitRouterMulticastGroupsOutcome;
+			typedef std::future<ListTransitRouterMulticastGroupsOutcome> ListTransitRouterMulticastGroupsOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterMulticastGroupsRequest&, const ListTransitRouterMulticastGroupsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterMulticastGroupsAsyncHandler;
 			typedef Outcome<Error, Model::ListTransitRouterPeerAttachmentsResult> ListTransitRouterPeerAttachmentsOutcome;
 			typedef std::future<ListTransitRouterPeerAttachmentsOutcome> ListTransitRouterPeerAttachmentsOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterPeerAttachmentsRequest&, const ListTransitRouterPeerAttachmentsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterPeerAttachmentsAsyncHandler;
@@ -484,6 +550,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifyFlowLogAttributeResult> ModifyFlowLogAttributeOutcome;
 			typedef std::future<ModifyFlowLogAttributeOutcome> ModifyFlowLogAttributeOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ModifyFlowLogAttributeRequest&, const ModifyFlowLogAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyFlowLogAttributeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyTransitRouterMulticastDomainResult> ModifyTransitRouterMulticastDomainOutcome;
+			typedef std::future<ModifyTransitRouterMulticastDomainOutcome> ModifyTransitRouterMulticastDomainOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ModifyTransitRouterMulticastDomainRequest&, const ModifyTransitRouterMulticastDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyTransitRouterMulticastDomainAsyncHandler;
 			typedef Outcome<Error, Model::MoveResourceGroupResult> MoveResourceGroupOutcome;
 			typedef std::future<MoveResourceGroupOutcome> MoveResourceGroupOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::MoveResourceGroupRequest&, const MoveResourceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> MoveResourceGroupAsyncHandler;
@@ -493,6 +562,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::PublishRouteEntriesResult> PublishRouteEntriesOutcome;
 			typedef std::future<PublishRouteEntriesOutcome> PublishRouteEntriesOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::PublishRouteEntriesRequest&, const PublishRouteEntriesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PublishRouteEntriesAsyncHandler;
+			typedef Outcome<Error, Model::RegisterTransitRouterMulticastGroupMembersResult> RegisterTransitRouterMulticastGroupMembersOutcome;
+			typedef std::future<RegisterTransitRouterMulticastGroupMembersOutcome> RegisterTransitRouterMulticastGroupMembersOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::RegisterTransitRouterMulticastGroupMembersRequest&, const RegisterTransitRouterMulticastGroupMembersOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegisterTransitRouterMulticastGroupMembersAsyncHandler;
+			typedef Outcome<Error, Model::RegisterTransitRouterMulticastGroupSourcesResult> RegisterTransitRouterMulticastGroupSourcesOutcome;
+			typedef std::future<RegisterTransitRouterMulticastGroupSourcesOutcome> RegisterTransitRouterMulticastGroupSourcesOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::RegisterTransitRouterMulticastGroupSourcesRequest&, const RegisterTransitRouterMulticastGroupSourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegisterTransitRouterMulticastGroupSourcesAsyncHandler;
 			typedef Outcome<Error, Model::RemoveTraficMatchRuleFromTrafficMarkingPolicyResult> RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcome;
 			typedef std::future<RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcome> RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest&, const RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RemoveTraficMatchRuleFromTrafficMarkingPolicyAsyncHandler;
@@ -564,6 +639,9 @@ namespace AlibabaCloud
 			ActiveFlowLogOutcome activeFlowLog(const Model::ActiveFlowLogRequest &request)const;
 			void activeFlowLogAsync(const Model::ActiveFlowLogRequest& request, const ActiveFlowLogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ActiveFlowLogOutcomeCallable activeFlowLogCallable(const Model::ActiveFlowLogRequest& request) const;
+			AddTrafficMatchRuleToTrafficMarkingPolicyOutcome addTrafficMatchRuleToTrafficMarkingPolicy(const Model::AddTrafficMatchRuleToTrafficMarkingPolicyRequest &request)const;
+			void addTrafficMatchRuleToTrafficMarkingPolicyAsync(const Model::AddTrafficMatchRuleToTrafficMarkingPolicyRequest& request, const AddTrafficMatchRuleToTrafficMarkingPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddTrafficMatchRuleToTrafficMarkingPolicyOutcomeCallable addTrafficMatchRuleToTrafficMarkingPolicyCallable(const Model::AddTrafficMatchRuleToTrafficMarkingPolicyRequest& request) const;
 			AddTraficMatchRuleToTrafficMarkingPolicyOutcome addTraficMatchRuleToTrafficMarkingPolicy(const Model::AddTraficMatchRuleToTrafficMarkingPolicyRequest &request)const;
 			void addTraficMatchRuleToTrafficMarkingPolicyAsync(const Model::AddTraficMatchRuleToTrafficMarkingPolicyRequest& request, const AddTraficMatchRuleToTrafficMarkingPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddTraficMatchRuleToTrafficMarkingPolicyOutcomeCallable addTraficMatchRuleToTrafficMarkingPolicyCallable(const Model::AddTraficMatchRuleToTrafficMarkingPolicyRequest& request) const;
@@ -573,6 +651,9 @@ namespace AlibabaCloud
 			AssociateTransitRouterAttachmentWithRouteTableOutcome associateTransitRouterAttachmentWithRouteTable(const Model::AssociateTransitRouterAttachmentWithRouteTableRequest &request)const;
 			void associateTransitRouterAttachmentWithRouteTableAsync(const Model::AssociateTransitRouterAttachmentWithRouteTableRequest& request, const AssociateTransitRouterAttachmentWithRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AssociateTransitRouterAttachmentWithRouteTableOutcomeCallable associateTransitRouterAttachmentWithRouteTableCallable(const Model::AssociateTransitRouterAttachmentWithRouteTableRequest& request) const;
+			AssociateTransitRouterMulticastDomainOutcome associateTransitRouterMulticastDomain(const Model::AssociateTransitRouterMulticastDomainRequest &request)const;
+			void associateTransitRouterMulticastDomainAsync(const Model::AssociateTransitRouterMulticastDomainRequest& request, const AssociateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AssociateTransitRouterMulticastDomainOutcomeCallable associateTransitRouterMulticastDomainCallable(const Model::AssociateTransitRouterMulticastDomainRequest& request) const;
 			AttachCenChildInstanceOutcome attachCenChildInstance(const Model::AttachCenChildInstanceRequest &request)const;
 			void attachCenChildInstanceAsync(const Model::AttachCenChildInstanceRequest& request, const AttachCenChildInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachCenChildInstanceOutcomeCallable attachCenChildInstanceCallable(const Model::AttachCenChildInstanceRequest& request) const;
@@ -606,6 +687,9 @@ namespace AlibabaCloud
 			CreateTransitRouterOutcome createTransitRouter(const Model::CreateTransitRouterRequest &request)const;
 			void createTransitRouterAsync(const Model::CreateTransitRouterRequest& request, const CreateTransitRouterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateTransitRouterOutcomeCallable createTransitRouterCallable(const Model::CreateTransitRouterRequest& request) const;
+			CreateTransitRouterMulticastDomainOutcome createTransitRouterMulticastDomain(const Model::CreateTransitRouterMulticastDomainRequest &request)const;
+			void createTransitRouterMulticastDomainAsync(const Model::CreateTransitRouterMulticastDomainRequest& request, const CreateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateTransitRouterMulticastDomainOutcomeCallable createTransitRouterMulticastDomainCallable(const Model::CreateTransitRouterMulticastDomainRequest& request) const;
 			CreateTransitRouterPeerAttachmentOutcome createTransitRouterPeerAttachment(const Model::CreateTransitRouterPeerAttachmentRequest &request)const;
 			void createTransitRouterPeerAttachmentAsync(const Model::CreateTransitRouterPeerAttachmentRequest& request, const CreateTransitRouterPeerAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateTransitRouterPeerAttachmentOutcomeCallable createTransitRouterPeerAttachmentCallable(const Model::CreateTransitRouterPeerAttachmentRequest& request) const;
@@ -657,6 +741,9 @@ namespace AlibabaCloud
 			DeleteTransitRouterOutcome deleteTransitRouter(const Model::DeleteTransitRouterRequest &request)const;
 			void deleteTransitRouterAsync(const Model::DeleteTransitRouterRequest& request, const DeleteTransitRouterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTransitRouterOutcomeCallable deleteTransitRouterCallable(const Model::DeleteTransitRouterRequest& request) const;
+			DeleteTransitRouterMulticastDomainOutcome deleteTransitRouterMulticastDomain(const Model::DeleteTransitRouterMulticastDomainRequest &request)const;
+			void deleteTransitRouterMulticastDomainAsync(const Model::DeleteTransitRouterMulticastDomainRequest& request, const DeleteTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteTransitRouterMulticastDomainOutcomeCallable deleteTransitRouterMulticastDomainCallable(const Model::DeleteTransitRouterMulticastDomainRequest& request) const;
 			DeleteTransitRouterPeerAttachmentOutcome deleteTransitRouterPeerAttachment(const Model::DeleteTransitRouterPeerAttachmentRequest &request)const;
 			void deleteTransitRouterPeerAttachmentAsync(const Model::DeleteTransitRouterPeerAttachmentRequest& request, const DeleteTransitRouterPeerAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTransitRouterPeerAttachmentOutcomeCallable deleteTransitRouterPeerAttachmentCallable(const Model::DeleteTransitRouterPeerAttachmentRequest& request) const;
@@ -672,6 +759,12 @@ namespace AlibabaCloud
 			DeleteTransitRouterVpcAttachmentOutcome deleteTransitRouterVpcAttachment(const Model::DeleteTransitRouterVpcAttachmentRequest &request)const;
 			void deleteTransitRouterVpcAttachmentAsync(const Model::DeleteTransitRouterVpcAttachmentRequest& request, const DeleteTransitRouterVpcAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTransitRouterVpcAttachmentOutcomeCallable deleteTransitRouterVpcAttachmentCallable(const Model::DeleteTransitRouterVpcAttachmentRequest& request) const;
+			DeregisterTransitRouterMulticastGroupMembersOutcome deregisterTransitRouterMulticastGroupMembers(const Model::DeregisterTransitRouterMulticastGroupMembersRequest &request)const;
+			void deregisterTransitRouterMulticastGroupMembersAsync(const Model::DeregisterTransitRouterMulticastGroupMembersRequest& request, const DeregisterTransitRouterMulticastGroupMembersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeregisterTransitRouterMulticastGroupMembersOutcomeCallable deregisterTransitRouterMulticastGroupMembersCallable(const Model::DeregisterTransitRouterMulticastGroupMembersRequest& request) const;
+			DeregisterTransitRouterMulticastGroupSourcesOutcome deregisterTransitRouterMulticastGroupSources(const Model::DeregisterTransitRouterMulticastGroupSourcesRequest &request)const;
+			void deregisterTransitRouterMulticastGroupSourcesAsync(const Model::DeregisterTransitRouterMulticastGroupSourcesRequest& request, const DeregisterTransitRouterMulticastGroupSourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeregisterTransitRouterMulticastGroupSourcesOutcomeCallable deregisterTransitRouterMulticastGroupSourcesCallable(const Model::DeregisterTransitRouterMulticastGroupSourcesRequest& request) const;
 			DescribeCenAttachedChildInstanceAttributeOutcome describeCenAttachedChildInstanceAttribute(const Model::DescribeCenAttachedChildInstanceAttributeRequest &request)const;
 			void describeCenAttachedChildInstanceAttributeAsync(const Model::DescribeCenAttachedChildInstanceAttributeRequest& request, const DescribeCenAttachedChildInstanceAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeCenAttachedChildInstanceAttributeOutcomeCallable describeCenAttachedChildInstanceAttributeCallable(const Model::DescribeCenAttachedChildInstanceAttributeRequest& request) const;
@@ -738,6 +831,9 @@ namespace AlibabaCloud
 			DisableTransitRouterRouteTablePropagationOutcome disableTransitRouterRouteTablePropagation(const Model::DisableTransitRouterRouteTablePropagationRequest &request)const;
 			void disableTransitRouterRouteTablePropagationAsync(const Model::DisableTransitRouterRouteTablePropagationRequest& request, const DisableTransitRouterRouteTablePropagationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DisableTransitRouterRouteTablePropagationOutcomeCallable disableTransitRouterRouteTablePropagationCallable(const Model::DisableTransitRouterRouteTablePropagationRequest& request) const;
+			DisassociateTransitRouterMulticastDomainOutcome disassociateTransitRouterMulticastDomain(const Model::DisassociateTransitRouterMulticastDomainRequest &request)const;
+			void disassociateTransitRouterMulticastDomainAsync(const Model::DisassociateTransitRouterMulticastDomainRequest& request, const DisassociateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DisassociateTransitRouterMulticastDomainOutcomeCallable disassociateTransitRouterMulticastDomainCallable(const Model::DisassociateTransitRouterMulticastDomainRequest& request) const;
 			DissociateTransitRouterAttachmentFromRouteTableOutcome dissociateTransitRouterAttachmentFromRouteTable(const Model::DissociateTransitRouterAttachmentFromRouteTableRequest &request)const;
 			void dissociateTransitRouterAttachmentFromRouteTableAsync(const Model::DissociateTransitRouterAttachmentFromRouteTableRequest& request, const DissociateTransitRouterAttachmentFromRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DissociateTransitRouterAttachmentFromRouteTableOutcomeCallable dissociateTransitRouterAttachmentFromRouteTableCallable(const Model::DissociateTransitRouterAttachmentFromRouteTableRequest& request) const;
@@ -753,6 +849,9 @@ namespace AlibabaCloud
 			ListCenInterRegionTrafficQosPoliciesOutcome listCenInterRegionTrafficQosPolicies(const Model::ListCenInterRegionTrafficQosPoliciesRequest &request)const;
 			void listCenInterRegionTrafficQosPoliciesAsync(const Model::ListCenInterRegionTrafficQosPoliciesRequest& request, const ListCenInterRegionTrafficQosPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListCenInterRegionTrafficQosPoliciesOutcomeCallable listCenInterRegionTrafficQosPoliciesCallable(const Model::ListCenInterRegionTrafficQosPoliciesRequest& request) const;
+			ListGrantVSwitchEnisOutcome listGrantVSwitchEnis(const Model::ListGrantVSwitchEnisRequest &request)const;
+			void listGrantVSwitchEnisAsync(const Model::ListGrantVSwitchEnisRequest& request, const ListGrantVSwitchEnisAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListGrantVSwitchEnisOutcomeCallable listGrantVSwitchEnisCallable(const Model::ListGrantVSwitchEnisRequest& request) const;
 			ListGrantVSwitchesToCenOutcome listGrantVSwitchesToCen(const Model::ListGrantVSwitchesToCenRequest &request)const;
 			void listGrantVSwitchesToCenAsync(const Model::ListGrantVSwitchesToCenRequest& request, const ListGrantVSwitchesToCenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListGrantVSwitchesToCenOutcomeCallable listGrantVSwitchesToCenCallable(const Model::ListGrantVSwitchesToCenRequest& request) const;
@@ -765,6 +864,18 @@ namespace AlibabaCloud
 			ListTransitRouterAvailableResourceOutcome listTransitRouterAvailableResource(const Model::ListTransitRouterAvailableResourceRequest &request)const;
 			void listTransitRouterAvailableResourceAsync(const Model::ListTransitRouterAvailableResourceRequest& request, const ListTransitRouterAvailableResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTransitRouterAvailableResourceOutcomeCallable listTransitRouterAvailableResourceCallable(const Model::ListTransitRouterAvailableResourceRequest& request) const;
+			ListTransitRouterMulticastDomainAssociationsOutcome listTransitRouterMulticastDomainAssociations(const Model::ListTransitRouterMulticastDomainAssociationsRequest &request)const;
+			void listTransitRouterMulticastDomainAssociationsAsync(const Model::ListTransitRouterMulticastDomainAssociationsRequest& request, const ListTransitRouterMulticastDomainAssociationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTransitRouterMulticastDomainAssociationsOutcomeCallable listTransitRouterMulticastDomainAssociationsCallable(const Model::ListTransitRouterMulticastDomainAssociationsRequest& request) const;
+			ListTransitRouterMulticastDomainVSwitchesOutcome listTransitRouterMulticastDomainVSwitches(const Model::ListTransitRouterMulticastDomainVSwitchesRequest &request)const;
+			void listTransitRouterMulticastDomainVSwitchesAsync(const Model::ListTransitRouterMulticastDomainVSwitchesRequest& request, const ListTransitRouterMulticastDomainVSwitchesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTransitRouterMulticastDomainVSwitchesOutcomeCallable listTransitRouterMulticastDomainVSwitchesCallable(const Model::ListTransitRouterMulticastDomainVSwitchesRequest& request) const;
+			ListTransitRouterMulticastDomainsOutcome listTransitRouterMulticastDomains(const Model::ListTransitRouterMulticastDomainsRequest &request)const;
+			void listTransitRouterMulticastDomainsAsync(const Model::ListTransitRouterMulticastDomainsRequest& request, const ListTransitRouterMulticastDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTransitRouterMulticastDomainsOutcomeCallable listTransitRouterMulticastDomainsCallable(const Model::ListTransitRouterMulticastDomainsRequest& request) const;
+			ListTransitRouterMulticastGroupsOutcome listTransitRouterMulticastGroups(const Model::ListTransitRouterMulticastGroupsRequest &request)const;
+			void listTransitRouterMulticastGroupsAsync(const Model::ListTransitRouterMulticastGroupsRequest& request, const ListTransitRouterMulticastGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTransitRouterMulticastGroupsOutcomeCallable listTransitRouterMulticastGroupsCallable(const Model::ListTransitRouterMulticastGroupsRequest& request) const;
 			ListTransitRouterPeerAttachmentsOutcome listTransitRouterPeerAttachments(const Model::ListTransitRouterPeerAttachmentsRequest &request)const;
 			void listTransitRouterPeerAttachmentsAsync(const Model::ListTransitRouterPeerAttachmentsRequest& request, const ListTransitRouterPeerAttachmentsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTransitRouterPeerAttachmentsOutcomeCallable listTransitRouterPeerAttachmentsCallable(const Model::ListTransitRouterPeerAttachmentsRequest& request) const;
@@ -804,6 +915,9 @@ namespace AlibabaCloud
 			ModifyFlowLogAttributeOutcome modifyFlowLogAttribute(const Model::ModifyFlowLogAttributeRequest &request)const;
 			void modifyFlowLogAttributeAsync(const Model::ModifyFlowLogAttributeRequest& request, const ModifyFlowLogAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyFlowLogAttributeOutcomeCallable modifyFlowLogAttributeCallable(const Model::ModifyFlowLogAttributeRequest& request) const;
+			ModifyTransitRouterMulticastDomainOutcome modifyTransitRouterMulticastDomain(const Model::ModifyTransitRouterMulticastDomainRequest &request)const;
+			void modifyTransitRouterMulticastDomainAsync(const Model::ModifyTransitRouterMulticastDomainRequest& request, const ModifyTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyTransitRouterMulticastDomainOutcomeCallable modifyTransitRouterMulticastDomainCallable(const Model::ModifyTransitRouterMulticastDomainRequest& request) const;
 			MoveResourceGroupOutcome moveResourceGroup(const Model::MoveResourceGroupRequest &request)const;
 			void moveResourceGroupAsync(const Model::MoveResourceGroupRequest& request, const MoveResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			MoveResourceGroupOutcomeCallable moveResourceGroupCallable(const Model::MoveResourceGroupRequest& request) const;
@@ -813,6 +927,12 @@ namespace AlibabaCloud
 			PublishRouteEntriesOutcome publishRouteEntries(const Model::PublishRouteEntriesRequest &request)const;
 			void publishRouteEntriesAsync(const Model::PublishRouteEntriesRequest& request, const PublishRouteEntriesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PublishRouteEntriesOutcomeCallable publishRouteEntriesCallable(const Model::PublishRouteEntriesRequest& request) const;
+			RegisterTransitRouterMulticastGroupMembersOutcome registerTransitRouterMulticastGroupMembers(const Model::RegisterTransitRouterMulticastGroupMembersRequest &request)const;
+			void registerTransitRouterMulticastGroupMembersAsync(const Model::RegisterTransitRouterMulticastGroupMembersRequest& request, const RegisterTransitRouterMulticastGroupMembersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			RegisterTransitRouterMulticastGroupMembersOutcomeCallable registerTransitRouterMulticastGroupMembersCallable(const Model::RegisterTransitRouterMulticastGroupMembersRequest& request) const;
+			RegisterTransitRouterMulticastGroupSourcesOutcome registerTransitRouterMulticastGroupSources(const Model::RegisterTransitRouterMulticastGroupSourcesRequest &request)const;
+			void registerTransitRouterMulticastGroupSourcesAsync(const Model::RegisterTransitRouterMulticastGroupSourcesRequest& request, const RegisterTransitRouterMulticastGroupSourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			RegisterTransitRouterMulticastGroupSourcesOutcomeCallable registerTransitRouterMulticastGroupSourcesCallable(const Model::RegisterTransitRouterMulticastGroupSourcesRequest& request) const;
 			RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcome removeTraficMatchRuleFromTrafficMarkingPolicy(const Model::RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest &request)const;
 			void removeTraficMatchRuleFromTrafficMarkingPolicyAsync(const Model::RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest& request, const RemoveTraficMatchRuleFromTrafficMarkingPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcomeCallable removeTraficMatchRuleFromTrafficMarkingPolicyCallable(const Model::RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest& request) const;

+ 71 - 0
cbn/include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.h

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT AddTrafficMatchRuleToTrafficMarkingPolicyRequest : public RpcServiceRequest {
+public:
+	struct TrafficMatchRules {
+		int matchDscp;
+		std::string protocol;
+		std::string trafficMatchRuleDescription;
+		std::string dstCidr;
+		std::string trafficMatchRuleName;
+		std::string srcCidr;
+	};
+	AddTrafficMatchRuleToTrafficMarkingPolicyRequest();
+	~AddTrafficMatchRuleToTrafficMarkingPolicyRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getTrafficMarkingPolicyId() const;
+	void setTrafficMarkingPolicyId(const std::string &trafficMarkingPolicyId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::vector<TrafficMatchRules> getTrafficMatchRules() const;
+	void setTrafficMatchRules(const std::vector<TrafficMatchRules> &trafficMatchRules);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string trafficMarkingPolicyId_;
+	bool dryRun_;
+	std::vector<TrafficMatchRules> trafficMatchRules_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT AddTrafficMatchRuleToTrafficMarkingPolicyResult : public ServiceResult
+			{
+			public:
+
+
+				AddTrafficMatchRuleToTrafficMarkingPolicyResult();
+				explicit AddTrafficMatchRuleToTrafficMarkingPolicyResult(const std::string &payload);
+				~AddTrafficMatchRuleToTrafficMarkingPolicyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_ADDTRAFFICMATCHRULETOTRAFFICMARKINGPOLICYRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT AssociateTransitRouterMulticastDomainRequest : public RpcServiceRequest {
+public:
+	AssociateTransitRouterMulticastDomainRequest();
+	~AssociateTransitRouterMulticastDomainRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getVSwitchIds() const;
+	void setVSwitchIds(const std::vector<std::string> &vSwitchIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> vSwitchIds_;
+	std::string transitRouterMulticastDomainId_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterAttachmentId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT AssociateTransitRouterMulticastDomainResult : public ServiceResult
+			{
+			public:
+
+
+				AssociateTransitRouterMulticastDomainResult();
+				explicit AssociateTransitRouterMulticastDomainResult(const std::string &payload);
+				~AssociateTransitRouterMulticastDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_ASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_

+ 75 - 0
cbn/include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainRequest.h

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT CreateTransitRouterMulticastDomainRequest : public RpcServiceRequest {
+public:
+	CreateTransitRouterMulticastDomainRequest();
+	~CreateTransitRouterMulticastDomainRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getCenId() const;
+	void setCenId(const std::string &cenId);
+	std::string getMulticastType() const;
+	void setMulticastType(const std::string &multicastType);
+	std::string getTransitRouterMulticastDomainDescription() const;
+	void setTransitRouterMulticastDomainDescription(const std::string &transitRouterMulticastDomainDescription);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::string getTransitRouterMulticastDomainName() const;
+	void setTransitRouterMulticastDomainName(const std::string &transitRouterMulticastDomainName);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getTransitRouterId() const;
+	void setTransitRouterId(const std::string &transitRouterId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string cenId_;
+	std::string multicastType_;
+	std::string transitRouterMulticastDomainDescription_;
+	std::string regionId_;
+	std::string transitRouterMulticastDomainName_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINREQUEST_H_

+ 51 - 0
cbn/include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainResult.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT CreateTransitRouterMulticastDomainResult : public ServiceResult
+			{
+			public:
+
+
+				CreateTransitRouterMulticastDomainResult();
+				explicit CreateTransitRouterMulticastDomainResult(const std::string &payload);
+				~CreateTransitRouterMulticastDomainResult();
+				std::string getTransitRouterMulticastDomainId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string transitRouterMulticastDomainId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERMULTICASTDOMAINRESULT_H_

+ 3 - 0
cbn/include/alibabacloud/cbn/model/CreateTransitRouterRequest.h

@@ -54,6 +54,8 @@ public:
 	void setOwnerId(long ownerId);
 	std::string getTransitRouterDescription() const;
 	void setTransitRouterDescription(const std::string &transitRouterDescription);
+	bool getSupportMulticast() const;
+	void setSupportMulticast(bool supportMulticast);
 
 private:
 	std::string transitRouterName_;
@@ -68,6 +70,7 @@ private:
 	std::string ownerAccount_;
 	long ownerId_;
 	std::string transitRouterDescription_;
+	bool supportMulticast_;
 };
 } // namespace Model
 } // namespace Cbn

+ 60 - 0
cbn/include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT DeleteTransitRouterMulticastDomainRequest : public RpcServiceRequest {
+public:
+	DeleteTransitRouterMulticastDomainRequest();
+	~DeleteTransitRouterMulticastDomainRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string transitRouterMulticastDomainId_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT DeleteTransitRouterMulticastDomainResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteTransitRouterMulticastDomainResult();
+				explicit DeleteTransitRouterMulticastDomainResult(const std::string &payload);
+				~DeleteTransitRouterMulticastDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERMULTICASTDOMAINRESULT_H_

+ 69 - 0
cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT DeregisterTransitRouterMulticastGroupMembersRequest : public RpcServiceRequest {
+public:
+	DeregisterTransitRouterMulticastGroupMembersRequest();
+	~DeregisterTransitRouterMulticastGroupMembersRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getNetworkInterfaceIds() const;
+	void setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getGroupIpAddress() const;
+	void setGroupIpAddress(const std::string &groupIpAddress);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	std::vector<std::string> getPeerTransitRouterMulticastDomains() const;
+	void setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> networkInterfaceIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string groupIpAddress_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	std::vector<std::string> peerTransitRouterMulticastDomains_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT DeregisterTransitRouterMulticastGroupMembersResult : public ServiceResult
+			{
+			public:
+
+
+				DeregisterTransitRouterMulticastGroupMembersResult();
+				explicit DeregisterTransitRouterMulticastGroupMembersResult(const std::string &payload);
+				~DeregisterTransitRouterMulticastGroupMembersResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT DeregisterTransitRouterMulticastGroupSourcesRequest : public RpcServiceRequest {
+public:
+	DeregisterTransitRouterMulticastGroupSourcesRequest();
+	~DeregisterTransitRouterMulticastGroupSourcesRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getNetworkInterfaceIds() const;
+	void setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getGroupIpAddress() const;
+	void setGroupIpAddress(const std::string &groupIpAddress);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> networkInterfaceIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string groupIpAddress_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT DeregisterTransitRouterMulticastGroupSourcesResult : public ServiceResult
+			{
+			public:
+
+
+				DeregisterTransitRouterMulticastGroupSourcesResult();
+				explicit DeregisterTransitRouterMulticastGroupSourcesResult(const std::string &payload);
+				~DeregisterTransitRouterMulticastGroupSourcesResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_DEREGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT DisassociateTransitRouterMulticastDomainRequest : public RpcServiceRequest {
+public:
+	DisassociateTransitRouterMulticastDomainRequest();
+	~DisassociateTransitRouterMulticastDomainRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getVSwitchIds() const;
+	void setVSwitchIds(const std::vector<std::string> &vSwitchIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> vSwitchIds_;
+	std::string transitRouterMulticastDomainId_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterAttachmentId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT DisassociateTransitRouterMulticastDomainResult : public ServiceResult
+			{
+			public:
+
+
+				DisassociateTransitRouterMulticastDomainResult();
+				explicit DisassociateTransitRouterMulticastDomainResult(const std::string &payload);
+				~DisassociateTransitRouterMulticastDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_DISASSOCIATETRANSITROUTERMULTICASTDOMAINRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/ListGrantVSwitchEnisRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ListGrantVSwitchEnisRequest : public RpcServiceRequest {
+public:
+	ListGrantVSwitchEnisRequest();
+	~ListGrantVSwitchEnisRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getCenId() const;
+	void setCenId(const std::string &cenId);
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getVSwitchId() const;
+	void setVSwitchId(const std::string &vSwitchId);
+	std::string getVpcId() const;
+	void setVpcId(const std::string &vpcId);
+
+private:
+	long resourceOwnerId_;
+	std::string cenId_;
+	int pageNumber_;
+	int pageSize_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string vSwitchId_;
+	std::string vpcId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISREQUEST_H_

+ 61 - 0
cbn/include/alibabacloud/cbn/model/ListGrantVSwitchEnisResult.h

@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ListGrantVSwitchEnisResult : public ServiceResult
+			{
+			public:
+				struct GrantVSwitchEni
+				{
+					std::string description;
+					bool transitRouterFlag;
+					std::string vpcId;
+					std::string vSwitchId;
+					std::string networkInterfaceId;
+				};
+
+
+				ListGrantVSwitchEnisResult();
+				explicit ListGrantVSwitchEnisResult(const std::string &payload);
+				~ListGrantVSwitchEnisResult();
+				std::string getTotalCount()const;
+				std::vector<GrantVSwitchEni> getGrantVSwitchEnis()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string totalCount_;
+				std::vector<GrantVSwitchEni> grantVSwitchEnis_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTGRANTVSWITCHENISRESULT_H_

+ 3 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterAvailableResourceRequest.h

@@ -44,6 +44,8 @@ public:
 	void setOwnerAccount(const std::string &ownerAccount);
 	long getOwnerId() const;
 	void setOwnerId(long ownerId);
+	bool getSupportMulticast() const;
+	void setSupportMulticast(bool supportMulticast);
 
 private:
 	long resourceOwnerId_;
@@ -53,6 +55,7 @@ private:
 	std::string resourceOwnerAccount_;
 	std::string ownerAccount_;
 	long ownerId_;
+	bool supportMulticast_;
 };
 } // namespace Model
 } // namespace Cbn

+ 78 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainAssociationsRequest : public RpcServiceRequest {
+public:
+	ListTransitRouterMulticastDomainAssociationsRequest();
+	~ListTransitRouterMulticastDomainAssociationsRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getVSwitchIds() const;
+	void setVSwitchIds(const std::vector<std::string> &vSwitchIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+	long getMaxResults() const;
+	void setMaxResults(long maxResults);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> vSwitchIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string nextToken_;
+	std::string resourceId_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string resourceType_;
+	std::string transitRouterAttachmentId_;
+	long maxResults_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSREQUEST_H_

+ 67 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsResult.h

@@ -0,0 +1,67 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainAssociationsResult : public ServiceResult
+			{
+			public:
+				struct TransitRouterMulticastAssociation
+				{
+					std::string transitRouterAttachmentId;
+					std::string status;
+					std::string resourceId;
+					std::string transitRouterMulticastDomainId;
+					std::string vSwitchId;
+					std::string resourceType;
+					long resourceOwnerId;
+				};
+
+
+				ListTransitRouterMulticastDomainAssociationsResult();
+				explicit ListTransitRouterMulticastDomainAssociationsResult(const std::string &payload);
+				~ListTransitRouterMulticastDomainAssociationsResult();
+				int getTotalCount()const;
+				std::vector<TransitRouterMulticastAssociation> getTransitRouterMulticastAssociations()const;
+				std::string getNextToken()const;
+				int getMaxResults()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::vector<TransitRouterMulticastAssociation> transitRouterMulticastAssociations_;
+				std::string nextToken_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINASSOCIATIONSRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainVSwitchesRequest : public RpcServiceRequest {
+public:
+	ListTransitRouterMulticastDomainVSwitchesRequest();
+	~ListTransitRouterMulticastDomainVSwitchesRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getCenId() const;
+	void setCenId(const std::string &cenId);
+	std::vector<std::string> getVSwitchIds() const;
+	void setVSwitchIds(const std::vector<std::string> &vSwitchIds);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getVpcId() const;
+	void setVpcId(const std::string &vpcId);
+	int getMaxResults() const;
+	void setMaxResults(int maxResults);
+
+private:
+	long resourceOwnerId_;
+	std::string cenId_;
+	std::vector<std::string> vSwitchIds_;
+	std::string nextToken_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string vpcId_;
+	int maxResults_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESREQUEST_H_

+ 57 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesResult.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainVSwitchesResult : public ServiceResult
+			{
+			public:
+
+
+				ListTransitRouterMulticastDomainVSwitchesResult();
+				explicit ListTransitRouterMulticastDomainVSwitchesResult(const std::string &payload);
+				~ListTransitRouterMulticastDomainVSwitchesResult();
+				int getTotalCount()const;
+				std::string getNextToken()const;
+				std::vector<std::string> getVSwitchIds()const;
+				int getMaxResults()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::string nextToken_;
+				std::vector<std::string> vSwitchIds_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINVSWITCHESRESULT_H_

+ 75 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsRequest.h

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainsRequest : public RpcServiceRequest {
+public:
+	ListTransitRouterMulticastDomainsRequest();
+	~ListTransitRouterMulticastDomainsRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getCenId() const;
+	void setCenId(const std::string &cenId);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getTransitRouterId() const;
+	void setTransitRouterId(const std::string &transitRouterId);
+	long getMaxResults() const;
+	void setMaxResults(long maxResults);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string cenId_;
+	std::string transitRouterMulticastDomainId_;
+	std::string regionId_;
+	std::string nextToken_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterId_;
+	long maxResults_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSREQUEST_H_

+ 64 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainsResult.h

@@ -0,0 +1,64 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastDomainsResult : public ServiceResult
+			{
+			public:
+				struct TransitRouterMulticastDomain
+				{
+					std::string status;
+					std::string transitRouterMulticastDomainId;
+					std::string transitRouterMulticastDomainName;
+					std::string transitRouterMulticastDomainDescription;
+				};
+
+
+				ListTransitRouterMulticastDomainsResult();
+				explicit ListTransitRouterMulticastDomainsResult(const std::string &payload);
+				~ListTransitRouterMulticastDomainsResult();
+				int getTotalCount()const;
+				std::string getNextToken()const;
+				int getMaxResults()const;
+				std::vector<TransitRouterMulticastDomain> getTransitRouterMulticastDomains()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::string nextToken_;
+				int maxResults_;
+				std::vector<TransitRouterMulticastDomain> transitRouterMulticastDomains_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTDOMAINSRESULT_H_

+ 81 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsRequest.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastGroupsRequest : public RpcServiceRequest {
+public:
+	ListTransitRouterMulticastGroupsRequest();
+	~ListTransitRouterMulticastGroupsRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getVSwitchIds() const;
+	void setVSwitchIds(const std::vector<std::string> &vSwitchIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	std::string getGroupIpAddress() const;
+	void setGroupIpAddress(const std::string &groupIpAddress);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	std::vector<std::string> getPeerTransitRouterMulticastDomains() const;
+	void setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+	long getMaxResults() const;
+	void setMaxResults(long maxResults);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> vSwitchIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string nextToken_;
+	std::string groupIpAddress_;
+	std::string resourceId_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	std::vector<std::string> peerTransitRouterMulticastDomains_;
+	long ownerId_;
+	std::string resourceType_;
+	std::string transitRouterAttachmentId_;
+	long maxResults_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSREQUEST_H_

+ 73 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterMulticastGroupsResult.h

@@ -0,0 +1,73 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ListTransitRouterMulticastGroupsResult : public ServiceResult
+			{
+			public:
+				struct TransitRouterMulticastGroup
+				{
+					std::string transitRouterAttachmentId;
+					std::string status;
+					bool groupMember;
+					std::string vSwitchId;
+					std::string sourceType;
+					std::string resourceType;
+					std::string networkInterfaceId;
+					long resourceOwnerId;
+					std::string groupIpAddress;
+					std::string peerTransitRouterMulticastDomainId;
+					std::string memberType;
+					std::string resourceId;
+					bool groupSource;
+				};
+
+
+				ListTransitRouterMulticastGroupsResult();
+				explicit ListTransitRouterMulticastGroupsResult(const std::string &payload);
+				~ListTransitRouterMulticastGroupsResult();
+				int getTotalCount()const;
+				std::string getNextToken()const;
+				int getMaxResults()const;
+				std::vector<TransitRouterMulticastGroup> getTransitRouterMulticastGroups()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::string nextToken_;
+				int maxResults_;
+				std::vector<TransitRouterMulticastGroup> transitRouterMulticastGroups_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERMULTICASTGROUPSRESULT_H_

+ 5 - 4
cbn/include/alibabacloud/cbn/model/ListTransitRouterVpcAttachmentsResult.h

@@ -42,15 +42,16 @@ namespace AlibabaCloud
 					};
 					std::string status;
 					std::string transitRouterAttachmentId;
-					std::string vpcId;
-					std::string creationTime;
-					std::string vpcRegionId;
 					std::string transitRouterAttachmentName;
 					std::string resourceType;
 					std::vector<TransitRouterAttachment::ZoneMapping> zoneMappings;
 					std::string serviceMode;
-					std::string transitRouterAttachmentDescription;
 					long vpcOwnerId;
+					std::string vpcId;
+					std::string chargeType;
+					std::string creationTime;
+					std::string vpcRegionId;
+					std::string transitRouterAttachmentDescription;
 					std::string transitRouterId;
 				};
 

+ 1 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRoutersResult.h

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string status;
 					std::string type;
+					bool supportMulticast;
 					std::string creationTime;
 					std::string cenId;
 					std::string transitRouterDescription;

+ 66 - 0
cbn/include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT ModifyTransitRouterMulticastDomainRequest : public RpcServiceRequest {
+public:
+	ModifyTransitRouterMulticastDomainRequest();
+	~ModifyTransitRouterMulticastDomainRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getTransitRouterMulticastDomainDescription() const;
+	void setTransitRouterMulticastDomainDescription(const std::string &transitRouterMulticastDomainDescription);
+	std::string getTransitRouterMulticastDomainName() const;
+	void setTransitRouterMulticastDomainName(const std::string &transitRouterMulticastDomainName);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string transitRouterMulticastDomainId_;
+	std::string transitRouterMulticastDomainDescription_;
+	std::string transitRouterMulticastDomainName_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT ModifyTransitRouterMulticastDomainResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyTransitRouterMulticastDomainResult();
+				explicit ModifyTransitRouterMulticastDomainResult(const std::string &payload);
+				~ModifyTransitRouterMulticastDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_MODIFYTRANSITROUTERMULTICASTDOMAINRESULT_H_

+ 69 - 0
cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT RegisterTransitRouterMulticastGroupMembersRequest : public RpcServiceRequest {
+public:
+	RegisterTransitRouterMulticastGroupMembersRequest();
+	~RegisterTransitRouterMulticastGroupMembersRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getNetworkInterfaceIds() const;
+	void setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getGroupIpAddress() const;
+	void setGroupIpAddress(const std::string &groupIpAddress);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	std::vector<std::string> getPeerTransitRouterMulticastDomains() const;
+	void setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> networkInterfaceIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string groupIpAddress_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	std::vector<std::string> peerTransitRouterMulticastDomains_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT RegisterTransitRouterMulticastGroupMembersResult : public ServiceResult
+			{
+			public:
+
+
+				RegisterTransitRouterMulticastGroupMembersResult();
+				explicit RegisterTransitRouterMulticastGroupMembersResult(const std::string &payload);
+				~RegisterTransitRouterMulticastGroupMembersResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPMEMBERSRESULT_H_

+ 66 - 0
cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_
+
+#include <alibabacloud/cbn/CbnExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cbn {
+namespace Model {
+class ALIBABACLOUD_CBN_EXPORT RegisterTransitRouterMulticastGroupSourcesRequest : public RpcServiceRequest {
+public:
+	RegisterTransitRouterMulticastGroupSourcesRequest();
+	~RegisterTransitRouterMulticastGroupSourcesRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::vector<std::string> getNetworkInterfaceIds() const;
+	void setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds);
+	std::string getTransitRouterMulticastDomainId() const;
+	void setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId);
+	std::string getGroupIpAddress() const;
+	void setGroupIpAddress(const std::string &groupIpAddress);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	std::string getOwnerAccount() const;
+	void setOwnerAccount(const std::string &ownerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::vector<std::string> networkInterfaceIds_;
+	std::string transitRouterMulticastDomainId_;
+	std::string groupIpAddress_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cbn/CbnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cbn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CBN_EXPORT RegisterTransitRouterMulticastGroupSourcesResult : public ServiceResult
+			{
+			public:
+
+
+				RegisterTransitRouterMulticastGroupSourcesResult();
+				explicit RegisterTransitRouterMulticastGroupSourcesResult(const std::string &payload);
+				~RegisterTransitRouterMulticastGroupSourcesResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_REGISTERTRANSITROUTERMULTICASTGROUPSOURCESRESULT_H_

+ 3 - 0
cbn/include/alibabacloud/cbn/model/UpdateTransitRouterRequest.h

@@ -50,6 +50,8 @@ public:
 	void setTransitRouterId(const std::string &transitRouterId);
 	std::string getTransitRouterDescription() const;
 	void setTransitRouterDescription(const std::string &transitRouterDescription);
+	bool getSupportMulticast() const;
+	void setSupportMulticast(bool supportMulticast);
 
 private:
 	std::string transitRouterName_;
@@ -62,6 +64,7 @@ private:
 	long ownerId_;
 	std::string transitRouterId_;
 	std::string transitRouterDescription_;
+	bool supportMulticast_;
 };
 } // namespace Model
 } // namespace Cbn

+ 540 - 0
cbn/src/CbnClient.cc

@@ -87,6 +87,42 @@ CbnClient::ActiveFlowLogOutcomeCallable CbnClient::activeFlowLogCallable(const A
 	return task->get_future();
 }
 
+CbnClient::AddTrafficMatchRuleToTrafficMarkingPolicyOutcome CbnClient::addTrafficMatchRuleToTrafficMarkingPolicy(const AddTrafficMatchRuleToTrafficMarkingPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AddTrafficMatchRuleToTrafficMarkingPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AddTrafficMatchRuleToTrafficMarkingPolicyOutcome(AddTrafficMatchRuleToTrafficMarkingPolicyResult(outcome.result()));
+	else
+		return AddTrafficMatchRuleToTrafficMarkingPolicyOutcome(outcome.error());
+}
+
+void CbnClient::addTrafficMatchRuleToTrafficMarkingPolicyAsync(const AddTrafficMatchRuleToTrafficMarkingPolicyRequest& request, const AddTrafficMatchRuleToTrafficMarkingPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, addTrafficMatchRuleToTrafficMarkingPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::AddTrafficMatchRuleToTrafficMarkingPolicyOutcomeCallable CbnClient::addTrafficMatchRuleToTrafficMarkingPolicyCallable(const AddTrafficMatchRuleToTrafficMarkingPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AddTrafficMatchRuleToTrafficMarkingPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->addTrafficMatchRuleToTrafficMarkingPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::AddTraficMatchRuleToTrafficMarkingPolicyOutcome CbnClient::addTraficMatchRuleToTrafficMarkingPolicy(const AddTraficMatchRuleToTrafficMarkingPolicyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -195,6 +231,42 @@ CbnClient::AssociateTransitRouterAttachmentWithRouteTableOutcomeCallable CbnClie
 	return task->get_future();
 }
 
+CbnClient::AssociateTransitRouterMulticastDomainOutcome CbnClient::associateTransitRouterMulticastDomain(const AssociateTransitRouterMulticastDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AssociateTransitRouterMulticastDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AssociateTransitRouterMulticastDomainOutcome(AssociateTransitRouterMulticastDomainResult(outcome.result()));
+	else
+		return AssociateTransitRouterMulticastDomainOutcome(outcome.error());
+}
+
+void CbnClient::associateTransitRouterMulticastDomainAsync(const AssociateTransitRouterMulticastDomainRequest& request, const AssociateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, associateTransitRouterMulticastDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::AssociateTransitRouterMulticastDomainOutcomeCallable CbnClient::associateTransitRouterMulticastDomainCallable(const AssociateTransitRouterMulticastDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AssociateTransitRouterMulticastDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->associateTransitRouterMulticastDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::AttachCenChildInstanceOutcome CbnClient::attachCenChildInstance(const AttachCenChildInstanceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -591,6 +663,42 @@ CbnClient::CreateTransitRouterOutcomeCallable CbnClient::createTransitRouterCall
 	return task->get_future();
 }
 
+CbnClient::CreateTransitRouterMulticastDomainOutcome CbnClient::createTransitRouterMulticastDomain(const CreateTransitRouterMulticastDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateTransitRouterMulticastDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateTransitRouterMulticastDomainOutcome(CreateTransitRouterMulticastDomainResult(outcome.result()));
+	else
+		return CreateTransitRouterMulticastDomainOutcome(outcome.error());
+}
+
+void CbnClient::createTransitRouterMulticastDomainAsync(const CreateTransitRouterMulticastDomainRequest& request, const CreateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createTransitRouterMulticastDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::CreateTransitRouterMulticastDomainOutcomeCallable CbnClient::createTransitRouterMulticastDomainCallable(const CreateTransitRouterMulticastDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateTransitRouterMulticastDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->createTransitRouterMulticastDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::CreateTransitRouterPeerAttachmentOutcome CbnClient::createTransitRouterPeerAttachment(const CreateTransitRouterPeerAttachmentRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1203,6 +1311,42 @@ CbnClient::DeleteTransitRouterOutcomeCallable CbnClient::deleteTransitRouterCall
 	return task->get_future();
 }
 
+CbnClient::DeleteTransitRouterMulticastDomainOutcome CbnClient::deleteTransitRouterMulticastDomain(const DeleteTransitRouterMulticastDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteTransitRouterMulticastDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteTransitRouterMulticastDomainOutcome(DeleteTransitRouterMulticastDomainResult(outcome.result()));
+	else
+		return DeleteTransitRouterMulticastDomainOutcome(outcome.error());
+}
+
+void CbnClient::deleteTransitRouterMulticastDomainAsync(const DeleteTransitRouterMulticastDomainRequest& request, const DeleteTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteTransitRouterMulticastDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::DeleteTransitRouterMulticastDomainOutcomeCallable CbnClient::deleteTransitRouterMulticastDomainCallable(const DeleteTransitRouterMulticastDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteTransitRouterMulticastDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteTransitRouterMulticastDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::DeleteTransitRouterPeerAttachmentOutcome CbnClient::deleteTransitRouterPeerAttachment(const DeleteTransitRouterPeerAttachmentRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1383,6 +1527,78 @@ CbnClient::DeleteTransitRouterVpcAttachmentOutcomeCallable CbnClient::deleteTran
 	return task->get_future();
 }
 
+CbnClient::DeregisterTransitRouterMulticastGroupMembersOutcome CbnClient::deregisterTransitRouterMulticastGroupMembers(const DeregisterTransitRouterMulticastGroupMembersRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeregisterTransitRouterMulticastGroupMembersOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeregisterTransitRouterMulticastGroupMembersOutcome(DeregisterTransitRouterMulticastGroupMembersResult(outcome.result()));
+	else
+		return DeregisterTransitRouterMulticastGroupMembersOutcome(outcome.error());
+}
+
+void CbnClient::deregisterTransitRouterMulticastGroupMembersAsync(const DeregisterTransitRouterMulticastGroupMembersRequest& request, const DeregisterTransitRouterMulticastGroupMembersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deregisterTransitRouterMulticastGroupMembers(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::DeregisterTransitRouterMulticastGroupMembersOutcomeCallable CbnClient::deregisterTransitRouterMulticastGroupMembersCallable(const DeregisterTransitRouterMulticastGroupMembersRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeregisterTransitRouterMulticastGroupMembersOutcome()>>(
+			[this, request]()
+			{
+			return this->deregisterTransitRouterMulticastGroupMembers(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CbnClient::DeregisterTransitRouterMulticastGroupSourcesOutcome CbnClient::deregisterTransitRouterMulticastGroupSources(const DeregisterTransitRouterMulticastGroupSourcesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeregisterTransitRouterMulticastGroupSourcesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeregisterTransitRouterMulticastGroupSourcesOutcome(DeregisterTransitRouterMulticastGroupSourcesResult(outcome.result()));
+	else
+		return DeregisterTransitRouterMulticastGroupSourcesOutcome(outcome.error());
+}
+
+void CbnClient::deregisterTransitRouterMulticastGroupSourcesAsync(const DeregisterTransitRouterMulticastGroupSourcesRequest& request, const DeregisterTransitRouterMulticastGroupSourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deregisterTransitRouterMulticastGroupSources(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::DeregisterTransitRouterMulticastGroupSourcesOutcomeCallable CbnClient::deregisterTransitRouterMulticastGroupSourcesCallable(const DeregisterTransitRouterMulticastGroupSourcesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeregisterTransitRouterMulticastGroupSourcesOutcome()>>(
+			[this, request]()
+			{
+			return this->deregisterTransitRouterMulticastGroupSources(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::DescribeCenAttachedChildInstanceAttributeOutcome CbnClient::describeCenAttachedChildInstanceAttribute(const DescribeCenAttachedChildInstanceAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2175,6 +2391,42 @@ CbnClient::DisableTransitRouterRouteTablePropagationOutcomeCallable CbnClient::d
 	return task->get_future();
 }
 
+CbnClient::DisassociateTransitRouterMulticastDomainOutcome CbnClient::disassociateTransitRouterMulticastDomain(const DisassociateTransitRouterMulticastDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DisassociateTransitRouterMulticastDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DisassociateTransitRouterMulticastDomainOutcome(DisassociateTransitRouterMulticastDomainResult(outcome.result()));
+	else
+		return DisassociateTransitRouterMulticastDomainOutcome(outcome.error());
+}
+
+void CbnClient::disassociateTransitRouterMulticastDomainAsync(const DisassociateTransitRouterMulticastDomainRequest& request, const DisassociateTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, disassociateTransitRouterMulticastDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::DisassociateTransitRouterMulticastDomainOutcomeCallable CbnClient::disassociateTransitRouterMulticastDomainCallable(const DisassociateTransitRouterMulticastDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DisassociateTransitRouterMulticastDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->disassociateTransitRouterMulticastDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::DissociateTransitRouterAttachmentFromRouteTableOutcome CbnClient::dissociateTransitRouterAttachmentFromRouteTable(const DissociateTransitRouterAttachmentFromRouteTableRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2355,6 +2607,42 @@ CbnClient::ListCenInterRegionTrafficQosPoliciesOutcomeCallable CbnClient::listCe
 	return task->get_future();
 }
 
+CbnClient::ListGrantVSwitchEnisOutcome CbnClient::listGrantVSwitchEnis(const ListGrantVSwitchEnisRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListGrantVSwitchEnisOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListGrantVSwitchEnisOutcome(ListGrantVSwitchEnisResult(outcome.result()));
+	else
+		return ListGrantVSwitchEnisOutcome(outcome.error());
+}
+
+void CbnClient::listGrantVSwitchEnisAsync(const ListGrantVSwitchEnisRequest& request, const ListGrantVSwitchEnisAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listGrantVSwitchEnis(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListGrantVSwitchEnisOutcomeCallable CbnClient::listGrantVSwitchEnisCallable(const ListGrantVSwitchEnisRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListGrantVSwitchEnisOutcome()>>(
+			[this, request]()
+			{
+			return this->listGrantVSwitchEnis(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::ListGrantVSwitchesToCenOutcome CbnClient::listGrantVSwitchesToCen(const ListGrantVSwitchesToCenRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2499,6 +2787,150 @@ CbnClient::ListTransitRouterAvailableResourceOutcomeCallable CbnClient::listTran
 	return task->get_future();
 }
 
+CbnClient::ListTransitRouterMulticastDomainAssociationsOutcome CbnClient::listTransitRouterMulticastDomainAssociations(const ListTransitRouterMulticastDomainAssociationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTransitRouterMulticastDomainAssociationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTransitRouterMulticastDomainAssociationsOutcome(ListTransitRouterMulticastDomainAssociationsResult(outcome.result()));
+	else
+		return ListTransitRouterMulticastDomainAssociationsOutcome(outcome.error());
+}
+
+void CbnClient::listTransitRouterMulticastDomainAssociationsAsync(const ListTransitRouterMulticastDomainAssociationsRequest& request, const ListTransitRouterMulticastDomainAssociationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTransitRouterMulticastDomainAssociations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListTransitRouterMulticastDomainAssociationsOutcomeCallable CbnClient::listTransitRouterMulticastDomainAssociationsCallable(const ListTransitRouterMulticastDomainAssociationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTransitRouterMulticastDomainAssociationsOutcome()>>(
+			[this, request]()
+			{
+			return this->listTransitRouterMulticastDomainAssociations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CbnClient::ListTransitRouterMulticastDomainVSwitchesOutcome CbnClient::listTransitRouterMulticastDomainVSwitches(const ListTransitRouterMulticastDomainVSwitchesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTransitRouterMulticastDomainVSwitchesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTransitRouterMulticastDomainVSwitchesOutcome(ListTransitRouterMulticastDomainVSwitchesResult(outcome.result()));
+	else
+		return ListTransitRouterMulticastDomainVSwitchesOutcome(outcome.error());
+}
+
+void CbnClient::listTransitRouterMulticastDomainVSwitchesAsync(const ListTransitRouterMulticastDomainVSwitchesRequest& request, const ListTransitRouterMulticastDomainVSwitchesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTransitRouterMulticastDomainVSwitches(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListTransitRouterMulticastDomainVSwitchesOutcomeCallable CbnClient::listTransitRouterMulticastDomainVSwitchesCallable(const ListTransitRouterMulticastDomainVSwitchesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTransitRouterMulticastDomainVSwitchesOutcome()>>(
+			[this, request]()
+			{
+			return this->listTransitRouterMulticastDomainVSwitches(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CbnClient::ListTransitRouterMulticastDomainsOutcome CbnClient::listTransitRouterMulticastDomains(const ListTransitRouterMulticastDomainsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTransitRouterMulticastDomainsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTransitRouterMulticastDomainsOutcome(ListTransitRouterMulticastDomainsResult(outcome.result()));
+	else
+		return ListTransitRouterMulticastDomainsOutcome(outcome.error());
+}
+
+void CbnClient::listTransitRouterMulticastDomainsAsync(const ListTransitRouterMulticastDomainsRequest& request, const ListTransitRouterMulticastDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTransitRouterMulticastDomains(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListTransitRouterMulticastDomainsOutcomeCallable CbnClient::listTransitRouterMulticastDomainsCallable(const ListTransitRouterMulticastDomainsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTransitRouterMulticastDomainsOutcome()>>(
+			[this, request]()
+			{
+			return this->listTransitRouterMulticastDomains(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CbnClient::ListTransitRouterMulticastGroupsOutcome CbnClient::listTransitRouterMulticastGroups(const ListTransitRouterMulticastGroupsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTransitRouterMulticastGroupsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTransitRouterMulticastGroupsOutcome(ListTransitRouterMulticastGroupsResult(outcome.result()));
+	else
+		return ListTransitRouterMulticastGroupsOutcome(outcome.error());
+}
+
+void CbnClient::listTransitRouterMulticastGroupsAsync(const ListTransitRouterMulticastGroupsRequest& request, const ListTransitRouterMulticastGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTransitRouterMulticastGroups(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListTransitRouterMulticastGroupsOutcomeCallable CbnClient::listTransitRouterMulticastGroupsCallable(const ListTransitRouterMulticastGroupsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTransitRouterMulticastGroupsOutcome()>>(
+			[this, request]()
+			{
+			return this->listTransitRouterMulticastGroups(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::ListTransitRouterPeerAttachmentsOutcome CbnClient::listTransitRouterPeerAttachments(const ListTransitRouterPeerAttachmentsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2967,6 +3399,42 @@ CbnClient::ModifyFlowLogAttributeOutcomeCallable CbnClient::modifyFlowLogAttribu
 	return task->get_future();
 }
 
+CbnClient::ModifyTransitRouterMulticastDomainOutcome CbnClient::modifyTransitRouterMulticastDomain(const ModifyTransitRouterMulticastDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyTransitRouterMulticastDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyTransitRouterMulticastDomainOutcome(ModifyTransitRouterMulticastDomainResult(outcome.result()));
+	else
+		return ModifyTransitRouterMulticastDomainOutcome(outcome.error());
+}
+
+void CbnClient::modifyTransitRouterMulticastDomainAsync(const ModifyTransitRouterMulticastDomainRequest& request, const ModifyTransitRouterMulticastDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyTransitRouterMulticastDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ModifyTransitRouterMulticastDomainOutcomeCallable CbnClient::modifyTransitRouterMulticastDomainCallable(const ModifyTransitRouterMulticastDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyTransitRouterMulticastDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyTransitRouterMulticastDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::MoveResourceGroupOutcome CbnClient::moveResourceGroup(const MoveResourceGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3075,6 +3543,78 @@ CbnClient::PublishRouteEntriesOutcomeCallable CbnClient::publishRouteEntriesCall
 	return task->get_future();
 }
 
+CbnClient::RegisterTransitRouterMulticastGroupMembersOutcome CbnClient::registerTransitRouterMulticastGroupMembers(const RegisterTransitRouterMulticastGroupMembersRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return RegisterTransitRouterMulticastGroupMembersOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return RegisterTransitRouterMulticastGroupMembersOutcome(RegisterTransitRouterMulticastGroupMembersResult(outcome.result()));
+	else
+		return RegisterTransitRouterMulticastGroupMembersOutcome(outcome.error());
+}
+
+void CbnClient::registerTransitRouterMulticastGroupMembersAsync(const RegisterTransitRouterMulticastGroupMembersRequest& request, const RegisterTransitRouterMulticastGroupMembersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, registerTransitRouterMulticastGroupMembers(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::RegisterTransitRouterMulticastGroupMembersOutcomeCallable CbnClient::registerTransitRouterMulticastGroupMembersCallable(const RegisterTransitRouterMulticastGroupMembersRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<RegisterTransitRouterMulticastGroupMembersOutcome()>>(
+			[this, request]()
+			{
+			return this->registerTransitRouterMulticastGroupMembers(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CbnClient::RegisterTransitRouterMulticastGroupSourcesOutcome CbnClient::registerTransitRouterMulticastGroupSources(const RegisterTransitRouterMulticastGroupSourcesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return RegisterTransitRouterMulticastGroupSourcesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return RegisterTransitRouterMulticastGroupSourcesOutcome(RegisterTransitRouterMulticastGroupSourcesResult(outcome.result()));
+	else
+		return RegisterTransitRouterMulticastGroupSourcesOutcome(outcome.error());
+}
+
+void CbnClient::registerTransitRouterMulticastGroupSourcesAsync(const RegisterTransitRouterMulticastGroupSourcesRequest& request, const RegisterTransitRouterMulticastGroupSourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, registerTransitRouterMulticastGroupSources(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::RegisterTransitRouterMulticastGroupSourcesOutcomeCallable CbnClient::registerTransitRouterMulticastGroupSourcesCallable(const RegisterTransitRouterMulticastGroupSourcesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<RegisterTransitRouterMulticastGroupSourcesOutcome()>>(
+			[this, request]()
+			{
+			return this->registerTransitRouterMulticastGroupSources(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::RemoveTraficMatchRuleFromTrafficMarkingPolicyOutcome CbnClient::removeTraficMatchRuleFromTrafficMarkingPolicy(const RemoveTraficMatchRuleFromTrafficMarkingPolicyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 108 - 0
cbn/src/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.cc

@@ -0,0 +1,108 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyRequest.h>
+
+using AlibabaCloud::Cbn::Model::AddTrafficMatchRuleToTrafficMarkingPolicyRequest;
+
+AddTrafficMatchRuleToTrafficMarkingPolicyRequest::AddTrafficMatchRuleToTrafficMarkingPolicyRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "AddTrafficMatchRuleToTrafficMarkingPolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AddTrafficMatchRuleToTrafficMarkingPolicyRequest::~AddTrafficMatchRuleToTrafficMarkingPolicyRequest() {}
+
+long AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getTrafficMarkingPolicyId() const {
+  return trafficMarkingPolicyId_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setTrafficMarkingPolicyId(const std::string &trafficMarkingPolicyId) {
+  trafficMarkingPolicyId_ = trafficMarkingPolicyId;
+  setParameter(std::string("TrafficMarkingPolicyId"), trafficMarkingPolicyId);
+}
+
+bool AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::vector<AddTrafficMatchRuleToTrafficMarkingPolicyRequest::TrafficMatchRules> AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getTrafficMatchRules() const {
+  return trafficMatchRules_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setTrafficMatchRules(const std::vector<AddTrafficMatchRuleToTrafficMarkingPolicyRequest::TrafficMatchRules> &trafficMatchRules) {
+  trafficMatchRules_ = trafficMatchRules;
+  for(int dep1 = 0; dep1 != trafficMatchRules.size(); dep1++) {
+  auto trafficMatchRulesObj = trafficMatchRules.at(dep1);
+  std::string trafficMatchRulesObjStr = std::string("TrafficMatchRules") + "." + std::to_string(dep1 + 1);
+    setParameter(trafficMatchRulesObjStr + ".MatchDscp", std::to_string(trafficMatchRulesObj.matchDscp));
+    setParameter(trafficMatchRulesObjStr + ".Protocol", trafficMatchRulesObj.protocol);
+    setParameter(trafficMatchRulesObjStr + ".TrafficMatchRuleDescription", trafficMatchRulesObj.trafficMatchRuleDescription);
+    setParameter(trafficMatchRulesObjStr + ".DstCidr", trafficMatchRulesObj.dstCidr);
+    setParameter(trafficMatchRulesObjStr + ".TrafficMatchRuleName", trafficMatchRulesObj.trafficMatchRuleName);
+    setParameter(trafficMatchRulesObjStr + ".SrcCidr", trafficMatchRulesObj.srcCidr);
+  }
+}
+
+std::string AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long AddTrafficMatchRuleToTrafficMarkingPolicyRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/AddTrafficMatchRuleToTrafficMarkingPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+AddTrafficMatchRuleToTrafficMarkingPolicyResult::AddTrafficMatchRuleToTrafficMarkingPolicyResult() :
+	ServiceResult()
+{}
+
+AddTrafficMatchRuleToTrafficMarkingPolicyResult::AddTrafficMatchRuleToTrafficMarkingPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddTrafficMatchRuleToTrafficMarkingPolicyResult::~AddTrafficMatchRuleToTrafficMarkingPolicyResult()
+{}
+
+void AddTrafficMatchRuleToTrafficMarkingPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 107 - 0
cbn/src/model/AssociateTransitRouterMulticastDomainRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainRequest.h>
+
+using AlibabaCloud::Cbn::Model::AssociateTransitRouterMulticastDomainRequest;
+
+AssociateTransitRouterMulticastDomainRequest::AssociateTransitRouterMulticastDomainRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "AssociateTransitRouterMulticastDomain") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AssociateTransitRouterMulticastDomainRequest::~AssociateTransitRouterMulticastDomainRequest() {}
+
+long AssociateTransitRouterMulticastDomainRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string AssociateTransitRouterMulticastDomainRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> AssociateTransitRouterMulticastDomainRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setVSwitchIds(const std::vector<std::string> &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+}
+
+std::string AssociateTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+bool AssociateTransitRouterMulticastDomainRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string AssociateTransitRouterMulticastDomainRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string AssociateTransitRouterMulticastDomainRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long AssociateTransitRouterMulticastDomainRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string AssociateTransitRouterMulticastDomainRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void AssociateTransitRouterMulticastDomainRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+

+ 44 - 0
cbn/src/model/AssociateTransitRouterMulticastDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/AssociateTransitRouterMulticastDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+AssociateTransitRouterMulticastDomainResult::AssociateTransitRouterMulticastDomainResult() :
+	ServiceResult()
+{}
+
+AssociateTransitRouterMulticastDomainResult::AssociateTransitRouterMulticastDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AssociateTransitRouterMulticastDomainResult::~AssociateTransitRouterMulticastDomainResult()
+{}
+
+void AssociateTransitRouterMulticastDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 135 - 0
cbn/src/model/CreateTransitRouterMulticastDomainRequest.cc

@@ -0,0 +1,135 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/CreateTransitRouterMulticastDomainRequest.h>
+
+using AlibabaCloud::Cbn::Model::CreateTransitRouterMulticastDomainRequest;
+
+CreateTransitRouterMulticastDomainRequest::CreateTransitRouterMulticastDomainRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "CreateTransitRouterMulticastDomain") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateTransitRouterMulticastDomainRequest::~CreateTransitRouterMulticastDomainRequest() {}
+
+long CreateTransitRouterMulticastDomainRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getCenId() const {
+  return cenId_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getMulticastType() const {
+  return multicastType_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setMulticastType(const std::string &multicastType) {
+  multicastType_ = multicastType;
+  setParameter(std::string("MulticastType"), multicastType);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainDescription() const {
+  return transitRouterMulticastDomainDescription_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainDescription(const std::string &transitRouterMulticastDomainDescription) {
+  transitRouterMulticastDomainDescription_ = transitRouterMulticastDomainDescription;
+  setParameter(std::string("TransitRouterMulticastDomainDescription"), transitRouterMulticastDomainDescription);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getRegionId() const {
+  return regionId_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainName() const {
+  return transitRouterMulticastDomainName_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainName(const std::string &transitRouterMulticastDomainName) {
+  transitRouterMulticastDomainName_ = transitRouterMulticastDomainName;
+  setParameter(std::string("TransitRouterMulticastDomainName"), transitRouterMulticastDomainName);
+}
+
+bool CreateTransitRouterMulticastDomainRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long CreateTransitRouterMulticastDomainRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string CreateTransitRouterMulticastDomainRequest::getTransitRouterId() const {
+  return transitRouterId_;
+}
+
+void CreateTransitRouterMulticastDomainRequest::setTransitRouterId(const std::string &transitRouterId) {
+  transitRouterId_ = transitRouterId;
+  setParameter(std::string("TransitRouterId"), transitRouterId);
+}
+

+ 51 - 0
cbn/src/model/CreateTransitRouterMulticastDomainResult.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/CreateTransitRouterMulticastDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+CreateTransitRouterMulticastDomainResult::CreateTransitRouterMulticastDomainResult() :
+	ServiceResult()
+{}
+
+CreateTransitRouterMulticastDomainResult::CreateTransitRouterMulticastDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateTransitRouterMulticastDomainResult::~CreateTransitRouterMulticastDomainResult()
+{}
+
+void CreateTransitRouterMulticastDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["TransitRouterMulticastDomainId"].isNull())
+		transitRouterMulticastDomainId_ = value["TransitRouterMulticastDomainId"].asString();
+
+}
+
+std::string CreateTransitRouterMulticastDomainResult::getTransitRouterMulticastDomainId()const
+{
+	return transitRouterMulticastDomainId_;
+}
+

+ 9 - 0
cbn/src/model/CreateTransitRouterRequest.cc

@@ -133,3 +133,12 @@ void CreateTransitRouterRequest::setTransitRouterDescription(const std::string &
   setParameter(std::string("TransitRouterDescription"), transitRouterDescription);
 }
 
+bool CreateTransitRouterRequest::getSupportMulticast() const {
+  return supportMulticast_;
+}
+
+void CreateTransitRouterRequest::setSupportMulticast(bool supportMulticast) {
+  supportMulticast_ = supportMulticast;
+  setParameter(std::string("SupportMulticast"), supportMulticast ? "true" : "false");
+}
+

+ 90 - 0
cbn/src/model/DeleteTransitRouterMulticastDomainRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainRequest.h>
+
+using AlibabaCloud::Cbn::Model::DeleteTransitRouterMulticastDomainRequest;
+
+DeleteTransitRouterMulticastDomainRequest::DeleteTransitRouterMulticastDomainRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "DeleteTransitRouterMulticastDomain") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteTransitRouterMulticastDomainRequest::~DeleteTransitRouterMulticastDomainRequest() {}
+
+long DeleteTransitRouterMulticastDomainRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string DeleteTransitRouterMulticastDomainRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string DeleteTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+bool DeleteTransitRouterMulticastDomainRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string DeleteTransitRouterMulticastDomainRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string DeleteTransitRouterMulticastDomainRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long DeleteTransitRouterMulticastDomainRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DeleteTransitRouterMulticastDomainRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/DeleteTransitRouterMulticastDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+DeleteTransitRouterMulticastDomainResult::DeleteTransitRouterMulticastDomainResult() :
+	ServiceResult()
+{}
+
+DeleteTransitRouterMulticastDomainResult::DeleteTransitRouterMulticastDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteTransitRouterMulticastDomainResult::~DeleteTransitRouterMulticastDomainResult()
+{}
+
+void DeleteTransitRouterMulticastDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 115 - 0
cbn/src/model/DeregisterTransitRouterMulticastGroupMembersRequest.cc

@@ -0,0 +1,115 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersRequest.h>
+
+using AlibabaCloud::Cbn::Model::DeregisterTransitRouterMulticastGroupMembersRequest;
+
+DeregisterTransitRouterMulticastGroupMembersRequest::DeregisterTransitRouterMulticastGroupMembersRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "DeregisterTransitRouterMulticastGroupMembers") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeregisterTransitRouterMulticastGroupMembersRequest::~DeregisterTransitRouterMulticastGroupMembersRequest() {}
+
+long DeregisterTransitRouterMulticastGroupMembersRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string DeregisterTransitRouterMulticastGroupMembersRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> DeregisterTransitRouterMulticastGroupMembersRequest::getNetworkInterfaceIds() const {
+  return networkInterfaceIds_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds) {
+  networkInterfaceIds_ = networkInterfaceIds;
+}
+
+std::string DeregisterTransitRouterMulticastGroupMembersRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string DeregisterTransitRouterMulticastGroupMembersRequest::getGroupIpAddress() const {
+  return groupIpAddress_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setGroupIpAddress(const std::string &groupIpAddress) {
+  groupIpAddress_ = groupIpAddress;
+  setParameter(std::string("GroupIpAddress"), groupIpAddress);
+}
+
+bool DeregisterTransitRouterMulticastGroupMembersRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string DeregisterTransitRouterMulticastGroupMembersRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string DeregisterTransitRouterMulticastGroupMembersRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+std::vector<std::string> DeregisterTransitRouterMulticastGroupMembersRequest::getPeerTransitRouterMulticastDomains() const {
+  return peerTransitRouterMulticastDomains_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains) {
+  peerTransitRouterMulticastDomains_ = peerTransitRouterMulticastDomains;
+}
+
+long DeregisterTransitRouterMulticastGroupMembersRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DeregisterTransitRouterMulticastGroupMembersRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/DeregisterTransitRouterMulticastGroupMembersResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupMembersResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+DeregisterTransitRouterMulticastGroupMembersResult::DeregisterTransitRouterMulticastGroupMembersResult() :
+	ServiceResult()
+{}
+
+DeregisterTransitRouterMulticastGroupMembersResult::DeregisterTransitRouterMulticastGroupMembersResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeregisterTransitRouterMulticastGroupMembersResult::~DeregisterTransitRouterMulticastGroupMembersResult()
+{}
+
+void DeregisterTransitRouterMulticastGroupMembersResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 107 - 0
cbn/src/model/DeregisterTransitRouterMulticastGroupSourcesRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesRequest.h>
+
+using AlibabaCloud::Cbn::Model::DeregisterTransitRouterMulticastGroupSourcesRequest;
+
+DeregisterTransitRouterMulticastGroupSourcesRequest::DeregisterTransitRouterMulticastGroupSourcesRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "DeregisterTransitRouterMulticastGroupSources") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeregisterTransitRouterMulticastGroupSourcesRequest::~DeregisterTransitRouterMulticastGroupSourcesRequest() {}
+
+long DeregisterTransitRouterMulticastGroupSourcesRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string DeregisterTransitRouterMulticastGroupSourcesRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> DeregisterTransitRouterMulticastGroupSourcesRequest::getNetworkInterfaceIds() const {
+  return networkInterfaceIds_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds) {
+  networkInterfaceIds_ = networkInterfaceIds;
+}
+
+std::string DeregisterTransitRouterMulticastGroupSourcesRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string DeregisterTransitRouterMulticastGroupSourcesRequest::getGroupIpAddress() const {
+  return groupIpAddress_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setGroupIpAddress(const std::string &groupIpAddress) {
+  groupIpAddress_ = groupIpAddress;
+  setParameter(std::string("GroupIpAddress"), groupIpAddress);
+}
+
+bool DeregisterTransitRouterMulticastGroupSourcesRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string DeregisterTransitRouterMulticastGroupSourcesRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string DeregisterTransitRouterMulticastGroupSourcesRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long DeregisterTransitRouterMulticastGroupSourcesRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DeregisterTransitRouterMulticastGroupSourcesRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/DeregisterTransitRouterMulticastGroupSourcesResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DeregisterTransitRouterMulticastGroupSourcesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+DeregisterTransitRouterMulticastGroupSourcesResult::DeregisterTransitRouterMulticastGroupSourcesResult() :
+	ServiceResult()
+{}
+
+DeregisterTransitRouterMulticastGroupSourcesResult::DeregisterTransitRouterMulticastGroupSourcesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeregisterTransitRouterMulticastGroupSourcesResult::~DeregisterTransitRouterMulticastGroupSourcesResult()
+{}
+
+void DeregisterTransitRouterMulticastGroupSourcesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 107 - 0
cbn/src/model/DisassociateTransitRouterMulticastDomainRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainRequest.h>
+
+using AlibabaCloud::Cbn::Model::DisassociateTransitRouterMulticastDomainRequest;
+
+DisassociateTransitRouterMulticastDomainRequest::DisassociateTransitRouterMulticastDomainRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "DisassociateTransitRouterMulticastDomain") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DisassociateTransitRouterMulticastDomainRequest::~DisassociateTransitRouterMulticastDomainRequest() {}
+
+long DisassociateTransitRouterMulticastDomainRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string DisassociateTransitRouterMulticastDomainRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> DisassociateTransitRouterMulticastDomainRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setVSwitchIds(const std::vector<std::string> &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+}
+
+std::string DisassociateTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+bool DisassociateTransitRouterMulticastDomainRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string DisassociateTransitRouterMulticastDomainRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string DisassociateTransitRouterMulticastDomainRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long DisassociateTransitRouterMulticastDomainRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string DisassociateTransitRouterMulticastDomainRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void DisassociateTransitRouterMulticastDomainRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+

+ 44 - 0
cbn/src/model/DisassociateTransitRouterMulticastDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/DisassociateTransitRouterMulticastDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+DisassociateTransitRouterMulticastDomainResult::DisassociateTransitRouterMulticastDomainResult() :
+	ServiceResult()
+{}
+
+DisassociateTransitRouterMulticastDomainResult::DisassociateTransitRouterMulticastDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DisassociateTransitRouterMulticastDomainResult::~DisassociateTransitRouterMulticastDomainResult()
+{}
+
+void DisassociateTransitRouterMulticastDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 108 - 0
cbn/src/model/ListGrantVSwitchEnisRequest.cc

@@ -0,0 +1,108 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListGrantVSwitchEnisRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListGrantVSwitchEnisRequest;
+
+ListGrantVSwitchEnisRequest::ListGrantVSwitchEnisRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListGrantVSwitchEnis") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListGrantVSwitchEnisRequest::~ListGrantVSwitchEnisRequest() {}
+
+long ListGrantVSwitchEnisRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListGrantVSwitchEnisRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListGrantVSwitchEnisRequest::getCenId() const {
+  return cenId_;
+}
+
+void ListGrantVSwitchEnisRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+int ListGrantVSwitchEnisRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void ListGrantVSwitchEnisRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+
+int ListGrantVSwitchEnisRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListGrantVSwitchEnisRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::string ListGrantVSwitchEnisRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListGrantVSwitchEnisRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListGrantVSwitchEnisRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListGrantVSwitchEnisRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ListGrantVSwitchEnisRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListGrantVSwitchEnisRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListGrantVSwitchEnisRequest::getVSwitchId() const {
+  return vSwitchId_;
+}
+
+void ListGrantVSwitchEnisRequest::setVSwitchId(const std::string &vSwitchId) {
+  vSwitchId_ = vSwitchId;
+  setParameter(std::string("VSwitchId"), vSwitchId);
+}
+
+std::string ListGrantVSwitchEnisRequest::getVpcId() const {
+  return vpcId_;
+}
+
+void ListGrantVSwitchEnisRequest::setVpcId(const std::string &vpcId) {
+  vpcId_ = vpcId;
+  setParameter(std::string("VpcId"), vpcId);
+}
+

+ 72 - 0
cbn/src/model/ListGrantVSwitchEnisResult.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListGrantVSwitchEnisResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListGrantVSwitchEnisResult::ListGrantVSwitchEnisResult() :
+	ServiceResult()
+{}
+
+ListGrantVSwitchEnisResult::ListGrantVSwitchEnisResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListGrantVSwitchEnisResult::~ListGrantVSwitchEnisResult()
+{}
+
+void ListGrantVSwitchEnisResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allGrantVSwitchEnisNode = value["GrantVSwitchEnis"]["GrantVSwitchEni"];
+	for (auto valueGrantVSwitchEnisGrantVSwitchEni : allGrantVSwitchEnisNode)
+	{
+		GrantVSwitchEni grantVSwitchEnisObject;
+		if(!valueGrantVSwitchEnisGrantVSwitchEni["VpcId"].isNull())
+			grantVSwitchEnisObject.vpcId = valueGrantVSwitchEnisGrantVSwitchEni["VpcId"].asString();
+		if(!valueGrantVSwitchEnisGrantVSwitchEni["VSwitchId"].isNull())
+			grantVSwitchEnisObject.vSwitchId = valueGrantVSwitchEnisGrantVSwitchEni["VSwitchId"].asString();
+		if(!valueGrantVSwitchEnisGrantVSwitchEni["NetworkInterfaceId"].isNull())
+			grantVSwitchEnisObject.networkInterfaceId = valueGrantVSwitchEnisGrantVSwitchEni["NetworkInterfaceId"].asString();
+		if(!valueGrantVSwitchEnisGrantVSwitchEni["Description"].isNull())
+			grantVSwitchEnisObject.description = valueGrantVSwitchEnisGrantVSwitchEni["Description"].asString();
+		if(!valueGrantVSwitchEnisGrantVSwitchEni["TransitRouterFlag"].isNull())
+			grantVSwitchEnisObject.transitRouterFlag = valueGrantVSwitchEnisGrantVSwitchEni["TransitRouterFlag"].asString() == "true";
+		grantVSwitchEnis_.push_back(grantVSwitchEnisObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = value["TotalCount"].asString();
+
+}
+
+std::string ListGrantVSwitchEnisResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::vector<ListGrantVSwitchEnisResult::GrantVSwitchEni> ListGrantVSwitchEnisResult::getGrantVSwitchEnis()const
+{
+	return grantVSwitchEnis_;
+}
+

+ 9 - 0
cbn/src/model/ListTransitRouterAvailableResourceRequest.cc

@@ -88,3 +88,12 @@ void ListTransitRouterAvailableResourceRequest::setOwnerId(long ownerId) {
   setParameter(std::string("OwnerId"), std::to_string(ownerId));
 }
 
+bool ListTransitRouterAvailableResourceRequest::getSupportMulticast() const {
+  return supportMulticast_;
+}
+
+void ListTransitRouterAvailableResourceRequest::setSupportMulticast(bool supportMulticast) {
+  supportMulticast_ = supportMulticast;
+  setParameter(std::string("SupportMulticast"), supportMulticast ? "true" : "false");
+}
+

+ 143 - 0
cbn/src/model/ListTransitRouterMulticastDomainAssociationsRequest.cc

@@ -0,0 +1,143 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListTransitRouterMulticastDomainAssociationsRequest;
+
+ListTransitRouterMulticastDomainAssociationsRequest::ListTransitRouterMulticastDomainAssociationsRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListTransitRouterMulticastDomainAssociations") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTransitRouterMulticastDomainAssociationsRequest::~ListTransitRouterMulticastDomainAssociationsRequest() {}
+
+long ListTransitRouterMulticastDomainAssociationsRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> ListTransitRouterMulticastDomainAssociationsRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setVSwitchIds(const std::vector<std::string> &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+bool ListTransitRouterMulticastDomainAssociationsRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ListTransitRouterMulticastDomainAssociationsRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+
+long ListTransitRouterMulticastDomainAssociationsRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListTransitRouterMulticastDomainAssociationsRequest::setMaxResults(long maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 90 - 0
cbn/src/model/ListTransitRouterMulticastDomainAssociationsResult.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListTransitRouterMulticastDomainAssociationsResult::ListTransitRouterMulticastDomainAssociationsResult() :
+	ServiceResult()
+{}
+
+ListTransitRouterMulticastDomainAssociationsResult::ListTransitRouterMulticastDomainAssociationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTransitRouterMulticastDomainAssociationsResult::~ListTransitRouterMulticastDomainAssociationsResult()
+{}
+
+void ListTransitRouterMulticastDomainAssociationsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTransitRouterMulticastAssociationsNode = value["TransitRouterMulticastAssociations"]["TransitRouterMulticastAssociation"];
+	for (auto valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation : allTransitRouterMulticastAssociationsNode)
+	{
+		TransitRouterMulticastAssociation transitRouterMulticastAssociationsObject;
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["TransitRouterMulticastDomainId"].isNull())
+			transitRouterMulticastAssociationsObject.transitRouterMulticastDomainId = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["TransitRouterMulticastDomainId"].asString();
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["TransitRouterAttachmentId"].isNull())
+			transitRouterMulticastAssociationsObject.transitRouterAttachmentId = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["TransitRouterAttachmentId"].asString();
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["VSwitchId"].isNull())
+			transitRouterMulticastAssociationsObject.vSwitchId = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["VSwitchId"].asString();
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["Status"].isNull())
+			transitRouterMulticastAssociationsObject.status = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["Status"].asString();
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceType"].isNull())
+			transitRouterMulticastAssociationsObject.resourceType = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceType"].asString();
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceOwnerId"].isNull())
+			transitRouterMulticastAssociationsObject.resourceOwnerId = std::stol(valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceOwnerId"].asString());
+		if(!valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceId"].isNull())
+			transitRouterMulticastAssociationsObject.resourceId = valueTransitRouterMulticastAssociationsTransitRouterMulticastAssociation["ResourceId"].asString();
+		transitRouterMulticastAssociations_.push_back(transitRouterMulticastAssociationsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["MaxResults"].isNull())
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+int ListTransitRouterMulticastDomainAssociationsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::vector<ListTransitRouterMulticastDomainAssociationsResult::TransitRouterMulticastAssociation> ListTransitRouterMulticastDomainAssociationsResult::getTransitRouterMulticastAssociations()const
+{
+	return transitRouterMulticastAssociations_;
+}
+
+std::string ListTransitRouterMulticastDomainAssociationsResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+int ListTransitRouterMulticastDomainAssociationsResult::getMaxResults()const
+{
+	return maxResults_;
+}
+

+ 107 - 0
cbn/src/model/ListTransitRouterMulticastDomainVSwitchesRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListTransitRouterMulticastDomainVSwitchesRequest;
+
+ListTransitRouterMulticastDomainVSwitchesRequest::ListTransitRouterMulticastDomainVSwitchesRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListTransitRouterMulticastDomainVSwitches") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTransitRouterMulticastDomainVSwitchesRequest::~ListTransitRouterMulticastDomainVSwitchesRequest() {}
+
+long ListTransitRouterMulticastDomainVSwitchesRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesRequest::getCenId() const {
+  return cenId_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+std::vector<std::string> ListTransitRouterMulticastDomainVSwitchesRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setVSwitchIds(const std::vector<std::string> &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ListTransitRouterMulticastDomainVSwitchesRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesRequest::getVpcId() const {
+  return vpcId_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setVpcId(const std::string &vpcId) {
+  vpcId_ = vpcId;
+  setParameter(std::string("VpcId"), vpcId);
+}
+
+int ListTransitRouterMulticastDomainVSwitchesRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListTransitRouterMulticastDomainVSwitchesRequest::setMaxResults(int maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 73 - 0
cbn/src/model/ListTransitRouterMulticastDomainVSwitchesResult.cc

@@ -0,0 +1,73 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListTransitRouterMulticastDomainVSwitchesResult::ListTransitRouterMulticastDomainVSwitchesResult() :
+	ServiceResult()
+{}
+
+ListTransitRouterMulticastDomainVSwitchesResult::ListTransitRouterMulticastDomainVSwitchesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTransitRouterMulticastDomainVSwitchesResult::~ListTransitRouterMulticastDomainVSwitchesResult()
+{}
+
+void ListTransitRouterMulticastDomainVSwitchesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allVSwitchIds = value["VSwitchIds"]["VSwitchIds"];
+	for (const auto &item : allVSwitchIds)
+		vSwitchIds_.push_back(item.asString());
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["MaxResults"].isNull())
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+
+}
+
+int ListTransitRouterMulticastDomainVSwitchesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::string ListTransitRouterMulticastDomainVSwitchesResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+std::vector<std::string> ListTransitRouterMulticastDomainVSwitchesResult::getVSwitchIds()const
+{
+	return vSwitchIds_;
+}
+
+int ListTransitRouterMulticastDomainVSwitchesResult::getMaxResults()const
+{
+	return maxResults_;
+}
+

+ 135 - 0
cbn/src/model/ListTransitRouterMulticastDomainsRequest.cc

@@ -0,0 +1,135 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainsRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListTransitRouterMulticastDomainsRequest;
+
+ListTransitRouterMulticastDomainsRequest::ListTransitRouterMulticastDomainsRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListTransitRouterMulticastDomains") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTransitRouterMulticastDomainsRequest::~ListTransitRouterMulticastDomainsRequest() {}
+
+long ListTransitRouterMulticastDomainsRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getCenId() const {
+  return cenId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getRegionId() const {
+  return regionId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+bool ListTransitRouterMulticastDomainsRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ListTransitRouterMulticastDomainsRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListTransitRouterMulticastDomainsRequest::getTransitRouterId() const {
+  return transitRouterId_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setTransitRouterId(const std::string &transitRouterId) {
+  transitRouterId_ = transitRouterId;
+  setParameter(std::string("TransitRouterId"), transitRouterId);
+}
+
+long ListTransitRouterMulticastDomainsRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListTransitRouterMulticastDomainsRequest::setMaxResults(long maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 84 - 0
cbn/src/model/ListTransitRouterMulticastDomainsResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastDomainsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListTransitRouterMulticastDomainsResult::ListTransitRouterMulticastDomainsResult() :
+	ServiceResult()
+{}
+
+ListTransitRouterMulticastDomainsResult::ListTransitRouterMulticastDomainsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTransitRouterMulticastDomainsResult::~ListTransitRouterMulticastDomainsResult()
+{}
+
+void ListTransitRouterMulticastDomainsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTransitRouterMulticastDomainsNode = value["TransitRouterMulticastDomains"]["TransitRouterMulticastDomain"];
+	for (auto valueTransitRouterMulticastDomainsTransitRouterMulticastDomain : allTransitRouterMulticastDomainsNode)
+	{
+		TransitRouterMulticastDomain transitRouterMulticastDomainsObject;
+		if(!valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainId"].isNull())
+			transitRouterMulticastDomainsObject.transitRouterMulticastDomainId = valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainId"].asString();
+		if(!valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainName"].isNull())
+			transitRouterMulticastDomainsObject.transitRouterMulticastDomainName = valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainName"].asString();
+		if(!valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainDescription"].isNull())
+			transitRouterMulticastDomainsObject.transitRouterMulticastDomainDescription = valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["TransitRouterMulticastDomainDescription"].asString();
+		if(!valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["Status"].isNull())
+			transitRouterMulticastDomainsObject.status = valueTransitRouterMulticastDomainsTransitRouterMulticastDomain["Status"].asString();
+		transitRouterMulticastDomains_.push_back(transitRouterMulticastDomainsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["MaxResults"].isNull())
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+int ListTransitRouterMulticastDomainsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::string ListTransitRouterMulticastDomainsResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+int ListTransitRouterMulticastDomainsResult::getMaxResults()const
+{
+	return maxResults_;
+}
+
+std::vector<ListTransitRouterMulticastDomainsResult::TransitRouterMulticastDomain> ListTransitRouterMulticastDomainsResult::getTransitRouterMulticastDomains()const
+{
+	return transitRouterMulticastDomains_;
+}
+

+ 151 - 0
cbn/src/model/ListTransitRouterMulticastGroupsRequest.cc

@@ -0,0 +1,151 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastGroupsRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListTransitRouterMulticastGroupsRequest;
+
+ListTransitRouterMulticastGroupsRequest::ListTransitRouterMulticastGroupsRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListTransitRouterMulticastGroups") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTransitRouterMulticastGroupsRequest::~ListTransitRouterMulticastGroupsRequest() {}
+
+long ListTransitRouterMulticastGroupsRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> ListTransitRouterMulticastGroupsRequest::getVSwitchIds() const {
+  return vSwitchIds_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setVSwitchIds(const std::vector<std::string> &vSwitchIds) {
+  vSwitchIds_ = vSwitchIds;
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getGroupIpAddress() const {
+  return groupIpAddress_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setGroupIpAddress(const std::string &groupIpAddress) {
+  groupIpAddress_ = groupIpAddress;
+  setParameter(std::string("GroupIpAddress"), groupIpAddress);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+std::vector<std::string> ListTransitRouterMulticastGroupsRequest::getPeerTransitRouterMulticastDomains() const {
+  return peerTransitRouterMulticastDomains_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains) {
+  peerTransitRouterMulticastDomains_ = peerTransitRouterMulticastDomains;
+}
+
+long ListTransitRouterMulticastGroupsRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string ListTransitRouterMulticastGroupsRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+
+long ListTransitRouterMulticastGroupsRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListTransitRouterMulticastGroupsRequest::setMaxResults(long maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 102 - 0
cbn/src/model/ListTransitRouterMulticastGroupsResult.cc

@@ -0,0 +1,102 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ListTransitRouterMulticastGroupsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListTransitRouterMulticastGroupsResult::ListTransitRouterMulticastGroupsResult() :
+	ServiceResult()
+{}
+
+ListTransitRouterMulticastGroupsResult::ListTransitRouterMulticastGroupsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTransitRouterMulticastGroupsResult::~ListTransitRouterMulticastGroupsResult()
+{}
+
+void ListTransitRouterMulticastGroupsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTransitRouterMulticastGroupsNode = value["TransitRouterMulticastGroups"]["TransitRouterMulticastGroup"];
+	for (auto valueTransitRouterMulticastGroupsTransitRouterMulticastGroup : allTransitRouterMulticastGroupsNode)
+	{
+		TransitRouterMulticastGroup transitRouterMulticastGroupsObject;
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupIpAddress"].isNull())
+			transitRouterMulticastGroupsObject.groupIpAddress = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupIpAddress"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["TransitRouterAttachmentId"].isNull())
+			transitRouterMulticastGroupsObject.transitRouterAttachmentId = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["TransitRouterAttachmentId"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["VSwitchId"].isNull())
+			transitRouterMulticastGroupsObject.vSwitchId = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["VSwitchId"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["NetworkInterfaceId"].isNull())
+			transitRouterMulticastGroupsObject.networkInterfaceId = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["NetworkInterfaceId"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["PeerTransitRouterMulticastDomainId"].isNull())
+			transitRouterMulticastGroupsObject.peerTransitRouterMulticastDomainId = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["PeerTransitRouterMulticastDomainId"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["Status"].isNull())
+			transitRouterMulticastGroupsObject.status = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["Status"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupSource"].isNull())
+			transitRouterMulticastGroupsObject.groupSource = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupSource"].asString() == "true";
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupMember"].isNull())
+			transitRouterMulticastGroupsObject.groupMember = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["GroupMember"].asString() == "true";
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["MemberType"].isNull())
+			transitRouterMulticastGroupsObject.memberType = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["MemberType"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["SourceType"].isNull())
+			transitRouterMulticastGroupsObject.sourceType = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["SourceType"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceType"].isNull())
+			transitRouterMulticastGroupsObject.resourceType = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceType"].asString();
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceOwnerId"].isNull())
+			transitRouterMulticastGroupsObject.resourceOwnerId = std::stol(valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceOwnerId"].asString());
+		if(!valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceId"].isNull())
+			transitRouterMulticastGroupsObject.resourceId = valueTransitRouterMulticastGroupsTransitRouterMulticastGroup["ResourceId"].asString();
+		transitRouterMulticastGroups_.push_back(transitRouterMulticastGroupsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["MaxResults"].isNull())
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+int ListTransitRouterMulticastGroupsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::string ListTransitRouterMulticastGroupsResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+int ListTransitRouterMulticastGroupsResult::getMaxResults()const
+{
+	return maxResults_;
+}
+
+std::vector<ListTransitRouterMulticastGroupsResult::TransitRouterMulticastGroup> ListTransitRouterMulticastGroupsResult::getTransitRouterMulticastGroups()const
+{
+	return transitRouterMulticastGroups_;
+}
+

+ 2 - 0
cbn/src/model/ListTransitRouterVpcAttachmentsResult.cc

@@ -65,6 +65,8 @@ void ListTransitRouterVpcAttachmentsResult::parse(const std::string &payload)
 			transitRouterAttachmentsObject.transitRouterAttachmentName = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentName"].asString();
 		if(!valueTransitRouterAttachmentsTransitRouterAttachment["ServiceMode"].isNull())
 			transitRouterAttachmentsObject.serviceMode = valueTransitRouterAttachmentsTransitRouterAttachment["ServiceMode"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["ChargeType"].isNull())
+			transitRouterAttachmentsObject.chargeType = valueTransitRouterAttachmentsTransitRouterAttachment["ChargeType"].asString();
 		auto allZoneMappingsNode = valueTransitRouterAttachmentsTransitRouterAttachment["ZoneMappings"]["ZoneMapping"];
 		for (auto valueTransitRouterAttachmentsTransitRouterAttachmentZoneMappingsZoneMapping : allZoneMappingsNode)
 		{

+ 2 - 0
cbn/src/model/ListTransitRoutersResult.cc

@@ -63,6 +63,8 @@ void ListTransitRoutersResult::parse(const std::string &payload)
 			transitRoutersObject.regionId = valueTransitRoutersTransitRouter["RegionId"].asString();
 		if(!valueTransitRoutersTransitRouter["ServiceMode"].isNull())
 			transitRoutersObject.serviceMode = valueTransitRoutersTransitRouter["ServiceMode"].asString();
+		if(!valueTransitRoutersTransitRouter["SupportMulticast"].isNull())
+			transitRoutersObject.supportMulticast = valueTransitRoutersTransitRouter["SupportMulticast"].asString() == "true";
 		transitRouters_.push_back(transitRoutersObject);
 	}
 	if(!value["PageSize"].isNull())

+ 108 - 0
cbn/src/model/ModifyTransitRouterMulticastDomainRequest.cc

@@ -0,0 +1,108 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainRequest.h>
+
+using AlibabaCloud::Cbn::Model::ModifyTransitRouterMulticastDomainRequest;
+
+ModifyTransitRouterMulticastDomainRequest::ModifyTransitRouterMulticastDomainRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ModifyTransitRouterMulticastDomain") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ModifyTransitRouterMulticastDomainRequest::~ModifyTransitRouterMulticastDomainRequest() {}
+
+long ModifyTransitRouterMulticastDomainRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainDescription() const {
+  return transitRouterMulticastDomainDescription_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainDescription(const std::string &transitRouterMulticastDomainDescription) {
+  transitRouterMulticastDomainDescription_ = transitRouterMulticastDomainDescription;
+  setParameter(std::string("TransitRouterMulticastDomainDescription"), transitRouterMulticastDomainDescription);
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getTransitRouterMulticastDomainName() const {
+  return transitRouterMulticastDomainName_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setTransitRouterMulticastDomainName(const std::string &transitRouterMulticastDomainName) {
+  transitRouterMulticastDomainName_ = transitRouterMulticastDomainName;
+  setParameter(std::string("TransitRouterMulticastDomainName"), transitRouterMulticastDomainName);
+}
+
+bool ModifyTransitRouterMulticastDomainRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ModifyTransitRouterMulticastDomainRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ModifyTransitRouterMulticastDomainRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ModifyTransitRouterMulticastDomainRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/ModifyTransitRouterMulticastDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/ModifyTransitRouterMulticastDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ModifyTransitRouterMulticastDomainResult::ModifyTransitRouterMulticastDomainResult() :
+	ServiceResult()
+{}
+
+ModifyTransitRouterMulticastDomainResult::ModifyTransitRouterMulticastDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ModifyTransitRouterMulticastDomainResult::~ModifyTransitRouterMulticastDomainResult()
+{}
+
+void ModifyTransitRouterMulticastDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 115 - 0
cbn/src/model/RegisterTransitRouterMulticastGroupMembersRequest.cc

@@ -0,0 +1,115 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersRequest.h>
+
+using AlibabaCloud::Cbn::Model::RegisterTransitRouterMulticastGroupMembersRequest;
+
+RegisterTransitRouterMulticastGroupMembersRequest::RegisterTransitRouterMulticastGroupMembersRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "RegisterTransitRouterMulticastGroupMembers") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+RegisterTransitRouterMulticastGroupMembersRequest::~RegisterTransitRouterMulticastGroupMembersRequest() {}
+
+long RegisterTransitRouterMulticastGroupMembersRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string RegisterTransitRouterMulticastGroupMembersRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> RegisterTransitRouterMulticastGroupMembersRequest::getNetworkInterfaceIds() const {
+  return networkInterfaceIds_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds) {
+  networkInterfaceIds_ = networkInterfaceIds;
+}
+
+std::string RegisterTransitRouterMulticastGroupMembersRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string RegisterTransitRouterMulticastGroupMembersRequest::getGroupIpAddress() const {
+  return groupIpAddress_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setGroupIpAddress(const std::string &groupIpAddress) {
+  groupIpAddress_ = groupIpAddress;
+  setParameter(std::string("GroupIpAddress"), groupIpAddress);
+}
+
+bool RegisterTransitRouterMulticastGroupMembersRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string RegisterTransitRouterMulticastGroupMembersRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string RegisterTransitRouterMulticastGroupMembersRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+std::vector<std::string> RegisterTransitRouterMulticastGroupMembersRequest::getPeerTransitRouterMulticastDomains() const {
+  return peerTransitRouterMulticastDomains_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setPeerTransitRouterMulticastDomains(const std::vector<std::string> &peerTransitRouterMulticastDomains) {
+  peerTransitRouterMulticastDomains_ = peerTransitRouterMulticastDomains;
+}
+
+long RegisterTransitRouterMulticastGroupMembersRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void RegisterTransitRouterMulticastGroupMembersRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/RegisterTransitRouterMulticastGroupMembersResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupMembersResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+RegisterTransitRouterMulticastGroupMembersResult::RegisterTransitRouterMulticastGroupMembersResult() :
+	ServiceResult()
+{}
+
+RegisterTransitRouterMulticastGroupMembersResult::RegisterTransitRouterMulticastGroupMembersResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+RegisterTransitRouterMulticastGroupMembersResult::~RegisterTransitRouterMulticastGroupMembersResult()
+{}
+
+void RegisterTransitRouterMulticastGroupMembersResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 107 - 0
cbn/src/model/RegisterTransitRouterMulticastGroupSourcesRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesRequest.h>
+
+using AlibabaCloud::Cbn::Model::RegisterTransitRouterMulticastGroupSourcesRequest;
+
+RegisterTransitRouterMulticastGroupSourcesRequest::RegisterTransitRouterMulticastGroupSourcesRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "RegisterTransitRouterMulticastGroupSources") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+RegisterTransitRouterMulticastGroupSourcesRequest::~RegisterTransitRouterMulticastGroupSourcesRequest() {}
+
+long RegisterTransitRouterMulticastGroupSourcesRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string RegisterTransitRouterMulticastGroupSourcesRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::vector<std::string> RegisterTransitRouterMulticastGroupSourcesRequest::getNetworkInterfaceIds() const {
+  return networkInterfaceIds_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds) {
+  networkInterfaceIds_ = networkInterfaceIds;
+}
+
+std::string RegisterTransitRouterMulticastGroupSourcesRequest::getTransitRouterMulticastDomainId() const {
+  return transitRouterMulticastDomainId_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setTransitRouterMulticastDomainId(const std::string &transitRouterMulticastDomainId) {
+  transitRouterMulticastDomainId_ = transitRouterMulticastDomainId;
+  setParameter(std::string("TransitRouterMulticastDomainId"), transitRouterMulticastDomainId);
+}
+
+std::string RegisterTransitRouterMulticastGroupSourcesRequest::getGroupIpAddress() const {
+  return groupIpAddress_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setGroupIpAddress(const std::string &groupIpAddress) {
+  groupIpAddress_ = groupIpAddress;
+  setParameter(std::string("GroupIpAddress"), groupIpAddress);
+}
+
+bool RegisterTransitRouterMulticastGroupSourcesRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string RegisterTransitRouterMulticastGroupSourcesRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string RegisterTransitRouterMulticastGroupSourcesRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long RegisterTransitRouterMulticastGroupSourcesRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void RegisterTransitRouterMulticastGroupSourcesRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 44 - 0
cbn/src/model/RegisterTransitRouterMulticastGroupSourcesResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cbn/model/RegisterTransitRouterMulticastGroupSourcesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+RegisterTransitRouterMulticastGroupSourcesResult::RegisterTransitRouterMulticastGroupSourcesResult() :
+	ServiceResult()
+{}
+
+RegisterTransitRouterMulticastGroupSourcesResult::RegisterTransitRouterMulticastGroupSourcesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+RegisterTransitRouterMulticastGroupSourcesResult::~RegisterTransitRouterMulticastGroupSourcesResult()
+{}
+
+void RegisterTransitRouterMulticastGroupSourcesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 9 - 0
cbn/src/model/UpdateTransitRouterRequest.cc

@@ -115,3 +115,12 @@ void UpdateTransitRouterRequest::setTransitRouterDescription(const std::string &
   setParameter(std::string("TransitRouterDescription"), transitRouterDescription);
 }
 
+bool UpdateTransitRouterRequest::getSupportMulticast() const {
+  return supportMulticast_;
+}
+
+void UpdateTransitRouterRequest::setSupportMulticast(bool supportMulticast) {
+  supportMulticast_ = supportMulticast;
+  setParameter(std::string("SupportMulticast"), supportMulticast ? "true" : "false");
+}
+