sdk-team преди 3 години
родител
ревизия
f699392896
променени са 64 файла, в които са добавени 1660 реда и са изтрити 92 реда
  1. 1 1
      VERSION
  2. 16 0
      privatelink/CMakeLists.txt
  3. 32 0
      privatelink/include/alibabacloud/privatelink/PrivatelinkClient.h
  4. 3 0
      privatelink/include/alibabacloud/privatelink/model/AddUserToVpcEndpointServiceRequest.h
  5. 54 0
      privatelink/include/alibabacloud/privatelink/model/ChangeResourceGroupRequest.h
  6. 49 0
      privatelink/include/alibabacloud/privatelink/model/ChangeResourceGroupResult.h
  7. 48 0
      privatelink/include/alibabacloud/privatelink/model/CheckResourceSupportOperateRequest.h
  8. 53 0
      privatelink/include/alibabacloud/privatelink/model/CheckResourceSupportOperateResult.h
  9. 18 0
      privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointRequest.h
  10. 21 0
      privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointServiceRequest.h
  11. 4 0
      privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointServiceResult.h
  12. 3 0
      privatelink/include/alibabacloud/privatelink/model/DescribeZonesRequest.h
  13. 2 0
      privatelink/include/alibabacloud/privatelink/model/GetVpcEndpointAttributeResult.h
  14. 22 18
      privatelink/include/alibabacloud/privatelink/model/GetVpcEndpointServiceAttributeResult.h
  15. 6 0
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointConnectionsRequest.h
  16. 7 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointConnectionsResult.h
  17. 2 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointSecurityGroupsResult.h
  18. 3 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceResourcesResult.h
  19. 3 0
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceUsersRequest.h
  20. 10 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceUsersResult.h
  21. 10 0
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesByEndUserRequest.h
  22. 13 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesByEndUserResult.h
  23. 10 0
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesRequest.h
  24. 12 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesResult.h
  25. 5 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointZonesResult.h
  26. 10 0
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointsRequest.h
  27. 11 2
      privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointsResult.h
  28. 51 0
      privatelink/include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyRequest.h
  29. 49 0
      privatelink/include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyResult.h
  30. 3 0
      privatelink/include/alibabacloud/privatelink/model/RemoveUserFromVpcEndpointServiceRequest.h
  31. 61 0
      privatelink/include/alibabacloud/privatelink/model/TagResourcesRequest.h
  32. 49 0
      privatelink/include/alibabacloud/privatelink/model/TagResourcesResult.h
  33. 3 0
      privatelink/include/alibabacloud/privatelink/model/UpdateVpcEndpointServiceAttributeRequest.h
  34. 144 0
      privatelink/src/PrivatelinkClient.cc
  35. 9 0
      privatelink/src/model/AddUserToVpcEndpointServiceRequest.cc
  36. 72 0
      privatelink/src/model/ChangeResourceGroupRequest.cc
  37. 44 0
      privatelink/src/model/ChangeResourceGroupResult.cc
  38. 54 0
      privatelink/src/model/CheckResourceSupportOperateRequest.cc
  39. 58 0
      privatelink/src/model/CheckResourceSupportOperateResult.cc
  40. 38 0
      privatelink/src/model/CreateVpcEndpointRequest.cc
  41. 47 0
      privatelink/src/model/CreateVpcEndpointServiceRequest.cc
  42. 14 0
      privatelink/src/model/CreateVpcEndpointServiceResult.cc
  43. 9 0
      privatelink/src/model/DescribeZonesRequest.cc
  44. 7 0
      privatelink/src/model/GetVpcEndpointAttributeResult.cc
  45. 55 41
      privatelink/src/model/GetVpcEndpointServiceAttributeResult.cc
  46. 18 0
      privatelink/src/model/ListVpcEndpointConnectionsRequest.cc
  47. 15 2
      privatelink/src/model/ListVpcEndpointConnectionsResult.cc
  48. 2 2
      privatelink/src/model/ListVpcEndpointSecurityGroupsResult.cc
  49. 4 2
      privatelink/src/model/ListVpcEndpointServiceResourcesResult.cc
  50. 9 0
      privatelink/src/model/ListVpcEndpointServiceUsersRequest.cc
  51. 22 2
      privatelink/src/model/ListVpcEndpointServiceUsersResult.cc
  52. 21 0
      privatelink/src/model/ListVpcEndpointServicesByEndUserRequest.cc
  53. 25 2
      privatelink/src/model/ListVpcEndpointServicesByEndUserResult.cc
  54. 21 0
      privatelink/src/model/ListVpcEndpointServicesRequest.cc
  55. 23 2
      privatelink/src/model/ListVpcEndpointServicesResult.cc
  56. 8 2
      privatelink/src/model/ListVpcEndpointZonesResult.cc
  57. 21 0
      privatelink/src/model/ListVpcEndpointsRequest.cc
  58. 21 2
      privatelink/src/model/ListVpcEndpointsResult.cc
  59. 63 0
      privatelink/src/model/NotifyResourceAddressFamilyRequest.cc
  60. 44 0
      privatelink/src/model/NotifyResourceAddressFamilyResult.cc
  61. 9 0
      privatelink/src/model/RemoveUserFromVpcEndpointServiceRequest.cc
  62. 86 0
      privatelink/src/model/TagResourcesRequest.cc
  63. 44 0
      privatelink/src/model/TagResourcesResult.cc
  64. 9 0
      privatelink/src/model/UpdateVpcEndpointServiceAttributeRequest.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1632
+1.36.1633

+ 16 - 0
privatelink/CMakeLists.txt

@@ -29,8 +29,12 @@ set(privatelink_public_header_model
 	include/alibabacloud/privatelink/model/AttachResourceToVpcEndpointServiceResult.h
 	include/alibabacloud/privatelink/model/AttachSecurityGroupToVpcEndpointRequest.h
 	include/alibabacloud/privatelink/model/AttachSecurityGroupToVpcEndpointResult.h
+	include/alibabacloud/privatelink/model/ChangeResourceGroupRequest.h
+	include/alibabacloud/privatelink/model/ChangeResourceGroupResult.h
 	include/alibabacloud/privatelink/model/CheckProductOpenRequest.h
 	include/alibabacloud/privatelink/model/CheckProductOpenResult.h
+	include/alibabacloud/privatelink/model/CheckResourceSupportOperateRequest.h
+	include/alibabacloud/privatelink/model/CheckResourceSupportOperateResult.h
 	include/alibabacloud/privatelink/model/CreateVpcEndpointRequest.h
 	include/alibabacloud/privatelink/model/CreateVpcEndpointResult.h
 	include/alibabacloud/privatelink/model/CreateVpcEndpointServiceRequest.h
@@ -75,12 +79,16 @@ set(privatelink_public_header_model
 	include/alibabacloud/privatelink/model/ListVpcEndpointZonesResult.h
 	include/alibabacloud/privatelink/model/ListVpcEndpointsRequest.h
 	include/alibabacloud/privatelink/model/ListVpcEndpointsResult.h
+	include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyRequest.h
+	include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyResult.h
 	include/alibabacloud/privatelink/model/OpenPrivateLinkServiceRequest.h
 	include/alibabacloud/privatelink/model/OpenPrivateLinkServiceResult.h
 	include/alibabacloud/privatelink/model/RemoveUserFromVpcEndpointServiceRequest.h
 	include/alibabacloud/privatelink/model/RemoveUserFromVpcEndpointServiceResult.h
 	include/alibabacloud/privatelink/model/RemoveZoneFromVpcEndpointRequest.h
 	include/alibabacloud/privatelink/model/RemoveZoneFromVpcEndpointResult.h
+	include/alibabacloud/privatelink/model/TagResourcesRequest.h
+	include/alibabacloud/privatelink/model/TagResourcesResult.h
 	include/alibabacloud/privatelink/model/UpdateVpcEndpointAttributeRequest.h
 	include/alibabacloud/privatelink/model/UpdateVpcEndpointAttributeResult.h
 	include/alibabacloud/privatelink/model/UpdateVpcEndpointConnectionAttributeRequest.h
@@ -102,8 +110,12 @@ set(privatelink_src
 	src/model/AttachResourceToVpcEndpointServiceResult.cc
 	src/model/AttachSecurityGroupToVpcEndpointRequest.cc
 	src/model/AttachSecurityGroupToVpcEndpointResult.cc
+	src/model/ChangeResourceGroupRequest.cc
+	src/model/ChangeResourceGroupResult.cc
 	src/model/CheckProductOpenRequest.cc
 	src/model/CheckProductOpenResult.cc
+	src/model/CheckResourceSupportOperateRequest.cc
+	src/model/CheckResourceSupportOperateResult.cc
 	src/model/CreateVpcEndpointRequest.cc
 	src/model/CreateVpcEndpointResult.cc
 	src/model/CreateVpcEndpointServiceRequest.cc
@@ -148,12 +160,16 @@ set(privatelink_src
 	src/model/ListVpcEndpointZonesResult.cc
 	src/model/ListVpcEndpointsRequest.cc
 	src/model/ListVpcEndpointsResult.cc
+	src/model/NotifyResourceAddressFamilyRequest.cc
+	src/model/NotifyResourceAddressFamilyResult.cc
 	src/model/OpenPrivateLinkServiceRequest.cc
 	src/model/OpenPrivateLinkServiceResult.cc
 	src/model/RemoveUserFromVpcEndpointServiceRequest.cc
 	src/model/RemoveUserFromVpcEndpointServiceResult.cc
 	src/model/RemoveZoneFromVpcEndpointRequest.cc
 	src/model/RemoveZoneFromVpcEndpointResult.cc
+	src/model/TagResourcesRequest.cc
+	src/model/TagResourcesResult.cc
 	src/model/UpdateVpcEndpointAttributeRequest.cc
 	src/model/UpdateVpcEndpointAttributeResult.cc
 	src/model/UpdateVpcEndpointConnectionAttributeRequest.cc

+ 32 - 0
privatelink/include/alibabacloud/privatelink/PrivatelinkClient.h

@@ -30,8 +30,12 @@
 #include "model/AttachResourceToVpcEndpointServiceResult.h"
 #include "model/AttachSecurityGroupToVpcEndpointRequest.h"
 #include "model/AttachSecurityGroupToVpcEndpointResult.h"
+#include "model/ChangeResourceGroupRequest.h"
+#include "model/ChangeResourceGroupResult.h"
 #include "model/CheckProductOpenRequest.h"
 #include "model/CheckProductOpenResult.h"
+#include "model/CheckResourceSupportOperateRequest.h"
+#include "model/CheckResourceSupportOperateResult.h"
 #include "model/CreateVpcEndpointRequest.h"
 #include "model/CreateVpcEndpointResult.h"
 #include "model/CreateVpcEndpointServiceRequest.h"
@@ -76,12 +80,16 @@
 #include "model/ListVpcEndpointZonesResult.h"
 #include "model/ListVpcEndpointsRequest.h"
 #include "model/ListVpcEndpointsResult.h"
+#include "model/NotifyResourceAddressFamilyRequest.h"
+#include "model/NotifyResourceAddressFamilyResult.h"
 #include "model/OpenPrivateLinkServiceRequest.h"
 #include "model/OpenPrivateLinkServiceResult.h"
 #include "model/RemoveUserFromVpcEndpointServiceRequest.h"
 #include "model/RemoveUserFromVpcEndpointServiceResult.h"
 #include "model/RemoveZoneFromVpcEndpointRequest.h"
 #include "model/RemoveZoneFromVpcEndpointResult.h"
+#include "model/TagResourcesRequest.h"
+#include "model/TagResourcesResult.h"
 #include "model/UpdateVpcEndpointAttributeRequest.h"
 #include "model/UpdateVpcEndpointAttributeResult.h"
 #include "model/UpdateVpcEndpointConnectionAttributeRequest.h"
@@ -113,9 +121,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AttachSecurityGroupToVpcEndpointResult> AttachSecurityGroupToVpcEndpointOutcome;
 			typedef std::future<AttachSecurityGroupToVpcEndpointOutcome> AttachSecurityGroupToVpcEndpointOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::AttachSecurityGroupToVpcEndpointRequest&, const AttachSecurityGroupToVpcEndpointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachSecurityGroupToVpcEndpointAsyncHandler;
+			typedef Outcome<Error, Model::ChangeResourceGroupResult> ChangeResourceGroupOutcome;
+			typedef std::future<ChangeResourceGroupOutcome> ChangeResourceGroupOutcomeCallable;
+			typedef std::function<void(const PrivatelinkClient*, const Model::ChangeResourceGroupRequest&, const ChangeResourceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ChangeResourceGroupAsyncHandler;
 			typedef Outcome<Error, Model::CheckProductOpenResult> CheckProductOpenOutcome;
 			typedef std::future<CheckProductOpenOutcome> CheckProductOpenOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::CheckProductOpenRequest&, const CheckProductOpenOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CheckProductOpenAsyncHandler;
+			typedef Outcome<Error, Model::CheckResourceSupportOperateResult> CheckResourceSupportOperateOutcome;
+			typedef std::future<CheckResourceSupportOperateOutcome> CheckResourceSupportOperateOutcomeCallable;
+			typedef std::function<void(const PrivatelinkClient*, const Model::CheckResourceSupportOperateRequest&, const CheckResourceSupportOperateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CheckResourceSupportOperateAsyncHandler;
 			typedef Outcome<Error, Model::CreateVpcEndpointResult> CreateVpcEndpointOutcome;
 			typedef std::future<CreateVpcEndpointOutcome> CreateVpcEndpointOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::CreateVpcEndpointRequest&, const CreateVpcEndpointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateVpcEndpointAsyncHandler;
@@ -182,6 +196,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListVpcEndpointsResult> ListVpcEndpointsOutcome;
 			typedef std::future<ListVpcEndpointsOutcome> ListVpcEndpointsOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::ListVpcEndpointsRequest&, const ListVpcEndpointsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListVpcEndpointsAsyncHandler;
+			typedef Outcome<Error, Model::NotifyResourceAddressFamilyResult> NotifyResourceAddressFamilyOutcome;
+			typedef std::future<NotifyResourceAddressFamilyOutcome> NotifyResourceAddressFamilyOutcomeCallable;
+			typedef std::function<void(const PrivatelinkClient*, const Model::NotifyResourceAddressFamilyRequest&, const NotifyResourceAddressFamilyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> NotifyResourceAddressFamilyAsyncHandler;
 			typedef Outcome<Error, Model::OpenPrivateLinkServiceResult> OpenPrivateLinkServiceOutcome;
 			typedef std::future<OpenPrivateLinkServiceOutcome> OpenPrivateLinkServiceOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::OpenPrivateLinkServiceRequest&, const OpenPrivateLinkServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OpenPrivateLinkServiceAsyncHandler;
@@ -191,6 +208,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::RemoveZoneFromVpcEndpointResult> RemoveZoneFromVpcEndpointOutcome;
 			typedef std::future<RemoveZoneFromVpcEndpointOutcome> RemoveZoneFromVpcEndpointOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::RemoveZoneFromVpcEndpointRequest&, const RemoveZoneFromVpcEndpointOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RemoveZoneFromVpcEndpointAsyncHandler;
+			typedef Outcome<Error, Model::TagResourcesResult> TagResourcesOutcome;
+			typedef std::future<TagResourcesOutcome> TagResourcesOutcomeCallable;
+			typedef std::function<void(const PrivatelinkClient*, const Model::TagResourcesRequest&, const TagResourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TagResourcesAsyncHandler;
 			typedef Outcome<Error, Model::UpdateVpcEndpointAttributeResult> UpdateVpcEndpointAttributeOutcome;
 			typedef std::future<UpdateVpcEndpointAttributeOutcome> UpdateVpcEndpointAttributeOutcomeCallable;
 			typedef std::function<void(const PrivatelinkClient*, const Model::UpdateVpcEndpointAttributeRequest&, const UpdateVpcEndpointAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateVpcEndpointAttributeAsyncHandler;
@@ -223,9 +243,15 @@ namespace AlibabaCloud
 			AttachSecurityGroupToVpcEndpointOutcome attachSecurityGroupToVpcEndpoint(const Model::AttachSecurityGroupToVpcEndpointRequest &request)const;
 			void attachSecurityGroupToVpcEndpointAsync(const Model::AttachSecurityGroupToVpcEndpointRequest& request, const AttachSecurityGroupToVpcEndpointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachSecurityGroupToVpcEndpointOutcomeCallable attachSecurityGroupToVpcEndpointCallable(const Model::AttachSecurityGroupToVpcEndpointRequest& request) const;
+			ChangeResourceGroupOutcome changeResourceGroup(const Model::ChangeResourceGroupRequest &request)const;
+			void changeResourceGroupAsync(const Model::ChangeResourceGroupRequest& request, const ChangeResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ChangeResourceGroupOutcomeCallable changeResourceGroupCallable(const Model::ChangeResourceGroupRequest& request) const;
 			CheckProductOpenOutcome checkProductOpen(const Model::CheckProductOpenRequest &request)const;
 			void checkProductOpenAsync(const Model::CheckProductOpenRequest& request, const CheckProductOpenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CheckProductOpenOutcomeCallable checkProductOpenCallable(const Model::CheckProductOpenRequest& request) const;
+			CheckResourceSupportOperateOutcome checkResourceSupportOperate(const Model::CheckResourceSupportOperateRequest &request)const;
+			void checkResourceSupportOperateAsync(const Model::CheckResourceSupportOperateRequest& request, const CheckResourceSupportOperateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CheckResourceSupportOperateOutcomeCallable checkResourceSupportOperateCallable(const Model::CheckResourceSupportOperateRequest& request) const;
 			CreateVpcEndpointOutcome createVpcEndpoint(const Model::CreateVpcEndpointRequest &request)const;
 			void createVpcEndpointAsync(const Model::CreateVpcEndpointRequest& request, const CreateVpcEndpointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateVpcEndpointOutcomeCallable createVpcEndpointCallable(const Model::CreateVpcEndpointRequest& request) const;
@@ -292,6 +318,9 @@ namespace AlibabaCloud
 			ListVpcEndpointsOutcome listVpcEndpoints(const Model::ListVpcEndpointsRequest &request)const;
 			void listVpcEndpointsAsync(const Model::ListVpcEndpointsRequest& request, const ListVpcEndpointsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListVpcEndpointsOutcomeCallable listVpcEndpointsCallable(const Model::ListVpcEndpointsRequest& request) const;
+			NotifyResourceAddressFamilyOutcome notifyResourceAddressFamily(const Model::NotifyResourceAddressFamilyRequest &request)const;
+			void notifyResourceAddressFamilyAsync(const Model::NotifyResourceAddressFamilyRequest& request, const NotifyResourceAddressFamilyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			NotifyResourceAddressFamilyOutcomeCallable notifyResourceAddressFamilyCallable(const Model::NotifyResourceAddressFamilyRequest& request) const;
 			OpenPrivateLinkServiceOutcome openPrivateLinkService(const Model::OpenPrivateLinkServiceRequest &request)const;
 			void openPrivateLinkServiceAsync(const Model::OpenPrivateLinkServiceRequest& request, const OpenPrivateLinkServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			OpenPrivateLinkServiceOutcomeCallable openPrivateLinkServiceCallable(const Model::OpenPrivateLinkServiceRequest& request) const;
@@ -301,6 +330,9 @@ namespace AlibabaCloud
 			RemoveZoneFromVpcEndpointOutcome removeZoneFromVpcEndpoint(const Model::RemoveZoneFromVpcEndpointRequest &request)const;
 			void removeZoneFromVpcEndpointAsync(const Model::RemoveZoneFromVpcEndpointRequest& request, const RemoveZoneFromVpcEndpointAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RemoveZoneFromVpcEndpointOutcomeCallable removeZoneFromVpcEndpointCallable(const Model::RemoveZoneFromVpcEndpointRequest& request) const;
+			TagResourcesOutcome tagResources(const Model::TagResourcesRequest &request)const;
+			void tagResourcesAsync(const Model::TagResourcesRequest& request, const TagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			TagResourcesOutcomeCallable tagResourcesCallable(const Model::TagResourcesRequest& request) const;
 			UpdateVpcEndpointAttributeOutcome updateVpcEndpointAttribute(const Model::UpdateVpcEndpointAttributeRequest &request)const;
 			void updateVpcEndpointAttributeAsync(const Model::UpdateVpcEndpointAttributeRequest& request, const UpdateVpcEndpointAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateVpcEndpointAttributeOutcomeCallable updateVpcEndpointAttributeCallable(const Model::UpdateVpcEndpointAttributeRequest& request) const;

+ 3 - 0
privatelink/include/alibabacloud/privatelink/model/AddUserToVpcEndpointServiceRequest.h

@@ -32,6 +32,8 @@ public:
 	~AddUserToVpcEndpointServiceRequest();
 	std::string getClientToken() const;
 	void setClientToken(const std::string &clientToken);
+	std::string getUserARN() const;
+	void setUserARN(const std::string &userARN);
 	long getUserId() const;
 	void setUserId(long userId);
 	std::string getRegionId() const;
@@ -43,6 +45,7 @@ public:
 
 private:
 	std::string clientToken_;
+	std::string userARN_;
 	long userId_;
 	std::string regionId_;
 	bool dryRun_;

+ 54 - 0
privatelink/include/alibabacloud/privatelink/model/ChangeResourceGroupRequest.h

@@ -0,0 +1,54 @@
+/*
+ * 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_PRIVATELINK_MODEL_CHANGERESOURCEGROUPREQUEST_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_CHANGERESOURCEGROUPREQUEST_H_
+
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Privatelink {
+namespace Model {
+class ALIBABACLOUD_PRIVATELINK_EXPORT ChangeResourceGroupRequest : public RpcServiceRequest {
+public:
+	ChangeResourceGroupRequest();
+	~ChangeResourceGroupRequest();
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
+	std::string getResourceRegionId() const;
+	void setResourceRegionId(const std::string &resourceRegionId);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getService() const;
+	void setService(const std::string &service);
+
+private:
+	std::string resourceGroupId_;
+	std::string resourceRegionId_;
+	std::string resourceId_;
+	std::string resourceType_;
+	std::string service_;
+};
+} // namespace Model
+} // namespace Privatelink
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_CHANGERESOURCEGROUPREQUEST_H_

+ 49 - 0
privatelink/include/alibabacloud/privatelink/model/ChangeResourceGroupResult.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_PRIVATELINK_MODEL_CHANGERESOURCEGROUPRESULT_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_CHANGERESOURCEGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Privatelink
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_PRIVATELINK_EXPORT ChangeResourceGroupResult : public ServiceResult
+			{
+			public:
+
+
+				ChangeResourceGroupResult();
+				explicit ChangeResourceGroupResult(const std::string &payload);
+				~ChangeResourceGroupResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_CHANGERESOURCEGROUPRESULT_H_

+ 48 - 0
privatelink/include/alibabacloud/privatelink/model/CheckResourceSupportOperateRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATEREQUEST_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATEREQUEST_H_
+
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Privatelink {
+namespace Model {
+class ALIBABACLOUD_PRIVATELINK_EXPORT CheckResourceSupportOperateRequest : public RpcServiceRequest {
+public:
+	CheckResourceSupportOperateRequest();
+	~CheckResourceSupportOperateRequest();
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getZoneId() const;
+	void setZoneId(const std::string &zoneId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+
+private:
+	std::string resourceId_;
+	std::string zoneId_;
+	std::string resourceType_;
+};
+} // namespace Model
+} // namespace Privatelink
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATEREQUEST_H_

+ 53 - 0
privatelink/include/alibabacloud/privatelink/model/CheckResourceSupportOperateResult.h

@@ -0,0 +1,53 @@
+/*
+ * 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_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATERESULT_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Privatelink
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_PRIVATELINK_EXPORT CheckResourceSupportOperateResult : public ServiceResult
+			{
+			public:
+
+
+				CheckResourceSupportOperateResult();
+				explicit CheckResourceSupportOperateResult(const std::string &payload);
+				~CheckResourceSupportOperateResult();
+				bool getResourceCanBeDowngraded()const;
+				bool getResourceZoneCanBeDeleted()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				bool resourceCanBeDowngraded_;
+				bool resourceZoneCanBeDeleted_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_CHECKRESOURCESUPPORTOPERATERESULT_H_

+ 18 - 0
privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointRequest.h

@@ -28,17 +28,30 @@ namespace Privatelink {
 namespace Model {
 class ALIBABACLOUD_PRIVATELINK_EXPORT CreateVpcEndpointRequest : public RpcServiceRequest {
 public:
+	struct SystemTag {
+		std::string key;
+		std::string value;
+		std::string scope;
+	};
 	struct Zone {
 		std::string vSwitchId;
 		std::string zoneId;
 		std::string ip;
 	};
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	CreateVpcEndpointRequest();
 	~CreateVpcEndpointRequest();
 	std::string getClientToken() const;
 	void setClientToken(const std::string &clientToken);
+	std::vector<SystemTag> getSystemTag() const;
+	void setSystemTag(const std::vector<SystemTag> &systemTag);
 	std::vector<std::string> getSecurityGroupId() const;
 	void setSecurityGroupId(const std::vector<std::string> &securityGroupId);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getEndpointType() const;
@@ -47,6 +60,8 @@ public:
 	void setZone(const std::vector<Zone> &zone);
 	std::string getServiceName() const;
 	void setServiceName(const std::string &serviceName);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	bool getDryRun() const;
 	void setDryRun(bool dryRun);
 	std::string getEndpointDescription() const;
@@ -64,11 +79,14 @@ public:
 
 private:
 	std::string clientToken_;
+	std::vector<SystemTag> systemTag_;
 	std::vector<std::string> securityGroupId_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string endpointType_;
 	std::vector<Zone> zone_;
 	std::string serviceName_;
+	std::vector<Tag> tag_;
 	bool dryRun_;
 	std::string endpointDescription_;
 	long zonePrivateIpAddressCount_;

+ 21 - 0
privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointServiceRequest.h

@@ -28,6 +28,15 @@ namespace Privatelink {
 namespace Model {
 class ALIBABACLOUD_PRIVATELINK_EXPORT CreateVpcEndpointServiceRequest : public RpcServiceRequest {
 public:
+	struct SystemTag {
+		std::string key;
+		std::string value;
+		std::string scope;
+	};
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	struct Resource {
 		std::string resourceType;
 		std::string resourceId;
@@ -43,18 +52,26 @@ public:
 	void setAutoAcceptEnabled(bool autoAcceptEnabled);
 	std::string getClientToken() const;
 	void setClientToken(const std::string &clientToken);
+	std::vector<SystemTag> getSystemTag() const;
+	void setSystemTag(const std::vector<SystemTag> &systemTag);
 	std::string getPayer() const;
 	void setPayer(const std::string &payer);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	bool getZoneAffinityEnabled() const;
 	void setZoneAffinityEnabled(bool zoneAffinityEnabled);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	bool getDryRun() const;
 	void setDryRun(bool dryRun);
 	std::vector<Resource> getResource() const;
 	void setResource(const std::vector<Resource> &resource);
 	std::string getServiceResourceType() const;
 	void setServiceResourceType(const std::string &serviceResourceType);
+	bool getServiceSupportIPv6() const;
+	void setServiceSupportIPv6(bool serviceSupportIPv6);
 	std::string getServiceDescription() const;
 	void setServiceDescription(const std::string &serviceDescription);
 
@@ -63,12 +80,16 @@ private:
 	std::string privateServiceDomain_;
 	bool autoAcceptEnabled_;
 	std::string clientToken_;
+	std::vector<SystemTag> systemTag_;
 	std::string payer_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	bool zoneAffinityEnabled_;
+	std::vector<Tag> tag_;
 	bool dryRun_;
 	std::vector<Resource> resource_;
 	std::string serviceResourceType_;
+	bool serviceSupportIPv6_;
 	std::string serviceDescription_;
 };
 } // namespace Model

+ 4 - 0
privatelink/include/alibabacloud/privatelink/model/CreateVpcEndpointServiceResult.h

@@ -38,6 +38,7 @@ namespace AlibabaCloud
 				explicit CreateVpcEndpointServiceResult(const std::string &payload);
 				~CreateVpcEndpointServiceResult();
 				std::string getServiceBusinessStatus()const;
+				std::string getResourceGroupId()const;
 				std::string getServiceName()const;
 				std::string getServiceStatus()const;
 				std::string getServiceDescription()const;
@@ -46,11 +47,13 @@ namespace AlibabaCloud
 				bool getZoneAffinityEnabled()const;
 				bool getAutoAcceptEnabled()const;
 				std::string getServiceId()const;
+				bool getServiceSupportIPv6()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::string serviceBusinessStatus_;
+				std::string resourceGroupId_;
 				std::string serviceName_;
 				std::string serviceStatus_;
 				std::string serviceDescription_;
@@ -59,6 +62,7 @@ namespace AlibabaCloud
 				bool zoneAffinityEnabled_;
 				bool autoAcceptEnabled_;
 				std::string serviceId_;
+				bool serviceSupportIPv6_;
 
 			};
 		}

+ 3 - 0
privatelink/include/alibabacloud/privatelink/model/DescribeZonesRequest.h

@@ -32,9 +32,12 @@ public:
 	~DescribeZonesRequest();
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
+	std::string getServiceResourceType() const;
+	void setServiceResourceType(const std::string &serviceResourceType);
 
 private:
 	std::string regionId_;
+	std::string serviceResourceType_;
 };
 } // namespace Model
 } // namespace Privatelink

+ 2 - 0
privatelink/include/alibabacloud/privatelink/model/GetVpcEndpointAttributeResult.h

@@ -39,6 +39,7 @@ namespace AlibabaCloud
 				~GetVpcEndpointAttributeResult();
 				std::string getPayer()const;
 				std::string getEndpointDomain()const;
+				std::string getResourceGroupId()const;
 				std::string getCreateTime()const;
 				bool getResourceOwner()const;
 				long getZonePrivateIpAddressCount()const;
@@ -62,6 +63,7 @@ namespace AlibabaCloud
 			private:
 				std::string payer_;
 				std::string endpointDomain_;
+				std::string resourceGroupId_;
 				std::string createTime_;
 				bool resourceOwner_;
 				long zonePrivateIpAddressCount_;

+ 22 - 18
privatelink/include/alibabacloud/privatelink/model/GetVpcEndpointServiceAttributeResult.h

@@ -37,27 +37,29 @@ namespace AlibabaCloud
 				GetVpcEndpointServiceAttributeResult();
 				explicit GetVpcEndpointServiceAttributeResult(const std::string &payload);
 				~GetVpcEndpointServiceAttributeResult();
-				std::string getPayer()const;
-				std::string getPrivateServiceDomainBusinessStatus()const;
-				std::string getServiceDescription()const;
-				std::string getCreateTime()const;
+				std::string getResourceGroupId()const;
 				int getMaxBandwidth()const;
-				std::string getPrivateServiceDomain()const;
 				bool getPrivateServiceDomainEnabled()const;
 				int getMinBandwidth()const;
-				std::string getServiceDomain()const;
 				std::vector<std::string> getZones()const;
 				bool getAutoAcceptEnabled()const;
 				std::string getServiceId()const;
+				bool getServiceSupportIPv6()const;
 				std::string getPrivateServiceDomainVerifyStatus()const;
-				std::string getServiceBusinessStatus()const;
 				std::string getPrivateServiceDomainVerifyName()const;
-				std::string getServiceName()const;
 				std::string getServiceStatus()const;
 				std::string getServiceType()const;
-				int getConnectBandwidth()const;
 				std::string getServiceResourceType()const;
 				std::string getPrivateServiceName()const;
+				std::string getPayer()const;
+				std::string getPrivateServiceDomainBusinessStatus()const;
+				std::string getServiceDescription()const;
+				std::string getCreateTime()const;
+				std::string getPrivateServiceDomain()const;
+				std::string getServiceDomain()const;
+				std::string getServiceBusinessStatus()const;
+				std::string getServiceName()const;
+				int getConnectBandwidth()const;
 				std::string getRegionId()const;
 				bool getZoneAffinityEnabled()const;
 				std::string getPrivateServiceDomainVerifyValue()const;
@@ -65,27 +67,29 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
-				std::string payer_;
-				std::string privateServiceDomainBusinessStatus_;
-				std::string serviceDescription_;
-				std::string createTime_;
+				std::string resourceGroupId_;
 				int maxBandwidth_;
-				std::string privateServiceDomain_;
 				bool privateServiceDomainEnabled_;
 				int minBandwidth_;
-				std::string serviceDomain_;
 				std::vector<std::string> zones_;
 				bool autoAcceptEnabled_;
 				std::string serviceId_;
+				bool serviceSupportIPv6_;
 				std::string privateServiceDomainVerifyStatus_;
-				std::string serviceBusinessStatus_;
 				std::string privateServiceDomainVerifyName_;
-				std::string serviceName_;
 				std::string serviceStatus_;
 				std::string serviceType_;
-				int connectBandwidth_;
 				std::string serviceResourceType_;
 				std::string privateServiceName_;
+				std::string payer_;
+				std::string privateServiceDomainBusinessStatus_;
+				std::string serviceDescription_;
+				std::string createTime_;
+				std::string privateServiceDomain_;
+				std::string serviceDomain_;
+				std::string serviceBusinessStatus_;
+				std::string serviceName_;
+				int connectBandwidth_;
 				std::string regionId_;
 				bool zoneAffinityEnabled_;
 				std::string privateServiceDomainVerifyValue_;

+ 6 - 0
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointConnectionsRequest.h

@@ -36,10 +36,14 @@ public:
 	void setEndpointOwnerId(long endpointOwnerId);
 	std::string getReplacedResourceId() const;
 	void setReplacedResourceId(const std::string &replacedResourceId);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getNextToken() const;
 	void setNextToken(const std::string &nextToken);
+	long getConnectionId() const;
+	void setConnectionId(long connectionId);
 	std::string getResourceId() const;
 	void setResourceId(const std::string &resourceId);
 	std::string getConnectionStatus() const;
@@ -57,8 +61,10 @@ private:
 	std::string endpointId_;
 	long endpointOwnerId_;
 	std::string replacedResourceId_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string nextToken_;
+	long connectionId_;
 	std::string resourceId_;
 	std::string connectionStatus_;
 	int maxResults_;

+ 7 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointConnectionsResult.h

@@ -36,6 +36,8 @@ namespace AlibabaCloud
 				{
 					struct Zone
 					{
+						std::string connectionStringId;
+						long connectionId;
 						std::string zoneId;
 						std::string eniId;
 						std::string resourceId;
@@ -48,6 +50,7 @@ namespace AlibabaCloud
 					};
 					long endpointOwnerId;
 					std::string modifiedTime;
+					std::string resourceGroupId;
 					bool resourceOwner;
 					int bandwidth;
 					std::string endpointId;
@@ -62,15 +65,17 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointConnectionsResult(const std::string &payload);
 				~ListVpcEndpointConnectionsResult();
 				std::vector<Connection> getConnections()const;
+				std::string getTotalCount()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<Connection> connections_;
+				std::string totalCount_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 
 			};
 		}

+ 2 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointSecurityGroupsResult.h

@@ -43,14 +43,14 @@ namespace AlibabaCloud
 				~ListVpcEndpointSecurityGroupsResult();
 				std::vector<SecurityGroup> getSecurityGroups()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<SecurityGroup> securityGroups_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 
 			};
 		}

+ 3 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceResourcesResult.h

@@ -34,6 +34,7 @@ namespace AlibabaCloud
 			public:
 				struct Resource
 				{
+					bool resourceSupportIPv6;
 					long relatedEndpointCount;
 					long relatedDeprecatedEndpointCount;
 					std::string vpcId;
@@ -52,14 +53,14 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointServiceResourcesResult(const std::string &payload);
 				~ListVpcEndpointServiceResourcesResult();
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 				std::vector<Resource> getResources()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 				std::vector<Resource> resources_;
 
 			};

+ 3 - 0
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceUsersRequest.h

@@ -30,6 +30,8 @@ class ALIBABACLOUD_PRIVATELINK_EXPORT ListVpcEndpointServiceUsersRequest : publi
 public:
 	ListVpcEndpointServiceUsersRequest();
 	~ListVpcEndpointServiceUsersRequest();
+	std::string getUserListType() const;
+	void setUserListType(const std::string &userListType);
 	long getUserId() const;
 	void setUserId(long userId);
 	std::string getRegionId() const;
@@ -42,6 +44,7 @@ public:
 	void setServiceId(const std::string &serviceId);
 
 private:
+	std::string userListType_;
 	long userId_;
 	std::string regionId_;
 	std::string nextToken_;

+ 10 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServiceUsersResult.h

@@ -36,21 +36,29 @@ namespace AlibabaCloud
 				{
 					long userId;
 				};
+				struct UserARN
+				{
+					std::string userARN;
+				};
 
 
 				ListVpcEndpointServiceUsersResult();
 				explicit ListVpcEndpointServiceUsersResult(const std::string &payload);
 				~ListVpcEndpointServiceUsersResult();
+				std::string getTotalCount()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 				std::vector<User> getUsers()const;
+				std::vector<UserARN> getUserARNs()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string totalCount_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 				std::vector<User> users_;
+				std::vector<UserARN> userARNs_;
 
 			};
 		}

+ 10 - 0
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesByEndUserRequest.h

@@ -28,14 +28,22 @@ namespace Privatelink {
 namespace Model {
 class ALIBABACLOUD_PRIVATELINK_EXPORT ListVpcEndpointServicesByEndUserRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	ListVpcEndpointServicesByEndUserRequest();
 	~ListVpcEndpointServicesByEndUserRequest();
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getNextToken() const;
 	void setNextToken(const std::string &nextToken);
 	std::string getServiceName() const;
 	void setServiceName(const std::string &serviceName);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getServiceType() const;
 	void setServiceType(const std::string &serviceType);
 	int getMaxResults() const;
@@ -44,9 +52,11 @@ public:
 	void setServiceId(const std::string &serviceId);
 
 private:
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string nextToken_;
 	std::string serviceName_;
+	std::vector<Tag> tag_;
 	std::string serviceType_;
 	int maxResults_;
 	std::string serviceId_;

+ 13 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesByEndUserResult.h

@@ -34,13 +34,22 @@ namespace AlibabaCloud
 			public:
 				struct Service
 				{
+					struct TagModel
+					{
+						std::string value;
+						std::string key;
+					};
 					std::string payer;
+					std::string resourceGroupId;
 					std::string serviceName;
 					std::string serviceType;
 					std::string serviceDescription;
+					std::string serviceResourceType;
 					std::string privateServiceName;
+					std::vector<Service::TagModel> tags;
 					std::string serviceDomain;
 					std::string serviceId;
+					bool serviceSupportIPv6;
 					std::vector<std::string> zones;
 				};
 
@@ -49,15 +58,17 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointServicesByEndUserResult(const std::string &payload);
 				~ListVpcEndpointServicesByEndUserResult();
 				std::vector<Service> getServices()const;
+				std::string getTotalCount()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<Service> services_;
+				std::string totalCount_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 
 			};
 		}

+ 10 - 0
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesRequest.h

@@ -28,6 +28,10 @@ namespace Privatelink {
 namespace Model {
 class ALIBABACLOUD_PRIVATELINK_EXPORT ListVpcEndpointServicesRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	ListVpcEndpointServicesRequest();
 	~ListVpcEndpointServicesRequest();
 	std::string getServiceBusinessStatus() const;
@@ -36,6 +40,8 @@ public:
 	void setAutoAcceptEnabled(bool autoAcceptEnabled);
 	std::string getServiceStatus() const;
 	void setServiceStatus(const std::string &serviceStatus);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getNextToken() const;
@@ -44,6 +50,8 @@ public:
 	void setZoneAffinityEnabled(bool zoneAffinityEnabled);
 	std::string getServiceName() const;
 	void setServiceName(const std::string &serviceName);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getResourceId() const;
 	void setResourceId(const std::string &resourceId);
 	std::string getServiceResourceType() const;
@@ -57,10 +65,12 @@ private:
 	std::string serviceBusinessStatus_;
 	bool autoAcceptEnabled_;
 	std::string serviceStatus_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string nextToken_;
 	bool zoneAffinityEnabled_;
 	std::string serviceName_;
+	std::vector<Tag> tag_;
 	std::string resourceId_;
 	std::string serviceResourceType_;
 	int maxResults_;

+ 12 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointServicesResult.h

@@ -34,7 +34,13 @@ namespace AlibabaCloud
 			public:
 				struct Service
 				{
+					struct TagModel
+					{
+						std::string value;
+						std::string key;
+					};
 					std::string payer;
+					std::string resourceGroupId;
 					std::string serviceDescription;
 					std::string createTime;
 					int maxBandwidth;
@@ -42,6 +48,7 @@ namespace AlibabaCloud
 					std::string serviceDomain;
 					bool autoAcceptEnabled;
 					std::string serviceId;
+					bool serviceSupportIPv6;
 					std::string serviceBusinessStatus;
 					std::string serviceName;
 					std::string serviceStatus;
@@ -49,6 +56,7 @@ namespace AlibabaCloud
 					int connectBandwidth;
 					std::string serviceResourceType;
 					std::string regionId;
+					std::vector<Service::TagModel> tags;
 					bool zoneAffinityEnabled;
 				};
 
@@ -57,15 +65,17 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointServicesResult(const std::string &payload);
 				~ListVpcEndpointServicesResult();
 				std::vector<Service> getServices()const;
+				int getTotalCount()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<Service> services_;
+				int totalCount_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 
 			};
 		}

+ 5 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointZonesResult.h

@@ -34,9 +34,12 @@ namespace AlibabaCloud
 			public:
 				struct Zone
 				{
+					long nsiIndex;
 					std::string zoneId;
 					std::string eniId;
+					std::string zoneIpv6Address;
 					std::string serviceStatus;
+					std::string nsiIndexString;
 					std::string vSwitchId;
 					std::string eniIp;
 					std::string zoneStatus;
@@ -49,14 +52,14 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointZonesResult(const std::string &payload);
 				~ListVpcEndpointZonesResult();
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 				std::vector<Zone> getZones()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 				std::vector<Zone> zones_;
 
 			};

+ 10 - 0
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointsRequest.h

@@ -28,12 +28,18 @@ namespace Privatelink {
 namespace Model {
 class ALIBABACLOUD_PRIVATELINK_EXPORT ListVpcEndpointsRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	ListVpcEndpointsRequest();
 	~ListVpcEndpointsRequest();
 	std::string getEndpointId() const;
 	void setEndpointId(const std::string &endpointId);
 	std::string getEndpointStatus() const;
 	void setEndpointStatus(const std::string &endpointStatus);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getNextToken() const;
@@ -42,6 +48,8 @@ public:
 	void setEndpointType(const std::string &endpointType);
 	std::string getServiceName() const;
 	void setServiceName(const std::string &serviceName);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getConnectionStatus() const;
 	void setConnectionStatus(const std::string &connectionStatus);
 	std::string getVpcId() const;
@@ -54,10 +62,12 @@ public:
 private:
 	std::string endpointId_;
 	std::string endpointStatus_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string nextToken_;
 	std::string endpointType_;
 	std::string serviceName_;
+	std::vector<Tag> tag_;
 	std::string connectionStatus_;
 	std::string vpcId_;
 	std::string endpointName_;

+ 11 - 2
privatelink/include/alibabacloud/privatelink/model/ListVpcEndpointsResult.h

@@ -34,7 +34,13 @@ namespace AlibabaCloud
 			public:
 				struct Endpoint
 				{
+					struct TagModel
+					{
+						std::string value;
+						std::string key;
+					};
 					std::string endpointDomain;
+					std::string resourceGroupId;
 					std::string createTime;
 					bool resourceOwner;
 					std::string endpointBusinessStatus;
@@ -49,6 +55,7 @@ namespace AlibabaCloud
 					std::string endpointType;
 					std::string regionId;
 					std::string connectionStatus;
+					std::vector<Endpoint::TagModel> tags;
 					bool zoneAffinityEnabled;
 				};
 
@@ -57,15 +64,17 @@ namespace AlibabaCloud
 				explicit ListVpcEndpointsResult(const std::string &payload);
 				~ListVpcEndpointsResult();
 				std::vector<Endpoint> getEndpoints()const;
+				int getTotalCount()const;
 				std::string getNextToken()const;
-				std::string getMaxResults()const;
+				int getMaxResults()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<Endpoint> endpoints_;
+				int totalCount_;
 				std::string nextToken_;
-				std::string maxResults_;
+				int maxResults_;
 
 			};
 		}

+ 51 - 0
privatelink/include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyRequest.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_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYREQUEST_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYREQUEST_H_
+
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Privatelink {
+namespace Model {
+class ALIBABACLOUD_PRIVATELINK_EXPORT NotifyResourceAddressFamilyRequest : public RpcServiceRequest {
+public:
+	NotifyResourceAddressFamilyRequest();
+	~NotifyResourceAddressFamilyRequest();
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getAddressFamily() const;
+	void setAddressFamily(const std::string &addressFamily);
+	std::string getIpv6Address() const;
+	void setIpv6Address(const std::string &ipv6Address);
+
+private:
+	std::string resourceId_;
+	std::string resourceType_;
+	std::string addressFamily_;
+	std::string ipv6Address_;
+};
+} // namespace Model
+} // namespace Privatelink
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYREQUEST_H_

+ 49 - 0
privatelink/include/alibabacloud/privatelink/model/NotifyResourceAddressFamilyResult.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_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYRESULT_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Privatelink
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_PRIVATELINK_EXPORT NotifyResourceAddressFamilyResult : public ServiceResult
+			{
+			public:
+
+
+				NotifyResourceAddressFamilyResult();
+				explicit NotifyResourceAddressFamilyResult(const std::string &payload);
+				~NotifyResourceAddressFamilyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_NOTIFYRESOURCEADDRESSFAMILYRESULT_H_

+ 3 - 0
privatelink/include/alibabacloud/privatelink/model/RemoveUserFromVpcEndpointServiceRequest.h

@@ -32,6 +32,8 @@ public:
 	~RemoveUserFromVpcEndpointServiceRequest();
 	std::string getClientToken() const;
 	void setClientToken(const std::string &clientToken);
+	std::string getUserARN() const;
+	void setUserARN(const std::string &userARN);
 	long getUserId() const;
 	void setUserId(long userId);
 	std::string getRegionId() const;
@@ -43,6 +45,7 @@ public:
 
 private:
 	std::string clientToken_;
+	std::string userARN_;
 	long userId_;
 	std::string regionId_;
 	bool dryRun_;

+ 61 - 0
privatelink/include/alibabacloud/privatelink/model/TagResourcesRequest.h

@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_PRIVATELINK_MODEL_TAGRESOURCESREQUEST_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_TAGRESOURCESREQUEST_H_
+
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Privatelink {
+namespace Model {
+class ALIBABACLOUD_PRIVATELINK_EXPORT TagResourcesRequest : public RpcServiceRequest {
+public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
+	TagResourcesRequest();
+	~TagResourcesRequest();
+	std::vector<std::string> getResourceId() const;
+	void setResourceId(const std::vector<std::string> &resourceId);
+	bool getDryRun() const;
+	void setDryRun(bool dryRun);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
+
+private:
+	std::vector<std::string> resourceId_;
+	bool dryRun_;
+	std::string clientToken_;
+	std::string resourceType_;
+	std::string regionId_;
+	std::vector<Tag> tag_;
+};
+} // namespace Model
+} // namespace Privatelink
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_TAGRESOURCESREQUEST_H_

+ 49 - 0
privatelink/include/alibabacloud/privatelink/model/TagResourcesResult.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_PRIVATELINK_MODEL_TAGRESOURCESRESULT_H_
+#define ALIBABACLOUD_PRIVATELINK_MODEL_TAGRESOURCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/privatelink/PrivatelinkExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Privatelink
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_PRIVATELINK_EXPORT TagResourcesResult : public ServiceResult
+			{
+			public:
+
+
+				TagResourcesResult();
+				explicit TagResourcesResult(const std::string &payload);
+				~TagResourcesResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_PRIVATELINK_MODEL_TAGRESOURCESRESULT_H_

+ 3 - 0
privatelink/include/alibabacloud/privatelink/model/UpdateVpcEndpointServiceAttributeRequest.h

@@ -46,6 +46,8 @@ public:
 	void setZoneAffinityEnabled(bool zoneAffinityEnabled);
 	bool getDryRun() const;
 	void setDryRun(bool dryRun);
+	bool getServiceSupportIPv6() const;
+	void setServiceSupportIPv6(bool serviceSupportIPv6);
 	std::string getServiceDescription() const;
 	void setServiceDescription(const std::string &serviceDescription);
 	std::string getServiceId() const;
@@ -60,6 +62,7 @@ private:
 	std::string regionId_;
 	bool zoneAffinityEnabled_;
 	bool dryRun_;
+	bool serviceSupportIPv6_;
 	std::string serviceDescription_;
 	std::string serviceId_;
 };

+ 144 - 0
privatelink/src/PrivatelinkClient.cc

@@ -195,6 +195,42 @@ PrivatelinkClient::AttachSecurityGroupToVpcEndpointOutcomeCallable PrivatelinkCl
 	return task->get_future();
 }
 
+PrivatelinkClient::ChangeResourceGroupOutcome PrivatelinkClient::changeResourceGroup(const ChangeResourceGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ChangeResourceGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ChangeResourceGroupOutcome(ChangeResourceGroupResult(outcome.result()));
+	else
+		return ChangeResourceGroupOutcome(outcome.error());
+}
+
+void PrivatelinkClient::changeResourceGroupAsync(const ChangeResourceGroupRequest& request, const ChangeResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, changeResourceGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+PrivatelinkClient::ChangeResourceGroupOutcomeCallable PrivatelinkClient::changeResourceGroupCallable(const ChangeResourceGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ChangeResourceGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->changeResourceGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 PrivatelinkClient::CheckProductOpenOutcome PrivatelinkClient::checkProductOpen(const CheckProductOpenRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -231,6 +267,42 @@ PrivatelinkClient::CheckProductOpenOutcomeCallable PrivatelinkClient::checkProdu
 	return task->get_future();
 }
 
+PrivatelinkClient::CheckResourceSupportOperateOutcome PrivatelinkClient::checkResourceSupportOperate(const CheckResourceSupportOperateRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CheckResourceSupportOperateOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CheckResourceSupportOperateOutcome(CheckResourceSupportOperateResult(outcome.result()));
+	else
+		return CheckResourceSupportOperateOutcome(outcome.error());
+}
+
+void PrivatelinkClient::checkResourceSupportOperateAsync(const CheckResourceSupportOperateRequest& request, const CheckResourceSupportOperateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, checkResourceSupportOperate(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+PrivatelinkClient::CheckResourceSupportOperateOutcomeCallable PrivatelinkClient::checkResourceSupportOperateCallable(const CheckResourceSupportOperateRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CheckResourceSupportOperateOutcome()>>(
+			[this, request]()
+			{
+			return this->checkResourceSupportOperate(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 PrivatelinkClient::CreateVpcEndpointOutcome PrivatelinkClient::createVpcEndpoint(const CreateVpcEndpointRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1023,6 +1095,42 @@ PrivatelinkClient::ListVpcEndpointsOutcomeCallable PrivatelinkClient::listVpcEnd
 	return task->get_future();
 }
 
+PrivatelinkClient::NotifyResourceAddressFamilyOutcome PrivatelinkClient::notifyResourceAddressFamily(const NotifyResourceAddressFamilyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return NotifyResourceAddressFamilyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return NotifyResourceAddressFamilyOutcome(NotifyResourceAddressFamilyResult(outcome.result()));
+	else
+		return NotifyResourceAddressFamilyOutcome(outcome.error());
+}
+
+void PrivatelinkClient::notifyResourceAddressFamilyAsync(const NotifyResourceAddressFamilyRequest& request, const NotifyResourceAddressFamilyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, notifyResourceAddressFamily(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+PrivatelinkClient::NotifyResourceAddressFamilyOutcomeCallable PrivatelinkClient::notifyResourceAddressFamilyCallable(const NotifyResourceAddressFamilyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<NotifyResourceAddressFamilyOutcome()>>(
+			[this, request]()
+			{
+			return this->notifyResourceAddressFamily(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 PrivatelinkClient::OpenPrivateLinkServiceOutcome PrivatelinkClient::openPrivateLinkService(const OpenPrivateLinkServiceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1131,6 +1239,42 @@ PrivatelinkClient::RemoveZoneFromVpcEndpointOutcomeCallable PrivatelinkClient::r
 	return task->get_future();
 }
 
+PrivatelinkClient::TagResourcesOutcome PrivatelinkClient::tagResources(const TagResourcesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return TagResourcesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return TagResourcesOutcome(TagResourcesResult(outcome.result()));
+	else
+		return TagResourcesOutcome(outcome.error());
+}
+
+void PrivatelinkClient::tagResourcesAsync(const TagResourcesRequest& request, const TagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, tagResources(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+PrivatelinkClient::TagResourcesOutcomeCallable PrivatelinkClient::tagResourcesCallable(const TagResourcesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<TagResourcesOutcome()>>(
+			[this, request]()
+			{
+			return this->tagResources(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 PrivatelinkClient::UpdateVpcEndpointAttributeOutcome PrivatelinkClient::updateVpcEndpointAttribute(const UpdateVpcEndpointAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 9 - 0
privatelink/src/model/AddUserToVpcEndpointServiceRequest.cc

@@ -34,6 +34,15 @@ void AddUserToVpcEndpointServiceRequest::setClientToken(const std::string &clien
   setParameter(std::string("ClientToken"), clientToken);
 }
 
+std::string AddUserToVpcEndpointServiceRequest::getUserARN() const {
+  return userARN_;
+}
+
+void AddUserToVpcEndpointServiceRequest::setUserARN(const std::string &userARN) {
+  userARN_ = userARN;
+  setParameter(std::string("UserARN"), userARN);
+}
+
 long AddUserToVpcEndpointServiceRequest::getUserId() const {
   return userId_;
 }

+ 72 - 0
privatelink/src/model/ChangeResourceGroupRequest.cc

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/privatelink/model/ChangeResourceGroupRequest.h>
+
+using AlibabaCloud::Privatelink::Model::ChangeResourceGroupRequest;
+
+ChangeResourceGroupRequest::ChangeResourceGroupRequest()
+    : RpcServiceRequest("privatelink", "2020-04-15", "ChangeResourceGroup") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ChangeResourceGroupRequest::~ChangeResourceGroupRequest() {}
+
+std::string ChangeResourceGroupRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void ChangeResourceGroupRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
+std::string ChangeResourceGroupRequest::getResourceRegionId() const {
+  return resourceRegionId_;
+}
+
+void ChangeResourceGroupRequest::setResourceRegionId(const std::string &resourceRegionId) {
+  resourceRegionId_ = resourceRegionId;
+  setParameter(std::string("ResourceRegionId"), resourceRegionId);
+}
+
+std::string ChangeResourceGroupRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void ChangeResourceGroupRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string ChangeResourceGroupRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void ChangeResourceGroupRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string ChangeResourceGroupRequest::getService() const {
+  return service_;
+}
+
+void ChangeResourceGroupRequest::setService(const std::string &service) {
+  service_ = service;
+  setParameter(std::string("Service"), service);
+}
+

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

+ 54 - 0
privatelink/src/model/CheckResourceSupportOperateRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * 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/privatelink/model/CheckResourceSupportOperateRequest.h>
+
+using AlibabaCloud::Privatelink::Model::CheckResourceSupportOperateRequest;
+
+CheckResourceSupportOperateRequest::CheckResourceSupportOperateRequest()
+    : RpcServiceRequest("privatelink", "2020-04-15", "CheckResourceSupportOperate") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CheckResourceSupportOperateRequest::~CheckResourceSupportOperateRequest() {}
+
+std::string CheckResourceSupportOperateRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void CheckResourceSupportOperateRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string CheckResourceSupportOperateRequest::getZoneId() const {
+  return zoneId_;
+}
+
+void CheckResourceSupportOperateRequest::setZoneId(const std::string &zoneId) {
+  zoneId_ = zoneId;
+  setParameter(std::string("ZoneId"), zoneId);
+}
+
+std::string CheckResourceSupportOperateRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void CheckResourceSupportOperateRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+

+ 58 - 0
privatelink/src/model/CheckResourceSupportOperateResult.cc

@@ -0,0 +1,58 @@
+/*
+ * 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/privatelink/model/CheckResourceSupportOperateResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Privatelink;
+using namespace AlibabaCloud::Privatelink::Model;
+
+CheckResourceSupportOperateResult::CheckResourceSupportOperateResult() :
+	ServiceResult()
+{}
+
+CheckResourceSupportOperateResult::CheckResourceSupportOperateResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CheckResourceSupportOperateResult::~CheckResourceSupportOperateResult()
+{}
+
+void CheckResourceSupportOperateResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["ResourceZoneCanBeDeleted"].isNull())
+		resourceZoneCanBeDeleted_ = value["ResourceZoneCanBeDeleted"].asString() == "true";
+	if(!value["ResourceCanBeDowngraded"].isNull())
+		resourceCanBeDowngraded_ = value["ResourceCanBeDowngraded"].asString() == "true";
+
+}
+
+bool CheckResourceSupportOperateResult::getResourceCanBeDowngraded()const
+{
+	return resourceCanBeDowngraded_;
+}
+
+bool CheckResourceSupportOperateResult::getResourceZoneCanBeDeleted()const
+{
+	return resourceZoneCanBeDeleted_;
+}
+

+ 38 - 0
privatelink/src/model/CreateVpcEndpointRequest.cc

@@ -34,6 +34,21 @@ void CreateVpcEndpointRequest::setClientToken(const std::string &clientToken) {
   setParameter(std::string("ClientToken"), clientToken);
 }
 
+std::vector<CreateVpcEndpointRequest::SystemTag> CreateVpcEndpointRequest::getSystemTag() const {
+  return systemTag_;
+}
+
+void CreateVpcEndpointRequest::setSystemTag(const std::vector<CreateVpcEndpointRequest::SystemTag> &systemTag) {
+  systemTag_ = systemTag;
+  for(int dep1 = 0; dep1 != systemTag.size(); dep1++) {
+  auto systemTagObj = systemTag.at(dep1);
+  std::string systemTagObjStr = std::string("SystemTag") + "." + std::to_string(dep1 + 1);
+    setParameter(systemTagObjStr + ".Key", systemTagObj.key);
+    setParameter(systemTagObjStr + ".Value", systemTagObj.value);
+    setParameter(systemTagObjStr + ".Scope", systemTagObj.scope);
+  }
+}
+
 std::vector<std::string> CreateVpcEndpointRequest::getSecurityGroupId() const {
   return securityGroupId_;
 }
@@ -42,6 +57,15 @@ void CreateVpcEndpointRequest::setSecurityGroupId(const std::vector<std::string>
   securityGroupId_ = securityGroupId;
 }
 
+std::string CreateVpcEndpointRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void CreateVpcEndpointRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string CreateVpcEndpointRequest::getRegionId() const {
   return regionId_;
 }
@@ -84,6 +108,20 @@ void CreateVpcEndpointRequest::setServiceName(const std::string &serviceName) {
   setParameter(std::string("ServiceName"), serviceName);
 }
 
+std::vector<CreateVpcEndpointRequest::Tag> CreateVpcEndpointRequest::getTag() const {
+  return tag_;
+}
+
+void CreateVpcEndpointRequest::setTag(const std::vector<CreateVpcEndpointRequest::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 + ".Key", tagObj.key);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+  }
+}
+
 bool CreateVpcEndpointRequest::getDryRun() const {
   return dryRun_;
 }

+ 47 - 0
privatelink/src/model/CreateVpcEndpointServiceRequest.cc

@@ -61,6 +61,21 @@ void CreateVpcEndpointServiceRequest::setClientToken(const std::string &clientTo
   setParameter(std::string("ClientToken"), clientToken);
 }
 
+std::vector<CreateVpcEndpointServiceRequest::SystemTag> CreateVpcEndpointServiceRequest::getSystemTag() const {
+  return systemTag_;
+}
+
+void CreateVpcEndpointServiceRequest::setSystemTag(const std::vector<CreateVpcEndpointServiceRequest::SystemTag> &systemTag) {
+  systemTag_ = systemTag;
+  for(int dep1 = 0; dep1 != systemTag.size(); dep1++) {
+  auto systemTagObj = systemTag.at(dep1);
+  std::string systemTagObjStr = std::string("SystemTag") + "." + std::to_string(dep1 + 1);
+    setParameter(systemTagObjStr + ".Key", systemTagObj.key);
+    setParameter(systemTagObjStr + ".Value", systemTagObj.value);
+    setParameter(systemTagObjStr + ".Scope", systemTagObj.scope);
+  }
+}
+
 std::string CreateVpcEndpointServiceRequest::getPayer() const {
   return payer_;
 }
@@ -70,6 +85,15 @@ void CreateVpcEndpointServiceRequest::setPayer(const std::string &payer) {
   setParameter(std::string("Payer"), payer);
 }
 
+std::string CreateVpcEndpointServiceRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void CreateVpcEndpointServiceRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string CreateVpcEndpointServiceRequest::getRegionId() const {
   return regionId_;
 }
@@ -88,6 +112,20 @@ void CreateVpcEndpointServiceRequest::setZoneAffinityEnabled(bool zoneAffinityEn
   setParameter(std::string("ZoneAffinityEnabled"), zoneAffinityEnabled ? "true" : "false");
 }
 
+std::vector<CreateVpcEndpointServiceRequest::Tag> CreateVpcEndpointServiceRequest::getTag() const {
+  return tag_;
+}
+
+void CreateVpcEndpointServiceRequest::setTag(const std::vector<CreateVpcEndpointServiceRequest::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 + ".Key", tagObj.key);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+  }
+}
+
 bool CreateVpcEndpointServiceRequest::getDryRun() const {
   return dryRun_;
 }
@@ -121,6 +159,15 @@ void CreateVpcEndpointServiceRequest::setServiceResourceType(const std::string &
   setParameter(std::string("ServiceResourceType"), serviceResourceType);
 }
 
+bool CreateVpcEndpointServiceRequest::getServiceSupportIPv6() const {
+  return serviceSupportIPv6_;
+}
+
+void CreateVpcEndpointServiceRequest::setServiceSupportIPv6(bool serviceSupportIPv6) {
+  serviceSupportIPv6_ = serviceSupportIPv6;
+  setParameter(std::string("ServiceSupportIPv6"), serviceSupportIPv6 ? "true" : "false");
+}
+
 std::string CreateVpcEndpointServiceRequest::getServiceDescription() const {
   return serviceDescription_;
 }

+ 14 - 0
privatelink/src/model/CreateVpcEndpointServiceResult.cc

@@ -57,6 +57,10 @@ void CreateVpcEndpointServiceResult::parse(const std::string &payload)
 		autoAcceptEnabled_ = value["AutoAcceptEnabled"].asString() == "true";
 	if(!value["ServiceId"].isNull())
 		serviceId_ = value["ServiceId"].asString();
+	if(!value["ServiceSupportIPv6"].isNull())
+		serviceSupportIPv6_ = value["ServiceSupportIPv6"].asString() == "true";
+	if(!value["ResourceGroupId"].isNull())
+		resourceGroupId_ = value["ResourceGroupId"].asString();
 
 }
 
@@ -65,6 +69,11 @@ std::string CreateVpcEndpointServiceResult::getServiceBusinessStatus()const
 	return serviceBusinessStatus_;
 }
 
+std::string CreateVpcEndpointServiceResult::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
 std::string CreateVpcEndpointServiceResult::getServiceName()const
 {
 	return serviceName_;
@@ -105,3 +114,8 @@ std::string CreateVpcEndpointServiceResult::getServiceId()const
 	return serviceId_;
 }
 
+bool CreateVpcEndpointServiceResult::getServiceSupportIPv6()const
+{
+	return serviceSupportIPv6_;
+}
+

+ 9 - 0
privatelink/src/model/DescribeZonesRequest.cc

@@ -34,3 +34,12 @@ void DescribeZonesRequest::setRegionId(const std::string &regionId) {
   setParameter(std::string("RegionId"), regionId);
 }
 
+std::string DescribeZonesRequest::getServiceResourceType() const {
+  return serviceResourceType_;
+}
+
+void DescribeZonesRequest::setServiceResourceType(const std::string &serviceResourceType) {
+  serviceResourceType_ = serviceResourceType;
+  setParameter(std::string("ServiceResourceType"), serviceResourceType);
+}
+

+ 7 - 0
privatelink/src/model/GetVpcEndpointAttributeResult.cc

@@ -77,6 +77,8 @@ void GetVpcEndpointAttributeResult::parse(const std::string &payload)
 		zoneAffinityEnabled_ = value["ZoneAffinityEnabled"].asString() == "true";
 	if(!value["PrivateServiceName"].isNull())
 		privateServiceName_ = value["PrivateServiceName"].asString();
+	if(!value["ResourceGroupId"].isNull())
+		resourceGroupId_ = value["ResourceGroupId"].asString();
 
 }
 
@@ -90,6 +92,11 @@ std::string GetVpcEndpointAttributeResult::getEndpointDomain()const
 	return endpointDomain_;
 }
 
+std::string GetVpcEndpointAttributeResult::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
 std::string GetVpcEndpointAttributeResult::getCreateTime()const
 {
 	return createTime_;

+ 55 - 41
privatelink/src/model/GetVpcEndpointServiceAttributeResult.cc

@@ -88,27 +88,16 @@ void GetVpcEndpointServiceAttributeResult::parse(const std::string &payload)
 		privateServiceDomainVerifyValue_ = value["PrivateServiceDomainVerifyValue"].asString();
 	if(!value["PrivateServiceName"].isNull())
 		privateServiceName_ = value["PrivateServiceName"].asString();
+	if(!value["ServiceSupportIPv6"].isNull())
+		serviceSupportIPv6_ = value["ServiceSupportIPv6"].asString() == "true";
+	if(!value["ResourceGroupId"].isNull())
+		resourceGroupId_ = value["ResourceGroupId"].asString();
 
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getPayer()const
-{
-	return payer_;
-}
-
-std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainBusinessStatus()const
-{
-	return privateServiceDomainBusinessStatus_;
-}
-
-std::string GetVpcEndpointServiceAttributeResult::getServiceDescription()const
+std::string GetVpcEndpointServiceAttributeResult::getResourceGroupId()const
 {
-	return serviceDescription_;
-}
-
-std::string GetVpcEndpointServiceAttributeResult::getCreateTime()const
-{
-	return createTime_;
+	return resourceGroupId_;
 }
 
 int GetVpcEndpointServiceAttributeResult::getMaxBandwidth()const
@@ -116,11 +105,6 @@ int GetVpcEndpointServiceAttributeResult::getMaxBandwidth()const
 	return maxBandwidth_;
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomain()const
-{
-	return privateServiceDomain_;
-}
-
 bool GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainEnabled()const
 {
 	return privateServiceDomainEnabled_;
@@ -131,11 +115,6 @@ int GetVpcEndpointServiceAttributeResult::getMinBandwidth()const
 	return minBandwidth_;
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getServiceDomain()const
-{
-	return serviceDomain_;
-}
-
 std::vector<std::string> GetVpcEndpointServiceAttributeResult::getZones()const
 {
 	return zones_;
@@ -151,14 +130,14 @@ std::string GetVpcEndpointServiceAttributeResult::getServiceId()const
 	return serviceId_;
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainVerifyStatus()const
+bool GetVpcEndpointServiceAttributeResult::getServiceSupportIPv6()const
 {
-	return privateServiceDomainVerifyStatus_;
+	return serviceSupportIPv6_;
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getServiceBusinessStatus()const
+std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainVerifyStatus()const
 {
-	return serviceBusinessStatus_;
+	return privateServiceDomainVerifyStatus_;
 }
 
 std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainVerifyName()const
@@ -166,11 +145,6 @@ std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainVerifyN
 	return privateServiceDomainVerifyName_;
 }
 
-std::string GetVpcEndpointServiceAttributeResult::getServiceName()const
-{
-	return serviceName_;
-}
-
 std::string GetVpcEndpointServiceAttributeResult::getServiceStatus()const
 {
 	return serviceStatus_;
@@ -181,11 +155,6 @@ std::string GetVpcEndpointServiceAttributeResult::getServiceType()const
 	return serviceType_;
 }
 
-int GetVpcEndpointServiceAttributeResult::getConnectBandwidth()const
-{
-	return connectBandwidth_;
-}
-
 std::string GetVpcEndpointServiceAttributeResult::getServiceResourceType()const
 {
 	return serviceResourceType_;
@@ -196,6 +165,51 @@ std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceName()const
 	return privateServiceName_;
 }
 
+std::string GetVpcEndpointServiceAttributeResult::getPayer()const
+{
+	return payer_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomainBusinessStatus()const
+{
+	return privateServiceDomainBusinessStatus_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getServiceDescription()const
+{
+	return serviceDescription_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getPrivateServiceDomain()const
+{
+	return privateServiceDomain_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getServiceDomain()const
+{
+	return serviceDomain_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getServiceBusinessStatus()const
+{
+	return serviceBusinessStatus_;
+}
+
+std::string GetVpcEndpointServiceAttributeResult::getServiceName()const
+{
+	return serviceName_;
+}
+
+int GetVpcEndpointServiceAttributeResult::getConnectBandwidth()const
+{
+	return connectBandwidth_;
+}
+
 std::string GetVpcEndpointServiceAttributeResult::getRegionId()const
 {
 	return regionId_;

+ 18 - 0
privatelink/src/model/ListVpcEndpointConnectionsRequest.cc

@@ -52,6 +52,15 @@ void ListVpcEndpointConnectionsRequest::setReplacedResourceId(const std::string
   setParameter(std::string("ReplacedResourceId"), replacedResourceId);
 }
 
+std::string ListVpcEndpointConnectionsRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void ListVpcEndpointConnectionsRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string ListVpcEndpointConnectionsRequest::getRegionId() const {
   return regionId_;
 }
@@ -70,6 +79,15 @@ void ListVpcEndpointConnectionsRequest::setNextToken(const std::string &nextToke
   setParameter(std::string("NextToken"), nextToken);
 }
 
+long ListVpcEndpointConnectionsRequest::getConnectionId() const {
+  return connectionId_;
+}
+
+void ListVpcEndpointConnectionsRequest::setConnectionId(long connectionId) {
+  connectionId_ = connectionId;
+  setParameter(std::string("ConnectionId"), std::to_string(connectionId));
+}
+
 std::string ListVpcEndpointConnectionsRequest::getResourceId() const {
   return resourceId_;
 }

+ 15 - 2
privatelink/src/model/ListVpcEndpointConnectionsResult.cc

@@ -59,6 +59,8 @@ void ListVpcEndpointConnectionsResult::parse(const std::string &payload)
 			connectionsObject.endpointId = valueConnectionsConnection["EndpointId"].asString();
 		if(!valueConnectionsConnection["EndpointVpcId"].isNull())
 			connectionsObject.endpointVpcId = valueConnectionsConnection["EndpointVpcId"].asString();
+		if(!valueConnectionsConnection["ResourceGroupId"].isNull())
+			connectionsObject.resourceGroupId = valueConnectionsConnection["ResourceGroupId"].asString();
 		auto allZonesNode = valueConnectionsConnection["Zones"]["Zone"];
 		for (auto valueConnectionsConnectionZonesZone : allZonesNode)
 		{
@@ -81,6 +83,10 @@ void ListVpcEndpointConnectionsResult::parse(const std::string &payload)
 				zonesObject.replacedEniId = valueConnectionsConnectionZonesZone["ReplacedEniId"].asString();
 			if(!valueConnectionsConnectionZonesZone["StatusInfo"].isNull())
 				zonesObject.statusInfo = valueConnectionsConnectionZonesZone["StatusInfo"].asString();
+			if(!valueConnectionsConnectionZonesZone["ConnectionId"].isNull())
+				zonesObject.connectionId = std::stol(valueConnectionsConnectionZonesZone["ConnectionId"].asString());
+			if(!valueConnectionsConnectionZonesZone["ConnectionStringId"].isNull())
+				zonesObject.connectionStringId = valueConnectionsConnectionZonesZone["ConnectionStringId"].asString();
 			connectionsObject.zones.push_back(zonesObject);
 		}
 		connections_.push_back(connectionsObject);
@@ -88,7 +94,9 @@ void ListVpcEndpointConnectionsResult::parse(const std::string &payload)
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = value["TotalCount"].asString();
 
 }
 
@@ -97,12 +105,17 @@ std::vector<ListVpcEndpointConnectionsResult::Connection> ListVpcEndpointConnect
 	return connections_;
 }
 
+std::string ListVpcEndpointConnectionsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
 std::string ListVpcEndpointConnectionsResult::getNextToken()const
 {
 	return nextToken_;
 }
 
-std::string ListVpcEndpointConnectionsResult::getMaxResults()const
+int ListVpcEndpointConnectionsResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 2 - 2
privatelink/src/model/ListVpcEndpointSecurityGroupsResult.cc

@@ -50,7 +50,7 @@ void ListVpcEndpointSecurityGroupsResult::parse(const std::string &payload)
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
 
 }
 
@@ -64,7 +64,7 @@ std::string ListVpcEndpointSecurityGroupsResult::getNextToken()const
 	return nextToken_;
 }
 
-std::string ListVpcEndpointSecurityGroupsResult::getMaxResults()const
+int ListVpcEndpointSecurityGroupsResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 4 - 2
privatelink/src/model/ListVpcEndpointServiceResourcesResult.cc

@@ -65,12 +65,14 @@ void ListVpcEndpointServiceResourcesResult::parse(const std::string &payload)
 			resourcesObject.autoAllocatedEnabled = valueResourcesResource["AutoAllocatedEnabled"].asString() == "true";
 		if(!valueResourcesResource["StatusInfo"].isNull())
 			resourcesObject.statusInfo = valueResourcesResource["StatusInfo"].asString();
+		if(!valueResourcesResource["ResourceSupportIPv6"].isNull())
+			resourcesObject.resourceSupportIPv6 = valueResourcesResource["ResourceSupportIPv6"].asString() == "true";
 		resources_.push_back(resourcesObject);
 	}
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
 
 }
 
@@ -79,7 +81,7 @@ std::string ListVpcEndpointServiceResourcesResult::getNextToken()const
 	return nextToken_;
 }
 
-std::string ListVpcEndpointServiceResourcesResult::getMaxResults()const
+int ListVpcEndpointServiceResourcesResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 9 - 0
privatelink/src/model/ListVpcEndpointServiceUsersRequest.cc

@@ -25,6 +25,15 @@ ListVpcEndpointServiceUsersRequest::ListVpcEndpointServiceUsersRequest()
 
 ListVpcEndpointServiceUsersRequest::~ListVpcEndpointServiceUsersRequest() {}
 
+std::string ListVpcEndpointServiceUsersRequest::getUserListType() const {
+  return userListType_;
+}
+
+void ListVpcEndpointServiceUsersRequest::setUserListType(const std::string &userListType) {
+  userListType_ = userListType;
+  setParameter(std::string("UserListType"), userListType);
+}
+
 long ListVpcEndpointServiceUsersRequest::getUserId() const {
   return userId_;
 }

+ 22 - 2
privatelink/src/model/ListVpcEndpointServiceUsersResult.cc

@@ -47,11 +47,26 @@ void ListVpcEndpointServiceUsersResult::parse(const std::string &payload)
 			usersObject.userId = std::stol(valueUsersUser["UserId"].asString());
 		users_.push_back(usersObject);
 	}
+	auto allUserARNsNode = value["UserARNs"]["UserARN"];
+	for (auto valueUserARNsUserARN : allUserARNsNode)
+	{
+		UserARN userARNsObject;
+		if(!valueUserARNsUserARN["UserARN"].isNull())
+			userARNsObject.userARN = valueUserARNsUserARN["UserARN"].asString();
+		userARNs_.push_back(userARNsObject);
+	}
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = value["TotalCount"].asString();
+
+}
 
+std::string ListVpcEndpointServiceUsersResult::getTotalCount()const
+{
+	return totalCount_;
 }
 
 std::string ListVpcEndpointServiceUsersResult::getNextToken()const
@@ -59,7 +74,7 @@ std::string ListVpcEndpointServiceUsersResult::getNextToken()const
 	return nextToken_;
 }
 
-std::string ListVpcEndpointServiceUsersResult::getMaxResults()const
+int ListVpcEndpointServiceUsersResult::getMaxResults()const
 {
 	return maxResults_;
 }
@@ -69,3 +84,8 @@ std::vector<ListVpcEndpointServiceUsersResult::User> ListVpcEndpointServiceUsers
 	return users_;
 }
 
+std::vector<ListVpcEndpointServiceUsersResult::UserARN> ListVpcEndpointServiceUsersResult::getUserARNs()const
+{
+	return userARNs_;
+}
+

+ 21 - 0
privatelink/src/model/ListVpcEndpointServicesByEndUserRequest.cc

@@ -25,6 +25,15 @@ ListVpcEndpointServicesByEndUserRequest::ListVpcEndpointServicesByEndUserRequest
 
 ListVpcEndpointServicesByEndUserRequest::~ListVpcEndpointServicesByEndUserRequest() {}
 
+std::string ListVpcEndpointServicesByEndUserRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void ListVpcEndpointServicesByEndUserRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string ListVpcEndpointServicesByEndUserRequest::getRegionId() const {
   return regionId_;
 }
@@ -52,6 +61,18 @@ void ListVpcEndpointServicesByEndUserRequest::setServiceName(const std::string &
   setParameter(std::string("ServiceName"), serviceName);
 }
 
+std::vector<ListVpcEndpointServicesByEndUserRequest::Tag> ListVpcEndpointServicesByEndUserRequest::getTag() const {
+  return tag_;
+}
+
+void ListVpcEndpointServicesByEndUserRequest::setTag(const std::vector<ListVpcEndpointServicesByEndUserRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Key", tag[dep1].key);
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Value", tag[dep1].value);
+  }
+}
+
 std::string ListVpcEndpointServicesByEndUserRequest::getServiceType() const {
   return serviceType_;
 }

+ 25 - 2
privatelink/src/model/ListVpcEndpointServicesByEndUserResult.cc

@@ -57,6 +57,22 @@ void ListVpcEndpointServicesByEndUserResult::parse(const std::string &payload)
 			servicesObject.serviceDescription = valueServicesService["ServiceDescription"].asString();
 		if(!valueServicesService["PrivateServiceName"].isNull())
 			servicesObject.privateServiceName = valueServicesService["PrivateServiceName"].asString();
+		if(!valueServicesService["ServiceSupportIPv6"].isNull())
+			servicesObject.serviceSupportIPv6 = valueServicesService["ServiceSupportIPv6"].asString() == "true";
+		if(!valueServicesService["ResourceGroupId"].isNull())
+			servicesObject.resourceGroupId = valueServicesService["ResourceGroupId"].asString();
+		if(!valueServicesService["ServiceResourceType"].isNull())
+			servicesObject.serviceResourceType = valueServicesService["ServiceResourceType"].asString();
+		auto allTagsNode = valueServicesService["Tags"]["TagModel"];
+		for (auto valueServicesServiceTagsTagModel : allTagsNode)
+		{
+			Service::TagModel tagsObject;
+			if(!valueServicesServiceTagsTagModel["Key"].isNull())
+				tagsObject.key = valueServicesServiceTagsTagModel["Key"].asString();
+			if(!valueServicesServiceTagsTagModel["Value"].isNull())
+				tagsObject.value = valueServicesServiceTagsTagModel["Value"].asString();
+			servicesObject.tags.push_back(tagsObject);
+		}
 		auto allZones = value["Zones"]["Zone"];
 		for (auto value : allZones)
 			servicesObject.zones.push_back(value.asString());
@@ -65,7 +81,9 @@ void ListVpcEndpointServicesByEndUserResult::parse(const std::string &payload)
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = value["TotalCount"].asString();
 
 }
 
@@ -74,12 +92,17 @@ std::vector<ListVpcEndpointServicesByEndUserResult::Service> ListVpcEndpointServ
 	return services_;
 }
 
+std::string ListVpcEndpointServicesByEndUserResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
 std::string ListVpcEndpointServicesByEndUserResult::getNextToken()const
 {
 	return nextToken_;
 }
 
-std::string ListVpcEndpointServicesByEndUserResult::getMaxResults()const
+int ListVpcEndpointServicesByEndUserResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 21 - 0
privatelink/src/model/ListVpcEndpointServicesRequest.cc

@@ -52,6 +52,15 @@ void ListVpcEndpointServicesRequest::setServiceStatus(const std::string &service
   setParameter(std::string("ServiceStatus"), serviceStatus);
 }
 
+std::string ListVpcEndpointServicesRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void ListVpcEndpointServicesRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string ListVpcEndpointServicesRequest::getRegionId() const {
   return regionId_;
 }
@@ -88,6 +97,18 @@ void ListVpcEndpointServicesRequest::setServiceName(const std::string &serviceNa
   setParameter(std::string("ServiceName"), serviceName);
 }
 
+std::vector<ListVpcEndpointServicesRequest::Tag> ListVpcEndpointServicesRequest::getTag() const {
+  return tag_;
+}
+
+void ListVpcEndpointServicesRequest::setTag(const std::vector<ListVpcEndpointServicesRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Key", tag[dep1].key);
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Value", tag[dep1].value);
+  }
+}
+
 std::string ListVpcEndpointServicesRequest::getResourceId() const {
   return resourceId_;
 }

+ 23 - 2
privatelink/src/model/ListVpcEndpointServicesResult.cc

@@ -75,12 +75,28 @@ void ListVpcEndpointServicesResult::parse(const std::string &payload)
 			servicesObject.serviceResourceType = valueServicesService["ServiceResourceType"].asString();
 		if(!valueServicesService["ServiceType"].isNull())
 			servicesObject.serviceType = valueServicesService["ServiceType"].asString();
+		if(!valueServicesService["ServiceSupportIPv6"].isNull())
+			servicesObject.serviceSupportIPv6 = valueServicesService["ServiceSupportIPv6"].asString() == "true";
+		if(!valueServicesService["ResourceGroupId"].isNull())
+			servicesObject.resourceGroupId = valueServicesService["ResourceGroupId"].asString();
+		auto allTagsNode = valueServicesService["Tags"]["TagModel"];
+		for (auto valueServicesServiceTagsTagModel : allTagsNode)
+		{
+			Service::TagModel tagsObject;
+			if(!valueServicesServiceTagsTagModel["Key"].isNull())
+				tagsObject.key = valueServicesServiceTagsTagModel["Key"].asString();
+			if(!valueServicesServiceTagsTagModel["Value"].isNull())
+				tagsObject.value = valueServicesServiceTagsTagModel["Value"].asString();
+			servicesObject.tags.push_back(tagsObject);
+		}
 		services_.push_back(servicesObject);
 	}
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
@@ -89,12 +105,17 @@ std::vector<ListVpcEndpointServicesResult::Service> ListVpcEndpointServicesResul
 	return services_;
 }
 
+int ListVpcEndpointServicesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
 std::string ListVpcEndpointServicesResult::getNextToken()const
 {
 	return nextToken_;
 }
 
-std::string ListVpcEndpointServicesResult::getMaxResults()const
+int ListVpcEndpointServicesResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 8 - 2
privatelink/src/model/ListVpcEndpointZonesResult.cc

@@ -59,12 +59,18 @@ void ListVpcEndpointZonesResult::parse(const std::string &payload)
 			zonesObject.zoneDomain = valueZonesZone["ZoneDomain"].asString();
 		if(!valueZonesZone["RegionId"].isNull())
 			zonesObject.regionId = valueZonesZone["RegionId"].asString();
+		if(!valueZonesZone["NsiIndex"].isNull())
+			zonesObject.nsiIndex = std::stol(valueZonesZone["NsiIndex"].asString());
+		if(!valueZonesZone["NsiIndexString"].isNull())
+			zonesObject.nsiIndexString = valueZonesZone["NsiIndexString"].asString();
+		if(!valueZonesZone["ZoneIpv6Address"].isNull())
+			zonesObject.zoneIpv6Address = valueZonesZone["ZoneIpv6Address"].asString();
 		zones_.push_back(zonesObject);
 	}
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
 
 }
 
@@ -73,7 +79,7 @@ std::string ListVpcEndpointZonesResult::getNextToken()const
 	return nextToken_;
 }
 
-std::string ListVpcEndpointZonesResult::getMaxResults()const
+int ListVpcEndpointZonesResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 21 - 0
privatelink/src/model/ListVpcEndpointsRequest.cc

@@ -43,6 +43,15 @@ void ListVpcEndpointsRequest::setEndpointStatus(const std::string &endpointStatu
   setParameter(std::string("EndpointStatus"), endpointStatus);
 }
 
+std::string ListVpcEndpointsRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void ListVpcEndpointsRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string ListVpcEndpointsRequest::getRegionId() const {
   return regionId_;
 }
@@ -79,6 +88,18 @@ void ListVpcEndpointsRequest::setServiceName(const std::string &serviceName) {
   setParameter(std::string("ServiceName"), serviceName);
 }
 
+std::vector<ListVpcEndpointsRequest::Tag> ListVpcEndpointsRequest::getTag() const {
+  return tag_;
+}
+
+void ListVpcEndpointsRequest::setTag(const std::vector<ListVpcEndpointsRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Key", tag[dep1].key);
+    setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Value", tag[dep1].value);
+  }
+}
+
 std::string ListVpcEndpointsRequest::getConnectionStatus() const {
   return connectionStatus_;
 }

+ 21 - 2
privatelink/src/model/ListVpcEndpointsResult.cc

@@ -75,12 +75,26 @@ void ListVpcEndpointsResult::parse(const std::string &payload)
 			endpointsObject.endpointBusinessStatus = valueEndpointsEndpoint["EndpointBusinessStatus"].asString();
 		if(!valueEndpointsEndpoint["ServiceName"].isNull())
 			endpointsObject.serviceName = valueEndpointsEndpoint["ServiceName"].asString();
+		if(!valueEndpointsEndpoint["ResourceGroupId"].isNull())
+			endpointsObject.resourceGroupId = valueEndpointsEndpoint["ResourceGroupId"].asString();
+		auto allTagsNode = valueEndpointsEndpoint["Tags"]["TagModel"];
+		for (auto valueEndpointsEndpointTagsTagModel : allTagsNode)
+		{
+			Endpoint::TagModel tagsObject;
+			if(!valueEndpointsEndpointTagsTagModel["Key"].isNull())
+				tagsObject.key = valueEndpointsEndpointTagsTagModel["Key"].asString();
+			if(!valueEndpointsEndpointTagsTagModel["Value"].isNull())
+				tagsObject.value = valueEndpointsEndpointTagsTagModel["Value"].asString();
+			endpointsObject.tags.push_back(tagsObject);
+		}
 		endpoints_.push_back(endpointsObject);
 	}
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
 	if(!value["MaxResults"].isNull())
-		maxResults_ = value["MaxResults"].asString();
+		maxResults_ = std::stoi(value["MaxResults"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
@@ -89,12 +103,17 @@ std::vector<ListVpcEndpointsResult::Endpoint> ListVpcEndpointsResult::getEndpoin
 	return endpoints_;
 }
 
+int ListVpcEndpointsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
 std::string ListVpcEndpointsResult::getNextToken()const
 {
 	return nextToken_;
 }
 
-std::string ListVpcEndpointsResult::getMaxResults()const
+int ListVpcEndpointsResult::getMaxResults()const
 {
 	return maxResults_;
 }

+ 63 - 0
privatelink/src/model/NotifyResourceAddressFamilyRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * 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/privatelink/model/NotifyResourceAddressFamilyRequest.h>
+
+using AlibabaCloud::Privatelink::Model::NotifyResourceAddressFamilyRequest;
+
+NotifyResourceAddressFamilyRequest::NotifyResourceAddressFamilyRequest()
+    : RpcServiceRequest("privatelink", "2020-04-15", "NotifyResourceAddressFamily") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+NotifyResourceAddressFamilyRequest::~NotifyResourceAddressFamilyRequest() {}
+
+std::string NotifyResourceAddressFamilyRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void NotifyResourceAddressFamilyRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string NotifyResourceAddressFamilyRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void NotifyResourceAddressFamilyRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string NotifyResourceAddressFamilyRequest::getAddressFamily() const {
+  return addressFamily_;
+}
+
+void NotifyResourceAddressFamilyRequest::setAddressFamily(const std::string &addressFamily) {
+  addressFamily_ = addressFamily;
+  setParameter(std::string("AddressFamily"), addressFamily);
+}
+
+std::string NotifyResourceAddressFamilyRequest::getIpv6Address() const {
+  return ipv6Address_;
+}
+
+void NotifyResourceAddressFamilyRequest::setIpv6Address(const std::string &ipv6Address) {
+  ipv6Address_ = ipv6Address;
+  setParameter(std::string("Ipv6Address"), ipv6Address);
+}
+

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

+ 9 - 0
privatelink/src/model/RemoveUserFromVpcEndpointServiceRequest.cc

@@ -34,6 +34,15 @@ void RemoveUserFromVpcEndpointServiceRequest::setClientToken(const std::string &
   setParameter(std::string("ClientToken"), clientToken);
 }
 
+std::string RemoveUserFromVpcEndpointServiceRequest::getUserARN() const {
+  return userARN_;
+}
+
+void RemoveUserFromVpcEndpointServiceRequest::setUserARN(const std::string &userARN) {
+  userARN_ = userARN;
+  setParameter(std::string("UserARN"), userARN);
+}
+
 long RemoveUserFromVpcEndpointServiceRequest::getUserId() const {
   return userId_;
 }

+ 86 - 0
privatelink/src/model/TagResourcesRequest.cc

@@ -0,0 +1,86 @@
+/*
+ * 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/privatelink/model/TagResourcesRequest.h>
+
+using AlibabaCloud::Privatelink::Model::TagResourcesRequest;
+
+TagResourcesRequest::TagResourcesRequest()
+    : RpcServiceRequest("privatelink", "2020-04-15", "TagResources") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+TagResourcesRequest::~TagResourcesRequest() {}
+
+std::vector<TagResourcesRequest::std::string> TagResourcesRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void TagResourcesRequest::setResourceId(const std::vector<TagResourcesRequest::std::string> &resourceId) {
+  resourceId_ = resourceId;
+  for(int dep1 = 0; dep1 != resourceId.size(); dep1++) {
+    setBodyParameter(std::string("ResourceId") + "." + std::to_string(dep1 + 1), resourceId[dep1]);
+  }
+}
+
+bool TagResourcesRequest::getDryRun() const {
+  return dryRun_;
+}
+
+void TagResourcesRequest::setDryRun(bool dryRun) {
+  dryRun_ = dryRun;
+  setBodyParameter(std::string("DryRun"), dryRun ? "true" : "false");
+}
+
+std::string TagResourcesRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void TagResourcesRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setBodyParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string TagResourcesRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void TagResourcesRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setBodyParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string TagResourcesRequest::getRegionId() const {
+  return regionId_;
+}
+
+void TagResourcesRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setBodyParameter(std::string("RegionId"), regionId);
+}
+
+std::vector<TagResourcesRequest::Tag> TagResourcesRequest::getTag() const {
+  return tag_;
+}
+
+void TagResourcesRequest::setTag(const std::vector<TagResourcesRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+    setBodyParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Key", tag[dep1].key);
+    setBodyParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Value", tag[dep1].value);
+  }
+}
+

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

+ 9 - 0
privatelink/src/model/UpdateVpcEndpointServiceAttributeRequest.cc

@@ -97,6 +97,15 @@ void UpdateVpcEndpointServiceAttributeRequest::setDryRun(bool dryRun) {
   setParameter(std::string("DryRun"), dryRun ? "true" : "false");
 }
 
+bool UpdateVpcEndpointServiceAttributeRequest::getServiceSupportIPv6() const {
+  return serviceSupportIPv6_;
+}
+
+void UpdateVpcEndpointServiceAttributeRequest::setServiceSupportIPv6(bool serviceSupportIPv6) {
+  serviceSupportIPv6_ = serviceSupportIPv6;
+  setParameter(std::string("ServiceSupportIPv6"), serviceSupportIPv6 ? "true" : "false");
+}
+
 std::string UpdateVpcEndpointServiceAttributeRequest::getServiceDescription() const {
   return serviceDescription_;
 }