Forráskód Böngészése

Supported ECR Attachment.

sdk-team 2 éve
szülő
commit
046fa0c8a7
42 módosított fájl, 1696 hozzáadás és 4 törlés
  1. 1 1
      VERSION
  2. 16 0
      cbn/CMakeLists.txt
  3. 32 0
      cbn/include/alibabacloud/cbn/CbnClient.h
  4. 103 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentRequest.h
  5. 51 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentResult.h
  6. 3 0
      cbn/include/alibabacloud/cbn/model/CreateTransitRouterPeerAttachmentRequest.h
  7. 69 0
      cbn/include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentRequest.h
  8. 49 0
      cbn/include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentResult.h
  9. 1 0
      cbn/include/alibabacloud/cbn/model/DescribeCenVbrHealthCheckResult.h
  10. 1 0
      cbn/include/alibabacloud/cbn/model/DescribeGrantRulesToCenResult.h
  11. 1 0
      cbn/include/alibabacloud/cbn/model/DescribeGrantRulesToResourceResult.h
  12. 3 0
      cbn/include/alibabacloud/cbn/model/EnableCenVbrHealthCheckRequest.h
  13. 82 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsRequest.h
  14. 79 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsResult.h
  15. 3 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterPeerAttachmentsRequest.h
  16. 1 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterPeerAttachmentsResult.h
  17. 1 0
      cbn/include/alibabacloud/cbn/model/ListTransitRouterVbrAttachmentsResult.h
  18. 3 0
      cbn/include/alibabacloud/cbn/model/ListTransitRoutersRequest.h
  19. 6 0
      cbn/include/alibabacloud/cbn/model/ListTransitRoutersResult.h
  20. 72 0
      cbn/include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeRequest.h
  21. 49 0
      cbn/include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeResult.h
  22. 3 0
      cbn/include/alibabacloud/cbn/model/UpdateTransitRouterPeerAttachmentAttributeRequest.h
  23. 147 3
      cbn/src/CbnClient.cc
  24. 212 0
      cbn/src/model/CreateTransitRouterEcrAttachmentRequest.cc
  25. 51 0
      cbn/src/model/CreateTransitRouterEcrAttachmentResult.cc
  26. 9 0
      cbn/src/model/CreateTransitRouterPeerAttachmentRequest.cc
  27. 117 0
      cbn/src/model/DeleteTransitRouterEcrAttachmentRequest.cc
  28. 44 0
      cbn/src/model/DeleteTransitRouterEcrAttachmentResult.cc
  29. 2 0
      cbn/src/model/DescribeCenVbrHealthCheckResult.cc
  30. 2 0
      cbn/src/model/DescribeGrantRulesToCenResult.cc
  31. 2 0
      cbn/src/model/DescribeGrantRulesToResourceResult.cc
  32. 9 0
      cbn/src/model/EnableCenVbrHealthCheckRequest.cc
  33. 149 0
      cbn/src/model/ListTransitRouterEcrAttachmentsRequest.cc
  34. 112 0
      cbn/src/model/ListTransitRouterEcrAttachmentsResult.cc
  35. 9 0
      cbn/src/model/ListTransitRouterPeerAttachmentsRequest.cc
  36. 2 0
      cbn/src/model/ListTransitRouterPeerAttachmentsResult.cc
  37. 2 0
      cbn/src/model/ListTransitRouterVbrAttachmentsResult.cc
  38. 9 0
      cbn/src/model/ListTransitRoutersRequest.cc
  39. 10 0
      cbn/src/model/ListTransitRoutersResult.cc
  40. 126 0
      cbn/src/model/UpdateTransitRouterEcrAttachmentAttributeRequest.cc
  41. 44 0
      cbn/src/model/UpdateTransitRouterEcrAttachmentAttributeResult.cc
  42. 9 0
      cbn/src/model/UpdateTransitRouterPeerAttachmentAttributeRequest.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1882
+1.36.1883

+ 16 - 0
cbn/CMakeLists.txt

@@ -61,6 +61,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/CreateTransitRouterResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterCidrRequest.h
 	include/alibabacloud/cbn/model/CreateTransitRouterCidrResult.h
+	include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentRequest.h
+	include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainRequest.h
 	include/alibabacloud/cbn/model/CreateTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/CreateTransitRouterPeerAttachmentRequest.h
@@ -105,6 +107,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/DeleteTransitRouterResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterCidrRequest.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterCidrResult.h
+	include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentRequest.h
+	include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainRequest.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterMulticastDomainResult.h
 	include/alibabacloud/cbn/model/DeleteTransitRouterPeerAttachmentRequest.h
@@ -205,6 +209,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/ListTransitRouterCidrResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterCidrAllocationRequest.h
 	include/alibabacloud/cbn/model/ListTransitRouterCidrAllocationResult.h
+	include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsRequest.h
+	include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsRequest.h
 	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainAssociationsResult.h
 	include/alibabacloud/cbn/model/ListTransitRouterMulticastDomainVSwitchesRequest.h
@@ -291,6 +297,8 @@ set(cbn_public_header_model
 	include/alibabacloud/cbn/model/UpdateTrafficMarkingPolicyAttributeResult.h
 	include/alibabacloud/cbn/model/UpdateTransitRouterRequest.h
 	include/alibabacloud/cbn/model/UpdateTransitRouterResult.h
+	include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeRequest.h
+	include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeResult.h
 	include/alibabacloud/cbn/model/UpdateTransitRouterPeerAttachmentAttributeRequest.h
 	include/alibabacloud/cbn/model/UpdateTransitRouterPeerAttachmentAttributeResult.h
 	include/alibabacloud/cbn/model/UpdateTransitRouterRouteEntryRequest.h
@@ -350,6 +358,8 @@ set(cbn_src
 	src/model/CreateTransitRouterResult.cc
 	src/model/CreateTransitRouterCidrRequest.cc
 	src/model/CreateTransitRouterCidrResult.cc
+	src/model/CreateTransitRouterEcrAttachmentRequest.cc
+	src/model/CreateTransitRouterEcrAttachmentResult.cc
 	src/model/CreateTransitRouterMulticastDomainRequest.cc
 	src/model/CreateTransitRouterMulticastDomainResult.cc
 	src/model/CreateTransitRouterPeerAttachmentRequest.cc
@@ -394,6 +404,8 @@ set(cbn_src
 	src/model/DeleteTransitRouterResult.cc
 	src/model/DeleteTransitRouterCidrRequest.cc
 	src/model/DeleteTransitRouterCidrResult.cc
+	src/model/DeleteTransitRouterEcrAttachmentRequest.cc
+	src/model/DeleteTransitRouterEcrAttachmentResult.cc
 	src/model/DeleteTransitRouterMulticastDomainRequest.cc
 	src/model/DeleteTransitRouterMulticastDomainResult.cc
 	src/model/DeleteTransitRouterPeerAttachmentRequest.cc
@@ -494,6 +506,8 @@ set(cbn_src
 	src/model/ListTransitRouterCidrResult.cc
 	src/model/ListTransitRouterCidrAllocationRequest.cc
 	src/model/ListTransitRouterCidrAllocationResult.cc
+	src/model/ListTransitRouterEcrAttachmentsRequest.cc
+	src/model/ListTransitRouterEcrAttachmentsResult.cc
 	src/model/ListTransitRouterMulticastDomainAssociationsRequest.cc
 	src/model/ListTransitRouterMulticastDomainAssociationsResult.cc
 	src/model/ListTransitRouterMulticastDomainVSwitchesRequest.cc
@@ -580,6 +594,8 @@ set(cbn_src
 	src/model/UpdateTrafficMarkingPolicyAttributeResult.cc
 	src/model/UpdateTransitRouterRequest.cc
 	src/model/UpdateTransitRouterResult.cc
+	src/model/UpdateTransitRouterEcrAttachmentAttributeRequest.cc
+	src/model/UpdateTransitRouterEcrAttachmentAttributeResult.cc
 	src/model/UpdateTransitRouterPeerAttachmentAttributeRequest.cc
 	src/model/UpdateTransitRouterPeerAttachmentAttributeResult.cc
 	src/model/UpdateTransitRouterRouteEntryRequest.cc

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

@@ -62,6 +62,8 @@
 #include "model/CreateTransitRouterResult.h"
 #include "model/CreateTransitRouterCidrRequest.h"
 #include "model/CreateTransitRouterCidrResult.h"
+#include "model/CreateTransitRouterEcrAttachmentRequest.h"
+#include "model/CreateTransitRouterEcrAttachmentResult.h"
 #include "model/CreateTransitRouterMulticastDomainRequest.h"
 #include "model/CreateTransitRouterMulticastDomainResult.h"
 #include "model/CreateTransitRouterPeerAttachmentRequest.h"
@@ -106,6 +108,8 @@
 #include "model/DeleteTransitRouterResult.h"
 #include "model/DeleteTransitRouterCidrRequest.h"
 #include "model/DeleteTransitRouterCidrResult.h"
+#include "model/DeleteTransitRouterEcrAttachmentRequest.h"
+#include "model/DeleteTransitRouterEcrAttachmentResult.h"
 #include "model/DeleteTransitRouterMulticastDomainRequest.h"
 #include "model/DeleteTransitRouterMulticastDomainResult.h"
 #include "model/DeleteTransitRouterPeerAttachmentRequest.h"
@@ -206,6 +210,8 @@
 #include "model/ListTransitRouterCidrResult.h"
 #include "model/ListTransitRouterCidrAllocationRequest.h"
 #include "model/ListTransitRouterCidrAllocationResult.h"
+#include "model/ListTransitRouterEcrAttachmentsRequest.h"
+#include "model/ListTransitRouterEcrAttachmentsResult.h"
 #include "model/ListTransitRouterMulticastDomainAssociationsRequest.h"
 #include "model/ListTransitRouterMulticastDomainAssociationsResult.h"
 #include "model/ListTransitRouterMulticastDomainVSwitchesRequest.h"
@@ -292,6 +298,8 @@
 #include "model/UpdateTrafficMarkingPolicyAttributeResult.h"
 #include "model/UpdateTransitRouterRequest.h"
 #include "model/UpdateTransitRouterResult.h"
+#include "model/UpdateTransitRouterEcrAttachmentAttributeRequest.h"
+#include "model/UpdateTransitRouterEcrAttachmentAttributeResult.h"
 #include "model/UpdateTransitRouterPeerAttachmentAttributeRequest.h"
 #include "model/UpdateTransitRouterPeerAttachmentAttributeResult.h"
 #include "model/UpdateTransitRouterRouteEntryRequest.h"
@@ -377,6 +385,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateTransitRouterCidrResult> CreateTransitRouterCidrOutcome;
 			typedef std::future<CreateTransitRouterCidrOutcome> CreateTransitRouterCidrOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::CreateTransitRouterCidrRequest&, const CreateTransitRouterCidrOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTransitRouterCidrAsyncHandler;
+			typedef Outcome<Error, Model::CreateTransitRouterEcrAttachmentResult> CreateTransitRouterEcrAttachmentOutcome;
+			typedef std::future<CreateTransitRouterEcrAttachmentOutcome> CreateTransitRouterEcrAttachmentOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::CreateTransitRouterEcrAttachmentRequest&, const CreateTransitRouterEcrAttachmentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTransitRouterEcrAttachmentAsyncHandler;
 			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;
@@ -443,6 +454,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTransitRouterCidrResult> DeleteTransitRouterCidrOutcome;
 			typedef std::future<DeleteTransitRouterCidrOutcome> DeleteTransitRouterCidrOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterCidrRequest&, const DeleteTransitRouterCidrOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterCidrAsyncHandler;
+			typedef Outcome<Error, Model::DeleteTransitRouterEcrAttachmentResult> DeleteTransitRouterEcrAttachmentOutcome;
+			typedef std::future<DeleteTransitRouterEcrAttachmentOutcome> DeleteTransitRouterEcrAttachmentOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::DeleteTransitRouterEcrAttachmentRequest&, const DeleteTransitRouterEcrAttachmentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTransitRouterEcrAttachmentAsyncHandler;
 			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;
@@ -593,6 +607,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListTransitRouterCidrAllocationResult> ListTransitRouterCidrAllocationOutcome;
 			typedef std::future<ListTransitRouterCidrAllocationOutcome> ListTransitRouterCidrAllocationOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterCidrAllocationRequest&, const ListTransitRouterCidrAllocationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterCidrAllocationAsyncHandler;
+			typedef Outcome<Error, Model::ListTransitRouterEcrAttachmentsResult> ListTransitRouterEcrAttachmentsOutcome;
+			typedef std::future<ListTransitRouterEcrAttachmentsOutcome> ListTransitRouterEcrAttachmentsOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::ListTransitRouterEcrAttachmentsRequest&, const ListTransitRouterEcrAttachmentsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTransitRouterEcrAttachmentsAsyncHandler;
 			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;
@@ -722,6 +739,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateTransitRouterResult> UpdateTransitRouterOutcome;
 			typedef std::future<UpdateTransitRouterOutcome> UpdateTransitRouterOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::UpdateTransitRouterRequest&, const UpdateTransitRouterOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateTransitRouterAsyncHandler;
+			typedef Outcome<Error, Model::UpdateTransitRouterEcrAttachmentAttributeResult> UpdateTransitRouterEcrAttachmentAttributeOutcome;
+			typedef std::future<UpdateTransitRouterEcrAttachmentAttributeOutcome> UpdateTransitRouterEcrAttachmentAttributeOutcomeCallable;
+			typedef std::function<void(const CbnClient*, const Model::UpdateTransitRouterEcrAttachmentAttributeRequest&, const UpdateTransitRouterEcrAttachmentAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateTransitRouterEcrAttachmentAttributeAsyncHandler;
 			typedef Outcome<Error, Model::UpdateTransitRouterPeerAttachmentAttributeResult> UpdateTransitRouterPeerAttachmentAttributeOutcome;
 			typedef std::future<UpdateTransitRouterPeerAttachmentAttributeOutcome> UpdateTransitRouterPeerAttachmentAttributeOutcomeCallable;
 			typedef std::function<void(const CbnClient*, const Model::UpdateTransitRouterPeerAttachmentAttributeRequest&, const UpdateTransitRouterPeerAttachmentAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateTransitRouterPeerAttachmentAttributeAsyncHandler;
@@ -811,6 +831,9 @@ namespace AlibabaCloud
 			CreateTransitRouterCidrOutcome createTransitRouterCidr(const Model::CreateTransitRouterCidrRequest &request)const;
 			void createTransitRouterCidrAsync(const Model::CreateTransitRouterCidrRequest& request, const CreateTransitRouterCidrAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateTransitRouterCidrOutcomeCallable createTransitRouterCidrCallable(const Model::CreateTransitRouterCidrRequest& request) const;
+			CreateTransitRouterEcrAttachmentOutcome createTransitRouterEcrAttachment(const Model::CreateTransitRouterEcrAttachmentRequest &request)const;
+			void createTransitRouterEcrAttachmentAsync(const Model::CreateTransitRouterEcrAttachmentRequest& request, const CreateTransitRouterEcrAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateTransitRouterEcrAttachmentOutcomeCallable createTransitRouterEcrAttachmentCallable(const Model::CreateTransitRouterEcrAttachmentRequest& 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;
@@ -877,6 +900,9 @@ namespace AlibabaCloud
 			DeleteTransitRouterCidrOutcome deleteTransitRouterCidr(const Model::DeleteTransitRouterCidrRequest &request)const;
 			void deleteTransitRouterCidrAsync(const Model::DeleteTransitRouterCidrRequest& request, const DeleteTransitRouterCidrAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTransitRouterCidrOutcomeCallable deleteTransitRouterCidrCallable(const Model::DeleteTransitRouterCidrRequest& request) const;
+			DeleteTransitRouterEcrAttachmentOutcome deleteTransitRouterEcrAttachment(const Model::DeleteTransitRouterEcrAttachmentRequest &request)const;
+			void deleteTransitRouterEcrAttachmentAsync(const Model::DeleteTransitRouterEcrAttachmentRequest& request, const DeleteTransitRouterEcrAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteTransitRouterEcrAttachmentOutcomeCallable deleteTransitRouterEcrAttachmentCallable(const Model::DeleteTransitRouterEcrAttachmentRequest& 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;
@@ -1027,6 +1053,9 @@ namespace AlibabaCloud
 			ListTransitRouterCidrAllocationOutcome listTransitRouterCidrAllocation(const Model::ListTransitRouterCidrAllocationRequest &request)const;
 			void listTransitRouterCidrAllocationAsync(const Model::ListTransitRouterCidrAllocationRequest& request, const ListTransitRouterCidrAllocationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTransitRouterCidrAllocationOutcomeCallable listTransitRouterCidrAllocationCallable(const Model::ListTransitRouterCidrAllocationRequest& request) const;
+			ListTransitRouterEcrAttachmentsOutcome listTransitRouterEcrAttachments(const Model::ListTransitRouterEcrAttachmentsRequest &request)const;
+			void listTransitRouterEcrAttachmentsAsync(const Model::ListTransitRouterEcrAttachmentsRequest& request, const ListTransitRouterEcrAttachmentsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTransitRouterEcrAttachmentsOutcomeCallable listTransitRouterEcrAttachmentsCallable(const Model::ListTransitRouterEcrAttachmentsRequest& 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;
@@ -1156,6 +1185,9 @@ namespace AlibabaCloud
 			UpdateTransitRouterOutcome updateTransitRouter(const Model::UpdateTransitRouterRequest &request)const;
 			void updateTransitRouterAsync(const Model::UpdateTransitRouterRequest& request, const UpdateTransitRouterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateTransitRouterOutcomeCallable updateTransitRouterCallable(const Model::UpdateTransitRouterRequest& request) const;
+			UpdateTransitRouterEcrAttachmentAttributeOutcome updateTransitRouterEcrAttachmentAttribute(const Model::UpdateTransitRouterEcrAttachmentAttributeRequest &request)const;
+			void updateTransitRouterEcrAttachmentAttributeAsync(const Model::UpdateTransitRouterEcrAttachmentAttributeRequest& request, const UpdateTransitRouterEcrAttachmentAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateTransitRouterEcrAttachmentAttributeOutcomeCallable updateTransitRouterEcrAttachmentAttributeCallable(const Model::UpdateTransitRouterEcrAttachmentAttributeRequest& request) const;
 			UpdateTransitRouterPeerAttachmentAttributeOutcome updateTransitRouterPeerAttachmentAttribute(const Model::UpdateTransitRouterPeerAttachmentAttributeRequest &request)const;
 			void updateTransitRouterPeerAttachmentAttributeAsync(const Model::UpdateTransitRouterPeerAttachmentAttributeRequest& request, const UpdateTransitRouterPeerAttachmentAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateTransitRouterPeerAttachmentAttributeOutcomeCallable updateTransitRouterPeerAttachmentAttributeCallable(const Model::UpdateTransitRouterPeerAttachmentAttributeRequest& request) const;

+ 103 - 0
cbn/include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentRequest.h

@@ -0,0 +1,103 @@
+/*
+ * 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_CREATETRANSITROUTERECRATTACHMENTREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERECRATTACHMENTREQUEST_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 CreateTransitRouterEcrAttachmentRequest : public RpcServiceRequest {
+public:
+	struct Tag {
+		std::string value;
+		std::string key;
+	};
+	CreateTransitRouterEcrAttachmentRequest();
+	~CreateTransitRouterEcrAttachmentRequest();
+	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);
+	bool getRouteTableAssociationEnabled() const;
+	void setRouteTableAssociationEnabled(bool routeTableAssociationEnabled);
+	std::string getTransitRouterAttachmentName() const;
+	void setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName);
+	bool getFastLink() const;
+	void setFastLink(bool fastLink);
+	std::string getEcrId() const;
+	void setEcrId(const std::string &ecrId);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
+	bool getAutoPublishRouteEnabled() const;
+	void setAutoPublishRouteEnabled(bool autoPublishRouteEnabled);
+	bool getRouteTablePropagationEnabled() const;
+	void setRouteTablePropagationEnabled(bool routeTablePropagationEnabled);
+	long getEcrOwnerId() const;
+	void setEcrOwnerId(long ecrOwnerId);
+	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);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getVersion() const;
+	void setVersion(const std::string &version);
+	std::string getTransitRouterAttachmentDescription() const;
+	void setTransitRouterAttachmentDescription(const std::string &transitRouterAttachmentDescription);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string cenId_;
+	bool routeTableAssociationEnabled_;
+	std::string transitRouterAttachmentName_;
+	bool fastLink_;
+	std::string ecrId_;
+	std::string regionId_;
+	std::vector<Tag> tag_;
+	bool autoPublishRouteEnabled_;
+	bool routeTablePropagationEnabled_;
+	long ecrOwnerId_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterId_;
+	std::string resourceType_;
+	std::string version_;
+	std::string transitRouterAttachmentDescription_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERECRATTACHMENTREQUEST_H_

+ 51 - 0
cbn/include/alibabacloud/cbn/model/CreateTransitRouterEcrAttachmentResult.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_CREATETRANSITROUTERECRATTACHMENTRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERECRATTACHMENTRESULT_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 CreateTransitRouterEcrAttachmentResult : public ServiceResult
+			{
+			public:
+
+
+				CreateTransitRouterEcrAttachmentResult();
+				explicit CreateTransitRouterEcrAttachmentResult(const std::string &payload);
+				~CreateTransitRouterEcrAttachmentResult();
+				std::string getTransitRouterAttachmentId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string transitRouterAttachmentId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_CREATETRANSITROUTERECRATTACHMENTRESULT_H_

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

@@ -46,6 +46,8 @@ public:
 	void setRouteTableAssociationEnabled(bool routeTableAssociationEnabled);
 	std::string getTransitRouterAttachmentName() const;
 	void setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName);
+	std::string getDefaultLinkType() const;
+	void setDefaultLinkType(const std::string &defaultLinkType);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::vector<Tag> getTag() const;
@@ -86,6 +88,7 @@ private:
 	std::string cenId_;
 	bool routeTableAssociationEnabled_;
 	std::string transitRouterAttachmentName_;
+	std::string defaultLinkType_;
 	std::string regionId_;
 	std::vector<Tag> tag_;
 	bool autoPublishRouteEnabled_;

+ 69 - 0
cbn/include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentRequest.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_DELETETRANSITROUTERECRATTACHMENTREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERECRATTACHMENTREQUEST_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 DeleteTransitRouterEcrAttachmentRequest : public RpcServiceRequest {
+public:
+	DeleteTransitRouterEcrAttachmentRequest();
+	~DeleteTransitRouterEcrAttachmentRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	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 getVersion() const;
+	void setVersion(const std::string &version);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+	bool getForce() const;
+	void setForce(bool force);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string resourceType_;
+	std::string version_;
+	std::string transitRouterAttachmentId_;
+	bool force_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERECRATTACHMENTREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/DeleteTransitRouterEcrAttachmentResult.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_DELETETRANSITROUTERECRATTACHMENTRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERECRATTACHMENTRESULT_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 DeleteTransitRouterEcrAttachmentResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteTransitRouterEcrAttachmentResult();
+				explicit DeleteTransitRouterEcrAttachmentResult(const std::string &payload);
+				~DeleteTransitRouterEcrAttachmentResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_DELETETRANSITROUTERECRATTACHMENTRESULT_H_

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

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 					std::string vbrInstanceRegionId;
 					std::string linkStatus;
 					int healthCheckInterval;
+					std::string description;
 					std::string vbrInstanceId;
 					int healthyThreshold;
 					std::string healthCheckSourceIp;

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

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 					std::string childInstanceType;
 					std::string orderType;
 					long cenOwnerId;
+					long createTime;
 					std::string cenId;
 					long childInstanceOwnerId;
 					std::string childInstanceId;

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

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string orderType;
 					long cenOwnerId;
+					std::string createTime;
 					std::string cenId;
 				};
 

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

@@ -36,6 +36,8 @@ public:
 	void setCenId(const std::string &cenId);
 	std::string getHealthCheckTargetIp() const;
 	void setHealthCheckTargetIp(const std::string &healthCheckTargetIp);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
 	int getHealthyThreshold() const;
 	void setHealthyThreshold(int healthyThreshold);
 	long getVbrInstanceOwnerId() const;
@@ -63,6 +65,7 @@ private:
 	long resourceOwnerId_;
 	std::string cenId_;
 	std::string healthCheckTargetIp_;
+	std::string description_;
 	int healthyThreshold_;
 	long vbrInstanceOwnerId_;
 	bool healthCheckOnly_;

+ 82 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsRequest.h

@@ -0,0 +1,82 @@
+/*
+ * 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_LISTTRANSITROUTERECRATTACHMENTSREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERECRATTACHMENTSREQUEST_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 ListTransitRouterEcrAttachmentsRequest : public RpcServiceRequest {
+public:
+	struct Tag {
+		std::string value;
+		std::string key;
+	};
+	ListTransitRouterEcrAttachmentsRequest();
+	~ListTransitRouterEcrAttachmentsRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getCenId() const;
+	void setCenId(const std::string &cenId);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
+	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);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getVersion() const;
+	void setVersion(const std::string &version);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+	int getMaxResults() const;
+	void setMaxResults(int maxResults);
+
+private:
+	long resourceOwnerId_;
+	std::string cenId_;
+	std::string regionId_;
+	std::string nextToken_;
+	std::vector<Tag> tag_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string transitRouterId_;
+	std::string resourceType_;
+	std::string version_;
+	std::string transitRouterAttachmentId_;
+	int maxResults_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERECRATTACHMENTSREQUEST_H_

+ 79 - 0
cbn/include/alibabacloud/cbn/model/ListTransitRouterEcrAttachmentsResult.h

@@ -0,0 +1,79 @@
+/*
+ * 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_LISTTRANSITROUTERECRATTACHMENTSRESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERECRATTACHMENTSRESULT_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 ListTransitRouterEcrAttachmentsResult : public ServiceResult
+			{
+			public:
+				struct TransitRouterAttachment
+				{
+					struct Tag
+					{
+						std::string value;
+						std::string key;
+					};
+					std::string status;
+					std::string transitRouterAttachmentId;
+					std::string transitRouterRegionId;
+					std::string transitRouterAttachmentName;
+					std::string resourceType;
+					bool autoPublishRouteEnabled;
+					std::string orderType;
+					std::string ecrId;
+					std::string creationTime;
+					std::string cenId;
+					long ecrOwnerId;
+					std::vector<TransitRouterAttachment::Tag> tags;
+					std::string transitRouterAttachmentDescription;
+					std::string transitRouterId;
+				};
+
+
+				ListTransitRouterEcrAttachmentsResult();
+				explicit ListTransitRouterEcrAttachmentsResult(const std::string &payload);
+				~ListTransitRouterEcrAttachmentsResult();
+				int getTotalCount()const;
+				std::string getNextToken()const;
+				int getMaxResults()const;
+				std::vector<TransitRouterAttachment> getTransitRouterAttachments()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::string nextToken_;
+				int maxResults_;
+				std::vector<TransitRouterAttachment> transitRouterAttachments_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_LISTTRANSITROUTERECRATTACHMENTSRESULT_H_

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

@@ -38,6 +38,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	std::string getCenId() const;
 	void setCenId(const std::string &cenId);
+	std::string getDefaultLinkType() const;
+	void setDefaultLinkType(const std::string &defaultLinkType);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getNextToken() const;
@@ -64,6 +66,7 @@ public:
 private:
 	long resourceOwnerId_;
 	std::string cenId_;
+	std::string defaultLinkType_;
 	std::string regionId_;
 	std::string nextToken_;
 	std::vector<Tag> tag_;

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

@@ -45,6 +45,7 @@ namespace AlibabaCloud
 					long peerTransitRouterOwnerId;
 					std::string transitRouterAttachmentName;
 					std::string resourceType;
+					std::string defaultLinkType;
 					std::string bandwidthType;
 					bool autoPublishRouteEnabled;
 					int bandwidth;

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

@@ -46,6 +46,7 @@ namespace AlibabaCloud
 					std::string vbrRegionId;
 					std::string vbrId;
 					bool autoPublishRouteEnabled;
+					std::string orderType;
 					long vbrOwnerId;
 					std::string creationTime;
 					std::string cenId;

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

@@ -43,6 +43,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	std::string getCenId() const;
 	void setCenId(const std::string &cenId);
+	bool getGetPrimaryStandbyZoneInfo() const;
+	void setGetPrimaryStandbyZoneInfo(bool getPrimaryStandbyZoneInfo);
 	std::vector<FeatureFilter> getFeatureFilter() const;
 	void setFeatureFilter(const std::vector<FeatureFilter> &featureFilter);
 	std::string getType() const;
@@ -74,6 +76,7 @@ private:
 	std::string transitRouterName_;
 	long resourceOwnerId_;
 	std::string cenId_;
+	bool getPrimaryStandbyZoneInfo_;
 	std::vector<FeatureFilter> featureFilter_;
 	std::string type_;
 	std::vector<std::string> transitRouterIds_;

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

@@ -47,7 +47,13 @@ namespace AlibabaCloud
 						std::string value;
 						std::string key;
 					};
+					struct TransitRouterPrimaryStandbyZoneInfoListItem
+					{
+						std::string role;
+						std::string zoneId;
+					};
 					std::string status;
+					std::vector<TransitRouter::TransitRouterPrimaryStandbyZoneInfoListItem> transitRouterPrimaryStandbyZoneInfoList;
 					std::string transitRouterDescription;
 					std::string transitRouterName;
 					std::string serviceMode;

+ 72 - 0
cbn/include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_CBN_MODEL_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTEREQUEST_H_
+#define ALIBABACLOUD_CBN_MODEL_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTEREQUEST_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 UpdateTransitRouterEcrAttachmentAttributeRequest : public RpcServiceRequest {
+public:
+	UpdateTransitRouterEcrAttachmentAttributeRequest();
+	~UpdateTransitRouterEcrAttachmentAttributeRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getTransitRouterAttachmentName() const;
+	void setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName);
+	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 getVersion() const;
+	void setVersion(const std::string &version);
+	std::string getTransitRouterAttachmentId() const;
+	void setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId);
+	std::string getTransitRouterAttachmentDescription() const;
+	void setTransitRouterAttachmentDescription(const std::string &transitRouterAttachmentDescription);
+
+private:
+	long resourceOwnerId_;
+	std::string clientToken_;
+	std::string transitRouterAttachmentName_;
+	bool dryRun_;
+	std::string resourceOwnerAccount_;
+	std::string ownerAccount_;
+	long ownerId_;
+	std::string resourceType_;
+	std::string version_;
+	std::string transitRouterAttachmentId_;
+	std::string transitRouterAttachmentDescription_;
+};
+} // namespace Model
+} // namespace Cbn
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CBN_MODEL_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTEREQUEST_H_

+ 49 - 0
cbn/include/alibabacloud/cbn/model/UpdateTransitRouterEcrAttachmentAttributeResult.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_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTERESULT_H_
+#define ALIBABACLOUD_CBN_MODEL_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTERESULT_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 UpdateTransitRouterEcrAttachmentAttributeResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateTransitRouterEcrAttachmentAttributeResult();
+				explicit UpdateTransitRouterEcrAttachmentAttributeResult(const std::string &payload);
+				~UpdateTransitRouterEcrAttachmentAttributeResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CBN_MODEL_UPDATETRANSITROUTERECRATTACHMENTATTRIBUTERESULT_H_

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

@@ -38,6 +38,8 @@ public:
 	void setClientToken(const std::string &clientToken);
 	std::string getTransitRouterAttachmentName() const;
 	void setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName);
+	std::string getDefaultLinkType() const;
+	void setDefaultLinkType(const std::string &defaultLinkType);
 	bool getAutoPublishRouteEnabled() const;
 	void setAutoPublishRouteEnabled(bool autoPublishRouteEnabled);
 	bool getDryRun() const;
@@ -66,6 +68,7 @@ private:
 	std::string bandwidthType_;
 	std::string clientToken_;
 	std::string transitRouterAttachmentName_;
+	std::string defaultLinkType_;
 	bool autoPublishRouteEnabled_;
 	bool dryRun_;
 	std::string resourceOwnerAccount_;

+ 147 - 3
cbn/src/CbnClient.cc

@@ -31,21 +31,21 @@ CbnClient::CbnClient(const Credentials &credentials, const ClientConfiguration &
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "cbn");
 }
 
 CbnClient::CbnClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "cbn");
 }
 
 CbnClient::CbnClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "cbn");
 }
 
 CbnClient::~CbnClient()
@@ -771,6 +771,42 @@ CbnClient::CreateTransitRouterCidrOutcomeCallable CbnClient::createTransitRouter
 	return task->get_future();
 }
 
+CbnClient::CreateTransitRouterEcrAttachmentOutcome CbnClient::createTransitRouterEcrAttachment(const CreateTransitRouterEcrAttachmentRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateTransitRouterEcrAttachmentOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateTransitRouterEcrAttachmentOutcome(CreateTransitRouterEcrAttachmentResult(outcome.result()));
+	else
+		return CreateTransitRouterEcrAttachmentOutcome(outcome.error());
+}
+
+void CbnClient::createTransitRouterEcrAttachmentAsync(const CreateTransitRouterEcrAttachmentRequest& request, const CreateTransitRouterEcrAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createTransitRouterEcrAttachment(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::CreateTransitRouterEcrAttachmentOutcomeCallable CbnClient::createTransitRouterEcrAttachmentCallable(const CreateTransitRouterEcrAttachmentRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateTransitRouterEcrAttachmentOutcome()>>(
+			[this, request]()
+			{
+			return this->createTransitRouterEcrAttachment(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::CreateTransitRouterMulticastDomainOutcome CbnClient::createTransitRouterMulticastDomain(const CreateTransitRouterMulticastDomainRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,6 +1599,42 @@ CbnClient::DeleteTransitRouterCidrOutcomeCallable CbnClient::deleteTransitRouter
 	return task->get_future();
 }
 
+CbnClient::DeleteTransitRouterEcrAttachmentOutcome CbnClient::deleteTransitRouterEcrAttachment(const DeleteTransitRouterEcrAttachmentRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteTransitRouterEcrAttachmentOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteTransitRouterEcrAttachmentOutcome(DeleteTransitRouterEcrAttachmentResult(outcome.result()));
+	else
+		return DeleteTransitRouterEcrAttachmentOutcome(outcome.error());
+}
+
+void CbnClient::deleteTransitRouterEcrAttachmentAsync(const DeleteTransitRouterEcrAttachmentRequest& request, const DeleteTransitRouterEcrAttachmentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteTransitRouterEcrAttachment(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::DeleteTransitRouterEcrAttachmentOutcomeCallable CbnClient::deleteTransitRouterEcrAttachmentCallable(const DeleteTransitRouterEcrAttachmentRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteTransitRouterEcrAttachmentOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteTransitRouterEcrAttachment(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::DeleteTransitRouterMulticastDomainOutcome CbnClient::deleteTransitRouterMulticastDomain(const DeleteTransitRouterMulticastDomainRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3363,6 +3435,42 @@ CbnClient::ListTransitRouterCidrAllocationOutcomeCallable CbnClient::listTransit
 	return task->get_future();
 }
 
+CbnClient::ListTransitRouterEcrAttachmentsOutcome CbnClient::listTransitRouterEcrAttachments(const ListTransitRouterEcrAttachmentsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTransitRouterEcrAttachmentsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTransitRouterEcrAttachmentsOutcome(ListTransitRouterEcrAttachmentsResult(outcome.result()));
+	else
+		return ListTransitRouterEcrAttachmentsOutcome(outcome.error());
+}
+
+void CbnClient::listTransitRouterEcrAttachmentsAsync(const ListTransitRouterEcrAttachmentsRequest& request, const ListTransitRouterEcrAttachmentsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTransitRouterEcrAttachments(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::ListTransitRouterEcrAttachmentsOutcomeCallable CbnClient::listTransitRouterEcrAttachmentsCallable(const ListTransitRouterEcrAttachmentsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTransitRouterEcrAttachmentsOutcome()>>(
+			[this, request]()
+			{
+			return this->listTransitRouterEcrAttachments(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::ListTransitRouterMulticastDomainAssociationsOutcome CbnClient::listTransitRouterMulticastDomainAssociations(const ListTransitRouterMulticastDomainAssociationsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4911,6 +5019,42 @@ CbnClient::UpdateTransitRouterOutcomeCallable CbnClient::updateTransitRouterCall
 	return task->get_future();
 }
 
+CbnClient::UpdateTransitRouterEcrAttachmentAttributeOutcome CbnClient::updateTransitRouterEcrAttachmentAttribute(const UpdateTransitRouterEcrAttachmentAttributeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateTransitRouterEcrAttachmentAttributeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateTransitRouterEcrAttachmentAttributeOutcome(UpdateTransitRouterEcrAttachmentAttributeResult(outcome.result()));
+	else
+		return UpdateTransitRouterEcrAttachmentAttributeOutcome(outcome.error());
+}
+
+void CbnClient::updateTransitRouterEcrAttachmentAttributeAsync(const UpdateTransitRouterEcrAttachmentAttributeRequest& request, const UpdateTransitRouterEcrAttachmentAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateTransitRouterEcrAttachmentAttribute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CbnClient::UpdateTransitRouterEcrAttachmentAttributeOutcomeCallable CbnClient::updateTransitRouterEcrAttachmentAttributeCallable(const UpdateTransitRouterEcrAttachmentAttributeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateTransitRouterEcrAttachmentAttributeOutcome()>>(
+			[this, request]()
+			{
+			return this->updateTransitRouterEcrAttachmentAttribute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CbnClient::UpdateTransitRouterPeerAttachmentAttributeOutcome CbnClient::updateTransitRouterPeerAttachmentAttribute(const UpdateTransitRouterPeerAttachmentAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 212 - 0
cbn/src/model/CreateTransitRouterEcrAttachmentRequest.cc

@@ -0,0 +1,212 @@
+/*
+ * 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/CreateTransitRouterEcrAttachmentRequest.h>
+
+using AlibabaCloud::Cbn::Model::CreateTransitRouterEcrAttachmentRequest;
+
+CreateTransitRouterEcrAttachmentRequest::CreateTransitRouterEcrAttachmentRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "CreateTransitRouterEcrAttachment") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateTransitRouterEcrAttachmentRequest::~CreateTransitRouterEcrAttachmentRequest() {}
+
+long CreateTransitRouterEcrAttachmentRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getCenId() const {
+  return cenId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+bool CreateTransitRouterEcrAttachmentRequest::getRouteTableAssociationEnabled() const {
+  return routeTableAssociationEnabled_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setRouteTableAssociationEnabled(bool routeTableAssociationEnabled) {
+  routeTableAssociationEnabled_ = routeTableAssociationEnabled;
+  setParameter(std::string("RouteTableAssociationEnabled"), routeTableAssociationEnabled ? "true" : "false");
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getTransitRouterAttachmentName() const {
+  return transitRouterAttachmentName_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName) {
+  transitRouterAttachmentName_ = transitRouterAttachmentName;
+  setParameter(std::string("TransitRouterAttachmentName"), transitRouterAttachmentName);
+}
+
+bool CreateTransitRouterEcrAttachmentRequest::getFastLink() const {
+  return fastLink_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setFastLink(bool fastLink) {
+  fastLink_ = fastLink;
+  setParameter(std::string("FastLink"), fastLink ? "true" : "false");
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getEcrId() const {
+  return ecrId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setEcrId(const std::string &ecrId) {
+  ecrId_ = ecrId;
+  setParameter(std::string("EcrId"), ecrId);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getRegionId() const {
+  return regionId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::vector<CreateTransitRouterEcrAttachmentRequest::Tag> CreateTransitRouterEcrAttachmentRequest::getTag() const {
+  return tag_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setTag(const std::vector<CreateTransitRouterEcrAttachmentRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+  auto tagObj = tag.at(dep1);
+  std::string tagObjStr = std::string("Tag") + "." + std::to_string(dep1 + 1);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+    setParameter(tagObjStr + ".Key", tagObj.key);
+  }
+}
+
+bool CreateTransitRouterEcrAttachmentRequest::getAutoPublishRouteEnabled() const {
+  return autoPublishRouteEnabled_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setAutoPublishRouteEnabled(bool autoPublishRouteEnabled) {
+  autoPublishRouteEnabled_ = autoPublishRouteEnabled;
+  setParameter(std::string("AutoPublishRouteEnabled"), autoPublishRouteEnabled ? "true" : "false");
+}
+
+bool CreateTransitRouterEcrAttachmentRequest::getRouteTablePropagationEnabled() const {
+  return routeTablePropagationEnabled_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setRouteTablePropagationEnabled(bool routeTablePropagationEnabled) {
+  routeTablePropagationEnabled_ = routeTablePropagationEnabled;
+  setParameter(std::string("RouteTablePropagationEnabled"), routeTablePropagationEnabled ? "true" : "false");
+}
+
+long CreateTransitRouterEcrAttachmentRequest::getEcrOwnerId() const {
+  return ecrOwnerId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setEcrOwnerId(long ecrOwnerId) {
+  ecrOwnerId_ = ecrOwnerId;
+  setParameter(std::string("EcrOwnerId"), std::to_string(ecrOwnerId));
+}
+
+bool CreateTransitRouterEcrAttachmentRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long CreateTransitRouterEcrAttachmentRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getTransitRouterId() const {
+  return transitRouterId_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setTransitRouterId(const std::string &transitRouterId) {
+  transitRouterId_ = transitRouterId;
+  setParameter(std::string("TransitRouterId"), transitRouterId);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getVersion() const {
+  return version_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setVersion(const std::string &version) {
+  version_ = version;
+  setParameter(std::string("Version"), version);
+}
+
+std::string CreateTransitRouterEcrAttachmentRequest::getTransitRouterAttachmentDescription() const {
+  return transitRouterAttachmentDescription_;
+}
+
+void CreateTransitRouterEcrAttachmentRequest::setTransitRouterAttachmentDescription(const std::string &transitRouterAttachmentDescription) {
+  transitRouterAttachmentDescription_ = transitRouterAttachmentDescription;
+  setParameter(std::string("TransitRouterAttachmentDescription"), transitRouterAttachmentDescription);
+}
+

+ 51 - 0
cbn/src/model/CreateTransitRouterEcrAttachmentResult.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/CreateTransitRouterEcrAttachmentResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+CreateTransitRouterEcrAttachmentResult::CreateTransitRouterEcrAttachmentResult() :
+	ServiceResult()
+{}
+
+CreateTransitRouterEcrAttachmentResult::CreateTransitRouterEcrAttachmentResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateTransitRouterEcrAttachmentResult::~CreateTransitRouterEcrAttachmentResult()
+{}
+
+void CreateTransitRouterEcrAttachmentResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["TransitRouterAttachmentId"].isNull())
+		transitRouterAttachmentId_ = value["TransitRouterAttachmentId"].asString();
+
+}
+
+std::string CreateTransitRouterEcrAttachmentResult::getTransitRouterAttachmentId()const
+{
+	return transitRouterAttachmentId_;
+}
+

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

@@ -79,6 +79,15 @@ void CreateTransitRouterPeerAttachmentRequest::setTransitRouterAttachmentName(co
   setParameter(std::string("TransitRouterAttachmentName"), transitRouterAttachmentName);
 }
 
+std::string CreateTransitRouterPeerAttachmentRequest::getDefaultLinkType() const {
+  return defaultLinkType_;
+}
+
+void CreateTransitRouterPeerAttachmentRequest::setDefaultLinkType(const std::string &defaultLinkType) {
+  defaultLinkType_ = defaultLinkType;
+  setParameter(std::string("DefaultLinkType"), defaultLinkType);
+}
+
 std::string CreateTransitRouterPeerAttachmentRequest::getRegionId() const {
   return regionId_;
 }

+ 117 - 0
cbn/src/model/DeleteTransitRouterEcrAttachmentRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/DeleteTransitRouterEcrAttachmentRequest.h>
+
+using AlibabaCloud::Cbn::Model::DeleteTransitRouterEcrAttachmentRequest;
+
+DeleteTransitRouterEcrAttachmentRequest::DeleteTransitRouterEcrAttachmentRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "DeleteTransitRouterEcrAttachment") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteTransitRouterEcrAttachmentRequest::~DeleteTransitRouterEcrAttachmentRequest() {}
+
+long DeleteTransitRouterEcrAttachmentRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+bool DeleteTransitRouterEcrAttachmentRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long DeleteTransitRouterEcrAttachmentRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getVersion() const {
+  return version_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setVersion(const std::string &version) {
+  version_ = version;
+  setParameter(std::string("Version"), version);
+}
+
+std::string DeleteTransitRouterEcrAttachmentRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+
+bool DeleteTransitRouterEcrAttachmentRequest::getForce() const {
+  return force_;
+}
+
+void DeleteTransitRouterEcrAttachmentRequest::setForce(bool force) {
+  force_ = force;
+  setParameter(std::string("Force"), force ? "true" : "false");
+}
+

+ 44 - 0
cbn/src/model/DeleteTransitRouterEcrAttachmentResult.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/DeleteTransitRouterEcrAttachmentResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+DeleteTransitRouterEcrAttachmentResult::DeleteTransitRouterEcrAttachmentResult() :
+	ServiceResult()
+{}
+
+DeleteTransitRouterEcrAttachmentResult::DeleteTransitRouterEcrAttachmentResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteTransitRouterEcrAttachmentResult::~DeleteTransitRouterEcrAttachmentResult()
+{}
+
+void DeleteTransitRouterEcrAttachmentResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

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

@@ -65,6 +65,8 @@ void DescribeCenVbrHealthCheckResult::parse(const std::string &payload)
 			vbrHealthChecksObject.packetLoss = std::stol(valueVbrHealthChecksVbrHealthCheck["PacketLoss"].asString());
 		if(!valueVbrHealthChecksVbrHealthCheck["HealthCheckOnly"].isNull())
 			vbrHealthChecksObject.healthCheckOnly = valueVbrHealthChecksVbrHealthCheck["HealthCheckOnly"].asString() == "true";
+		if(!valueVbrHealthChecksVbrHealthCheck["Description"].isNull())
+			vbrHealthChecksObject.description = valueVbrHealthChecksVbrHealthCheck["Description"].asString();
 		vbrHealthChecks_.push_back(vbrHealthChecksObject);
 	}
 	if(!value["PageSize"].isNull())

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

@@ -57,6 +57,8 @@ void DescribeGrantRulesToCenResult::parse(const std::string &payload)
 			grantRulesObject.orderType = valueGrantRulesGrantRule["OrderType"].asString();
 		if(!valueGrantRulesGrantRule["CenOwnerId"].isNull())
 			grantRulesObject.cenOwnerId = std::stol(valueGrantRulesGrantRule["CenOwnerId"].asString());
+		if(!valueGrantRulesGrantRule["CreateTime"].isNull())
+			grantRulesObject.createTime = std::stol(valueGrantRulesGrantRule["CreateTime"].asString());
 		grantRules_.push_back(grantRulesObject);
 	}
 	if(!value["TotalCount"].isNull())

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

@@ -49,6 +49,8 @@ void DescribeGrantRulesToResourceResult::parse(const std::string &payload)
 			grantRulesObject.orderType = valueGrantRulesGrantRule["OrderType"].asString();
 		if(!valueGrantRulesGrantRule["CenId"].isNull())
 			grantRulesObject.cenId = valueGrantRulesGrantRule["CenId"].asString();
+		if(!valueGrantRulesGrantRule["CreateTime"].isNull())
+			grantRulesObject.createTime = valueGrantRulesGrantRule["CreateTime"].asString();
 		grantRules_.push_back(grantRulesObject);
 	}
 	if(!value["NextToken"].isNull())

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

@@ -52,6 +52,15 @@ void EnableCenVbrHealthCheckRequest::setHealthCheckTargetIp(const std::string &h
   setParameter(std::string("HealthCheckTargetIp"), healthCheckTargetIp);
 }
 
+std::string EnableCenVbrHealthCheckRequest::getDescription() const {
+  return description_;
+}
+
+void EnableCenVbrHealthCheckRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
 int EnableCenVbrHealthCheckRequest::getHealthyThreshold() const {
   return healthyThreshold_;
 }

+ 149 - 0
cbn/src/model/ListTransitRouterEcrAttachmentsRequest.cc

@@ -0,0 +1,149 @@
+/*
+ * 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/ListTransitRouterEcrAttachmentsRequest.h>
+
+using AlibabaCloud::Cbn::Model::ListTransitRouterEcrAttachmentsRequest;
+
+ListTransitRouterEcrAttachmentsRequest::ListTransitRouterEcrAttachmentsRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "ListTransitRouterEcrAttachments") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTransitRouterEcrAttachmentsRequest::~ListTransitRouterEcrAttachmentsRequest() {}
+
+long ListTransitRouterEcrAttachmentsRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getCenId() const {
+  return cenId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setCenId(const std::string &cenId) {
+  cenId_ = cenId;
+  setParameter(std::string("CenId"), cenId);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getRegionId() const {
+  return regionId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+std::vector<ListTransitRouterEcrAttachmentsRequest::Tag> ListTransitRouterEcrAttachmentsRequest::getTag() const {
+  return tag_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setTag(const std::vector<ListTransitRouterEcrAttachmentsRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+  auto tagObj = tag.at(dep1);
+  std::string tagObjStr = std::string("Tag") + "." + std::to_string(dep1 + 1);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+    setParameter(tagObjStr + ".Key", tagObj.key);
+  }
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long ListTransitRouterEcrAttachmentsRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getTransitRouterId() const {
+  return transitRouterId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setTransitRouterId(const std::string &transitRouterId) {
+  transitRouterId_ = transitRouterId;
+  setParameter(std::string("TransitRouterId"), transitRouterId);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getVersion() const {
+  return version_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setVersion(const std::string &version) {
+  version_ = version;
+  setParameter(std::string("Version"), version);
+}
+
+std::string ListTransitRouterEcrAttachmentsRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+
+int ListTransitRouterEcrAttachmentsRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListTransitRouterEcrAttachmentsRequest::setMaxResults(int maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 112 - 0
cbn/src/model/ListTransitRouterEcrAttachmentsResult.cc

@@ -0,0 +1,112 @@
+/*
+ * 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/ListTransitRouterEcrAttachmentsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+ListTransitRouterEcrAttachmentsResult::ListTransitRouterEcrAttachmentsResult() :
+	ServiceResult()
+{}
+
+ListTransitRouterEcrAttachmentsResult::ListTransitRouterEcrAttachmentsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTransitRouterEcrAttachmentsResult::~ListTransitRouterEcrAttachmentsResult()
+{}
+
+void ListTransitRouterEcrAttachmentsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTransitRouterAttachmentsNode = value["TransitRouterAttachments"]["TransitRouterAttachment"];
+	for (auto valueTransitRouterAttachmentsTransitRouterAttachment : allTransitRouterAttachmentsNode)
+	{
+		TransitRouterAttachment transitRouterAttachmentsObject;
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["CreationTime"].isNull())
+			transitRouterAttachmentsObject.creationTime = valueTransitRouterAttachmentsTransitRouterAttachment["CreationTime"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["Status"].isNull())
+			transitRouterAttachmentsObject.status = valueTransitRouterAttachmentsTransitRouterAttachment["Status"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentId"].isNull())
+			transitRouterAttachmentsObject.transitRouterAttachmentId = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterId"].isNull())
+			transitRouterAttachmentsObject.transitRouterId = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["ResourceType"].isNull())
+			transitRouterAttachmentsObject.resourceType = valueTransitRouterAttachmentsTransitRouterAttachment["ResourceType"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterRegionId"].isNull())
+			transitRouterAttachmentsObject.transitRouterRegionId = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterRegionId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentDescription"].isNull())
+			transitRouterAttachmentsObject.transitRouterAttachmentDescription = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentDescription"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["EcrOwnerId"].isNull())
+			transitRouterAttachmentsObject.ecrOwnerId = std::stol(valueTransitRouterAttachmentsTransitRouterAttachment["EcrOwnerId"].asString());
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["AutoPublishRouteEnabled"].isNull())
+			transitRouterAttachmentsObject.autoPublishRouteEnabled = valueTransitRouterAttachmentsTransitRouterAttachment["AutoPublishRouteEnabled"].asString() == "true";
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["EcrId"].isNull())
+			transitRouterAttachmentsObject.ecrId = valueTransitRouterAttachmentsTransitRouterAttachment["EcrId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentName"].isNull())
+			transitRouterAttachmentsObject.transitRouterAttachmentName = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentName"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].isNull())
+			transitRouterAttachmentsObject.cenId = valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["OrderType"].isNull())
+			transitRouterAttachmentsObject.orderType = valueTransitRouterAttachmentsTransitRouterAttachment["OrderType"].asString();
+		auto allTagsNode = valueTransitRouterAttachmentsTransitRouterAttachment["Tags"]["Tag"];
+		for (auto valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag : allTagsNode)
+		{
+			TransitRouterAttachment::Tag tagsObject;
+			if(!valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag["Key"].isNull())
+				tagsObject.key = valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag["Key"].asString();
+			if(!valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag["Value"].isNull())
+				tagsObject.value = valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag["Value"].asString();
+			transitRouterAttachmentsObject.tags.push_back(tagsObject);
+		}
+		transitRouterAttachments_.push_back(transitRouterAttachmentsObject);
+	}
+	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 ListTransitRouterEcrAttachmentsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::string ListTransitRouterEcrAttachmentsResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+int ListTransitRouterEcrAttachmentsResult::getMaxResults()const
+{
+	return maxResults_;
+}
+
+std::vector<ListTransitRouterEcrAttachmentsResult::TransitRouterAttachment> ListTransitRouterEcrAttachmentsResult::getTransitRouterAttachments()const
+{
+	return transitRouterAttachments_;
+}
+

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

@@ -43,6 +43,15 @@ void ListTransitRouterPeerAttachmentsRequest::setCenId(const std::string &cenId)
   setParameter(std::string("CenId"), cenId);
 }
 
+std::string ListTransitRouterPeerAttachmentsRequest::getDefaultLinkType() const {
+  return defaultLinkType_;
+}
+
+void ListTransitRouterPeerAttachmentsRequest::setDefaultLinkType(const std::string &defaultLinkType) {
+  defaultLinkType_ = defaultLinkType;
+  setParameter(std::string("DefaultLinkType"), defaultLinkType);
+}
+
 std::string ListTransitRouterPeerAttachmentsRequest::getRegionId() const {
   return regionId_;
 }

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

@@ -79,6 +79,8 @@ void ListTransitRouterPeerAttachmentsResult::parse(const std::string &payload)
 			transitRouterAttachmentsObject.transitRouterAttachmentName = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentName"].asString();
 		if(!valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].isNull())
 			transitRouterAttachmentsObject.cenId = valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["DefaultLinkType"].isNull())
+			transitRouterAttachmentsObject.defaultLinkType = valueTransitRouterAttachmentsTransitRouterAttachment["DefaultLinkType"].asString();
 		auto allTagsNode = valueTransitRouterAttachmentsTransitRouterAttachment["Tags"]["Tag"];
 		for (auto valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag : allTagsNode)
 		{

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

@@ -67,6 +67,8 @@ void ListTransitRouterVbrAttachmentsResult::parse(const std::string &payload)
 			transitRouterAttachmentsObject.transitRouterAttachmentName = valueTransitRouterAttachmentsTransitRouterAttachment["TransitRouterAttachmentName"].asString();
 		if(!valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].isNull())
 			transitRouterAttachmentsObject.cenId = valueTransitRouterAttachmentsTransitRouterAttachment["CenId"].asString();
+		if(!valueTransitRouterAttachmentsTransitRouterAttachment["OrderType"].isNull())
+			transitRouterAttachmentsObject.orderType = valueTransitRouterAttachmentsTransitRouterAttachment["OrderType"].asString();
 		auto allTagsNode = valueTransitRouterAttachmentsTransitRouterAttachment["Tags"]["Tag"];
 		for (auto valueTransitRouterAttachmentsTransitRouterAttachmentTagsTag : allTagsNode)
 		{

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

@@ -52,6 +52,15 @@ void ListTransitRoutersRequest::setCenId(const std::string &cenId) {
   setParameter(std::string("CenId"), cenId);
 }
 
+bool ListTransitRoutersRequest::getGetPrimaryStandbyZoneInfo() const {
+  return getPrimaryStandbyZoneInfo_;
+}
+
+void ListTransitRoutersRequest::setGetPrimaryStandbyZoneInfo(bool getPrimaryStandbyZoneInfo) {
+  getPrimaryStandbyZoneInfo_ = getPrimaryStandbyZoneInfo;
+  setParameter(std::string("GetPrimaryStandbyZoneInfo"), getPrimaryStandbyZoneInfo ? "true" : "false");
+}
+
 std::vector<ListTransitRoutersRequest::FeatureFilter> ListTransitRoutersRequest::getFeatureFilter() const {
   return featureFilter_;
 }

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

@@ -91,6 +91,16 @@ void ListTransitRoutersResult::parse(const std::string &payload)
 				tagsObject.value = valueTransitRoutersTransitRouterTagsTag["Value"].asString();
 			transitRoutersObject.tags.push_back(tagsObject);
 		}
+		auto allTransitRouterPrimaryStandbyZoneInfoListNode = valueTransitRoutersTransitRouter["TransitRouterPrimaryStandbyZoneInfoList"]["TransitRouterPrimaryStandbyZoneInfoListItem"];
+		for (auto valueTransitRoutersTransitRouterTransitRouterPrimaryStandbyZoneInfoListTransitRouterPrimaryStandbyZoneInfoListItem : allTransitRouterPrimaryStandbyZoneInfoListNode)
+		{
+			TransitRouter::TransitRouterPrimaryStandbyZoneInfoListItem transitRouterPrimaryStandbyZoneInfoListObject;
+			if(!valueTransitRoutersTransitRouterTransitRouterPrimaryStandbyZoneInfoListTransitRouterPrimaryStandbyZoneInfoListItem["ZoneId"].isNull())
+				transitRouterPrimaryStandbyZoneInfoListObject.zoneId = valueTransitRoutersTransitRouterTransitRouterPrimaryStandbyZoneInfoListTransitRouterPrimaryStandbyZoneInfoListItem["ZoneId"].asString();
+			if(!valueTransitRoutersTransitRouterTransitRouterPrimaryStandbyZoneInfoListTransitRouterPrimaryStandbyZoneInfoListItem["Role"].isNull())
+				transitRouterPrimaryStandbyZoneInfoListObject.role = valueTransitRoutersTransitRouterTransitRouterPrimaryStandbyZoneInfoListTransitRouterPrimaryStandbyZoneInfoListItem["Role"].asString();
+			transitRoutersObject.transitRouterPrimaryStandbyZoneInfoList.push_back(transitRouterPrimaryStandbyZoneInfoListObject);
+		}
 		transitRouters_.push_back(transitRoutersObject);
 	}
 	if(!value["PageSize"].isNull())

+ 126 - 0
cbn/src/model/UpdateTransitRouterEcrAttachmentAttributeRequest.cc

@@ -0,0 +1,126 @@
+/*
+ * 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/UpdateTransitRouterEcrAttachmentAttributeRequest.h>
+
+using AlibabaCloud::Cbn::Model::UpdateTransitRouterEcrAttachmentAttributeRequest;
+
+UpdateTransitRouterEcrAttachmentAttributeRequest::UpdateTransitRouterEcrAttachmentAttributeRequest()
+    : RpcServiceRequest("cbn", "2017-09-12", "UpdateTransitRouterEcrAttachmentAttribute") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateTransitRouterEcrAttachmentAttributeRequest::~UpdateTransitRouterEcrAttachmentAttributeRequest() {}
+
+long UpdateTransitRouterEcrAttachmentAttributeRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getTransitRouterAttachmentName() const {
+  return transitRouterAttachmentName_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setTransitRouterAttachmentName(const std::string &transitRouterAttachmentName) {
+  transitRouterAttachmentName_ = transitRouterAttachmentName;
+  setParameter(std::string("TransitRouterAttachmentName"), transitRouterAttachmentName);
+}
+
+bool UpdateTransitRouterEcrAttachmentAttributeRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getOwnerAccount() const {
+  return ownerAccount_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setOwnerAccount(const std::string &ownerAccount) {
+  ownerAccount_ = ownerAccount;
+  setParameter(std::string("OwnerAccount"), ownerAccount);
+}
+
+long UpdateTransitRouterEcrAttachmentAttributeRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getVersion() const {
+  return version_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setVersion(const std::string &version) {
+  version_ = version;
+  setParameter(std::string("Version"), version);
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getTransitRouterAttachmentId() const {
+  return transitRouterAttachmentId_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setTransitRouterAttachmentId(const std::string &transitRouterAttachmentId) {
+  transitRouterAttachmentId_ = transitRouterAttachmentId;
+  setParameter(std::string("TransitRouterAttachmentId"), transitRouterAttachmentId);
+}
+
+std::string UpdateTransitRouterEcrAttachmentAttributeRequest::getTransitRouterAttachmentDescription() const {
+  return transitRouterAttachmentDescription_;
+}
+
+void UpdateTransitRouterEcrAttachmentAttributeRequest::setTransitRouterAttachmentDescription(const std::string &transitRouterAttachmentDescription) {
+  transitRouterAttachmentDescription_ = transitRouterAttachmentDescription;
+  setParameter(std::string("TransitRouterAttachmentDescription"), transitRouterAttachmentDescription);
+}
+

+ 44 - 0
cbn/src/model/UpdateTransitRouterEcrAttachmentAttributeResult.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/UpdateTransitRouterEcrAttachmentAttributeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cbn;
+using namespace AlibabaCloud::Cbn::Model;
+
+UpdateTransitRouterEcrAttachmentAttributeResult::UpdateTransitRouterEcrAttachmentAttributeResult() :
+	ServiceResult()
+{}
+
+UpdateTransitRouterEcrAttachmentAttributeResult::UpdateTransitRouterEcrAttachmentAttributeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateTransitRouterEcrAttachmentAttributeResult::~UpdateTransitRouterEcrAttachmentAttributeResult()
+{}
+
+void UpdateTransitRouterEcrAttachmentAttributeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

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

@@ -61,6 +61,15 @@ void UpdateTransitRouterPeerAttachmentAttributeRequest::setTransitRouterAttachme
   setParameter(std::string("TransitRouterAttachmentName"), transitRouterAttachmentName);
 }
 
+std::string UpdateTransitRouterPeerAttachmentAttributeRequest::getDefaultLinkType() const {
+  return defaultLinkType_;
+}
+
+void UpdateTransitRouterPeerAttachmentAttributeRequest::setDefaultLinkType(const std::string &defaultLinkType) {
+  defaultLinkType_ = defaultLinkType;
+  setParameter(std::string("DefaultLinkType"), defaultLinkType);
+}
+
 bool UpdateTransitRouterPeerAttachmentAttributeRequest::getAutoPublishRouteEnabled() const {
   return autoPublishRouteEnabled_;
 }