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

Add tags api, include GetRepositoryTag, ListRepositoryTags, DeleteRepositoryTag.

sdk-team 5 лет назад
Родитель
Сommit
f937d7b2e5

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-11-26 Version: patch
+- Add tags api, include GetRepositoryTag, ListRepositoryTags, DeleteRepositoryTag.
+
 2020-11-25 Version: patch
 - Update DescribeScdnDomainCertificateInfo.
 

+ 12 - 0
codeup/CMakeLists.txt

@@ -51,6 +51,8 @@ set(codeup_public_header_model
 	include/alibabacloud/codeup/model/DeleteRepositoryGroupResult.h
 	include/alibabacloud/codeup/model/DeleteRepositoryMemberRequest.h
 	include/alibabacloud/codeup/model/DeleteRepositoryMemberResult.h
+	include/alibabacloud/codeup/model/DeleteRepositoryTagRequest.h
+	include/alibabacloud/codeup/model/DeleteRepositoryTagResult.h
 	include/alibabacloud/codeup/model/GetBranchInfoRequest.h
 	include/alibabacloud/codeup/model/GetBranchInfoResult.h
 	include/alibabacloud/codeup/model/GetCodeupOrganizationRequest.h
@@ -63,6 +65,8 @@ set(codeup_public_header_model
 	include/alibabacloud/codeup/model/GetProjectMemberResult.h
 	include/alibabacloud/codeup/model/GetRepositoryInfoRequest.h
 	include/alibabacloud/codeup/model/GetRepositoryInfoResult.h
+	include/alibabacloud/codeup/model/GetRepositoryTagRequest.h
+	include/alibabacloud/codeup/model/GetRepositoryTagResult.h
 	include/alibabacloud/codeup/model/ListGroupMemberRequest.h
 	include/alibabacloud/codeup/model/ListGroupMemberResult.h
 	include/alibabacloud/codeup/model/ListGroupRepositoriesRequest.h
@@ -73,6 +77,8 @@ set(codeup_public_header_model
 	include/alibabacloud/codeup/model/ListRepositoryBranchesResult.h
 	include/alibabacloud/codeup/model/ListRepositoryMemberRequest.h
 	include/alibabacloud/codeup/model/ListRepositoryMemberResult.h
+	include/alibabacloud/codeup/model/ListRepositoryTagsRequest.h
+	include/alibabacloud/codeup/model/ListRepositoryTagsResult.h
 	include/alibabacloud/codeup/model/ListRepositoryTreeRequest.h
 	include/alibabacloud/codeup/model/ListRepositoryTreeResult.h
 	include/alibabacloud/codeup/model/MergeMergeRequestRequest.h
@@ -116,6 +122,8 @@ set(codeup_src
 	src/model/DeleteRepositoryGroupResult.cc
 	src/model/DeleteRepositoryMemberRequest.cc
 	src/model/DeleteRepositoryMemberResult.cc
+	src/model/DeleteRepositoryTagRequest.cc
+	src/model/DeleteRepositoryTagResult.cc
 	src/model/GetBranchInfoRequest.cc
 	src/model/GetBranchInfoResult.cc
 	src/model/GetCodeupOrganizationRequest.cc
@@ -128,6 +136,8 @@ set(codeup_src
 	src/model/GetProjectMemberResult.cc
 	src/model/GetRepositoryInfoRequest.cc
 	src/model/GetRepositoryInfoResult.cc
+	src/model/GetRepositoryTagRequest.cc
+	src/model/GetRepositoryTagResult.cc
 	src/model/ListGroupMemberRequest.cc
 	src/model/ListGroupMemberResult.cc
 	src/model/ListGroupRepositoriesRequest.cc
@@ -138,6 +148,8 @@ set(codeup_src
 	src/model/ListRepositoryBranchesResult.cc
 	src/model/ListRepositoryMemberRequest.cc
 	src/model/ListRepositoryMemberResult.cc
+	src/model/ListRepositoryTagsRequest.cc
+	src/model/ListRepositoryTagsResult.cc
 	src/model/ListRepositoryTreeRequest.cc
 	src/model/ListRepositoryTreeResult.cc
 	src/model/MergeMergeRequestRequest.cc

+ 24 - 0
codeup/include/alibabacloud/codeup/CodeupClient.h

@@ -52,6 +52,8 @@
 #include "model/DeleteRepositoryGroupResult.h"
 #include "model/DeleteRepositoryMemberRequest.h"
 #include "model/DeleteRepositoryMemberResult.h"
+#include "model/DeleteRepositoryTagRequest.h"
+#include "model/DeleteRepositoryTagResult.h"
 #include "model/GetBranchInfoRequest.h"
 #include "model/GetBranchInfoResult.h"
 #include "model/GetCodeupOrganizationRequest.h"
@@ -64,6 +66,8 @@
 #include "model/GetProjectMemberResult.h"
 #include "model/GetRepositoryInfoRequest.h"
 #include "model/GetRepositoryInfoResult.h"
+#include "model/GetRepositoryTagRequest.h"
+#include "model/GetRepositoryTagResult.h"
 #include "model/ListGroupMemberRequest.h"
 #include "model/ListGroupMemberResult.h"
 #include "model/ListGroupRepositoriesRequest.h"
@@ -74,6 +78,8 @@
 #include "model/ListRepositoryBranchesResult.h"
 #include "model/ListRepositoryMemberRequest.h"
 #include "model/ListRepositoryMemberResult.h"
+#include "model/ListRepositoryTagsRequest.h"
+#include "model/ListRepositoryTagsResult.h"
 #include "model/ListRepositoryTreeRequest.h"
 #include "model/ListRepositoryTreeResult.h"
 #include "model/MergeMergeRequestRequest.h"
@@ -138,6 +144,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteRepositoryMemberResult> DeleteRepositoryMemberOutcome;
 			typedef std::future<DeleteRepositoryMemberOutcome> DeleteRepositoryMemberOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::DeleteRepositoryMemberRequest&, const DeleteRepositoryMemberOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteRepositoryMemberAsyncHandler;
+			typedef Outcome<Error, Model::DeleteRepositoryTagResult> DeleteRepositoryTagOutcome;
+			typedef std::future<DeleteRepositoryTagOutcome> DeleteRepositoryTagOutcomeCallable;
+			typedef std::function<void(const CodeupClient*, const Model::DeleteRepositoryTagRequest&, const DeleteRepositoryTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteRepositoryTagAsyncHandler;
 			typedef Outcome<Error, Model::GetBranchInfoResult> GetBranchInfoOutcome;
 			typedef std::future<GetBranchInfoOutcome> GetBranchInfoOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::GetBranchInfoRequest&, const GetBranchInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetBranchInfoAsyncHandler;
@@ -156,6 +165,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetRepositoryInfoResult> GetRepositoryInfoOutcome;
 			typedef std::future<GetRepositoryInfoOutcome> GetRepositoryInfoOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::GetRepositoryInfoRequest&, const GetRepositoryInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRepositoryInfoAsyncHandler;
+			typedef Outcome<Error, Model::GetRepositoryTagResult> GetRepositoryTagOutcome;
+			typedef std::future<GetRepositoryTagOutcome> GetRepositoryTagOutcomeCallable;
+			typedef std::function<void(const CodeupClient*, const Model::GetRepositoryTagRequest&, const GetRepositoryTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRepositoryTagAsyncHandler;
 			typedef Outcome<Error, Model::ListGroupMemberResult> ListGroupMemberOutcome;
 			typedef std::future<ListGroupMemberOutcome> ListGroupMemberOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::ListGroupMemberRequest&, const ListGroupMemberOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListGroupMemberAsyncHandler;
@@ -171,6 +183,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListRepositoryMemberResult> ListRepositoryMemberOutcome;
 			typedef std::future<ListRepositoryMemberOutcome> ListRepositoryMemberOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::ListRepositoryMemberRequest&, const ListRepositoryMemberOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRepositoryMemberAsyncHandler;
+			typedef Outcome<Error, Model::ListRepositoryTagsResult> ListRepositoryTagsOutcome;
+			typedef std::future<ListRepositoryTagsOutcome> ListRepositoryTagsOutcomeCallable;
+			typedef std::function<void(const CodeupClient*, const Model::ListRepositoryTagsRequest&, const ListRepositoryTagsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRepositoryTagsAsyncHandler;
 			typedef Outcome<Error, Model::ListRepositoryTreeResult> ListRepositoryTreeOutcome;
 			typedef std::future<ListRepositoryTreeOutcome> ListRepositoryTreeOutcomeCallable;
 			typedef std::function<void(const CodeupClient*, const Model::ListRepositoryTreeRequest&, const ListRepositoryTreeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRepositoryTreeAsyncHandler;
@@ -236,6 +251,9 @@ namespace AlibabaCloud
 			DeleteRepositoryMemberOutcome deleteRepositoryMember(const Model::DeleteRepositoryMemberRequest &request)const;
 			void deleteRepositoryMemberAsync(const Model::DeleteRepositoryMemberRequest& request, const DeleteRepositoryMemberAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteRepositoryMemberOutcomeCallable deleteRepositoryMemberCallable(const Model::DeleteRepositoryMemberRequest& request) const;
+			DeleteRepositoryTagOutcome deleteRepositoryTag(const Model::DeleteRepositoryTagRequest &request)const;
+			void deleteRepositoryTagAsync(const Model::DeleteRepositoryTagRequest& request, const DeleteRepositoryTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteRepositoryTagOutcomeCallable deleteRepositoryTagCallable(const Model::DeleteRepositoryTagRequest& request) const;
 			GetBranchInfoOutcome getBranchInfo(const Model::GetBranchInfoRequest &request)const;
 			void getBranchInfoAsync(const Model::GetBranchInfoRequest& request, const GetBranchInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetBranchInfoOutcomeCallable getBranchInfoCallable(const Model::GetBranchInfoRequest& request) const;
@@ -254,6 +272,9 @@ namespace AlibabaCloud
 			GetRepositoryInfoOutcome getRepositoryInfo(const Model::GetRepositoryInfoRequest &request)const;
 			void getRepositoryInfoAsync(const Model::GetRepositoryInfoRequest& request, const GetRepositoryInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetRepositoryInfoOutcomeCallable getRepositoryInfoCallable(const Model::GetRepositoryInfoRequest& request) const;
+			GetRepositoryTagOutcome getRepositoryTag(const Model::GetRepositoryTagRequest &request)const;
+			void getRepositoryTagAsync(const Model::GetRepositoryTagRequest& request, const GetRepositoryTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetRepositoryTagOutcomeCallable getRepositoryTagCallable(const Model::GetRepositoryTagRequest& request) const;
 			ListGroupMemberOutcome listGroupMember(const Model::ListGroupMemberRequest &request)const;
 			void listGroupMemberAsync(const Model::ListGroupMemberRequest& request, const ListGroupMemberAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListGroupMemberOutcomeCallable listGroupMemberCallable(const Model::ListGroupMemberRequest& request) const;
@@ -269,6 +290,9 @@ namespace AlibabaCloud
 			ListRepositoryMemberOutcome listRepositoryMember(const Model::ListRepositoryMemberRequest &request)const;
 			void listRepositoryMemberAsync(const Model::ListRepositoryMemberRequest& request, const ListRepositoryMemberAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListRepositoryMemberOutcomeCallable listRepositoryMemberCallable(const Model::ListRepositoryMemberRequest& request) const;
+			ListRepositoryTagsOutcome listRepositoryTags(const Model::ListRepositoryTagsRequest &request)const;
+			void listRepositoryTagsAsync(const Model::ListRepositoryTagsRequest& request, const ListRepositoryTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListRepositoryTagsOutcomeCallable listRepositoryTagsCallable(const Model::ListRepositoryTagsRequest& request) const;
 			ListRepositoryTreeOutcome listRepositoryTree(const Model::ListRepositoryTreeRequest &request)const;
 			void listRepositoryTreeAsync(const Model::ListRepositoryTreeRequest& request, const ListRepositoryTreeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListRepositoryTreeOutcomeCallable listRepositoryTreeCallable(const Model::ListRepositoryTreeRequest& request) const;

+ 57 - 0
codeup/include/alibabacloud/codeup/model/DeleteRepositoryTagRequest.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CODEUP_MODEL_DELETEREPOSITORYTAGREQUEST_H_
+#define ALIBABACLOUD_CODEUP_MODEL_DELETEREPOSITORYTAGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RoaServiceRequest.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT DeleteRepositoryTagRequest : public RoaServiceRequest
+			{
+
+			public:
+				DeleteRepositoryTagRequest();
+				~DeleteRepositoryTagRequest();
+
+				std::string getOrganizationId()const;
+				void setOrganizationId(const std::string& organizationId);
+				std::string getTagName()const;
+				void setTagName(const std::string& tagName);
+				std::string getAccessToken()const;
+				void setAccessToken(const std::string& accessToken);
+				long getProjectId()const;
+				void setProjectId(long projectId);
+
+            private:
+				std::string organizationId_;
+				std::string tagName_;
+				std::string accessToken_;
+				long projectId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_DELETEREPOSITORYTAGREQUEST_H_

+ 61 - 0
codeup/include/alibabacloud/codeup/model/DeleteRepositoryTagResult.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_CODEUP_MODEL_DELETEREPOSITORYTAGRESULT_H_
+#define ALIBABACLOUD_CODEUP_MODEL_DELETEREPOSITORYTAGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT DeleteRepositoryTagResult : public ServiceResult
+			{
+			public:
+				struct Result
+				{
+					std::string tagName;
+				};
+
+
+				DeleteRepositoryTagResult();
+				explicit DeleteRepositoryTagResult(const std::string &payload);
+				~DeleteRepositoryTagResult();
+				std::string getErrorCode()const;
+				std::string getErrorMessage()const;
+				bool getSuccess()const;
+				Result getResult()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorCode_;
+				std::string errorMessage_;
+				bool success_;
+				Result result_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_DELETEREPOSITORYTAGRESULT_H_

+ 57 - 0
codeup/include/alibabacloud/codeup/model/GetRepositoryTagRequest.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CODEUP_MODEL_GETREPOSITORYTAGREQUEST_H_
+#define ALIBABACLOUD_CODEUP_MODEL_GETREPOSITORYTAGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RoaServiceRequest.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT GetRepositoryTagRequest : public RoaServiceRequest
+			{
+
+			public:
+				GetRepositoryTagRequest();
+				~GetRepositoryTagRequest();
+
+				std::string getOrganizationId()const;
+				void setOrganizationId(const std::string& organizationId);
+				std::string getTagName()const;
+				void setTagName(const std::string& tagName);
+				std::string getAccessToken()const;
+				void setAccessToken(const std::string& accessToken);
+				long getProjectId()const;
+				void setProjectId(long projectId);
+
+            private:
+				std::string organizationId_;
+				std::string tagName_;
+				std::string accessToken_;
+				long projectId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_GETREPOSITORYTAGREQUEST_H_

+ 91 - 0
codeup/include/alibabacloud/codeup/model/GetRepositoryTagResult.h

@@ -0,0 +1,91 @@
+/*
+ * 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_CODEUP_MODEL_GETREPOSITORYTAGRESULT_H_
+#define ALIBABACLOUD_CODEUP_MODEL_GETREPOSITORYTAGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT GetRepositoryTagResult : public ServiceResult
+			{
+			public:
+				struct Result
+				{
+					struct Commit
+					{
+						struct Signature1
+						{
+							std::string verificationStatus;
+							std::string gpgKeyId;
+						};
+						std::string authoredDate;
+						std::string authorName;
+						std::string message;
+						std::string createdAt;
+						std::string title;
+						std::string authorEmail;
+						std::string committedDate;
+						std::string committerEmail;
+						std::vector<std::string> parentIds;
+						std::string shortId;
+						std::string id;
+						std::string committerName;
+						Signature1 signature1;
+					};
+					struct Signature
+					{
+						std::string verificationStatus;
+						std::string gpgKeyId;
+					};
+					Commit commit;
+					std::string message;
+					Signature signature;
+					std::string id;
+					std::string name;
+				};
+
+
+				GetRepositoryTagResult();
+				explicit GetRepositoryTagResult(const std::string &payload);
+				~GetRepositoryTagResult();
+				std::string getErrorCode()const;
+				std::string getErrorMessage()const;
+				bool getSuccess()const;
+				Result getResult()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorCode_;
+				std::string errorMessage_;
+				bool success_;
+				Result result_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_GETREPOSITORYTAGRESULT_H_

+ 69 - 0
codeup/include/alibabacloud/codeup/model/ListRepositoryTagsRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CODEUP_MODEL_LISTREPOSITORYTAGSREQUEST_H_
+#define ALIBABACLOUD_CODEUP_MODEL_LISTREPOSITORYTAGSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RoaServiceRequest.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT ListRepositoryTagsRequest : public RoaServiceRequest
+			{
+
+			public:
+				ListRepositoryTagsRequest();
+				~ListRepositoryTagsRequest();
+
+				std::string getAccessToken()const;
+				void setAccessToken(const std::string& accessToken);
+				bool getShowSignature()const;
+				void setShowSignature(bool showSignature);
+				std::string getSort()const;
+				void setSort(const std::string& sort);
+				std::string getOrganizationId()const;
+				void setOrganizationId(const std::string& organizationId);
+				std::string getSearch()const;
+				void setSearch(const std::string& search);
+				long getPageSize()const;
+				void setPageSize(long pageSize);
+				long getPage()const;
+				void setPage(long page);
+				long getProjectId()const;
+				void setProjectId(long projectId);
+
+            private:
+				std::string accessToken_;
+				bool showSignature_;
+				std::string sort_;
+				std::string organizationId_;
+				std::string search_;
+				long pageSize_;
+				long page_;
+				long projectId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_LISTREPOSITORYTAGSREQUEST_H_

+ 93 - 0
codeup/include/alibabacloud/codeup/model/ListRepositoryTagsResult.h

@@ -0,0 +1,93 @@
+/*
+ * 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_CODEUP_MODEL_LISTREPOSITORYTAGSRESULT_H_
+#define ALIBABACLOUD_CODEUP_MODEL_LISTREPOSITORYTAGSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/codeup/CodeupExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Codeup
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CODEUP_EXPORT ListRepositoryTagsResult : public ServiceResult
+			{
+			public:
+				struct ResultItem
+				{
+					struct Commit
+					{
+						struct Signature1
+						{
+							std::string verificationStatus;
+							std::string gpgKeyId;
+						};
+						std::string authoredDate;
+						std::string authorName;
+						std::string message;
+						std::string createdAt;
+						std::string title;
+						std::string authorEmail;
+						std::string committedDate;
+						std::string committerEmail;
+						std::vector<std::string> parentIds;
+						std::string shortId;
+						std::string id;
+						std::string committerName;
+						Signature1 signature1;
+					};
+					struct Signature
+					{
+						std::string verificationStatus;
+						std::string gpgKeyId;
+					};
+					Commit commit;
+					std::string message;
+					Signature signature;
+					std::string id;
+					std::string name;
+				};
+
+
+				ListRepositoryTagsResult();
+				explicit ListRepositoryTagsResult(const std::string &payload);
+				~ListRepositoryTagsResult();
+				long getTotal()const;
+				std::string getErrorCode()const;
+				std::string getErrorMessage()const;
+				bool getSuccess()const;
+				std::vector<ResultItem> getResult()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long total_;
+				std::string errorCode_;
+				std::string errorMessage_;
+				bool success_;
+				std::vector<ResultItem> result_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CODEUP_MODEL_LISTREPOSITORYTAGSRESULT_H_

+ 108 - 0
codeup/src/CodeupClient.cc

@@ -591,6 +591,42 @@ CodeupClient::DeleteRepositoryMemberOutcomeCallable CodeupClient::deleteReposito
 	return task->get_future();
 }
 
+CodeupClient::DeleteRepositoryTagOutcome CodeupClient::deleteRepositoryTag(const DeleteRepositoryTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteRepositoryTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteRepositoryTagOutcome(DeleteRepositoryTagResult(outcome.result()));
+	else
+		return DeleteRepositoryTagOutcome(outcome.error());
+}
+
+void CodeupClient::deleteRepositoryTagAsync(const DeleteRepositoryTagRequest& request, const DeleteRepositoryTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteRepositoryTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CodeupClient::DeleteRepositoryTagOutcomeCallable CodeupClient::deleteRepositoryTagCallable(const DeleteRepositoryTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteRepositoryTagOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteRepositoryTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CodeupClient::GetBranchInfoOutcome CodeupClient::getBranchInfo(const GetBranchInfoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -807,6 +843,42 @@ CodeupClient::GetRepositoryInfoOutcomeCallable CodeupClient::getRepositoryInfoCa
 	return task->get_future();
 }
 
+CodeupClient::GetRepositoryTagOutcome CodeupClient::getRepositoryTag(const GetRepositoryTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetRepositoryTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetRepositoryTagOutcome(GetRepositoryTagResult(outcome.result()));
+	else
+		return GetRepositoryTagOutcome(outcome.error());
+}
+
+void CodeupClient::getRepositoryTagAsync(const GetRepositoryTagRequest& request, const GetRepositoryTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getRepositoryTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CodeupClient::GetRepositoryTagOutcomeCallable CodeupClient::getRepositoryTagCallable(const GetRepositoryTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetRepositoryTagOutcome()>>(
+			[this, request]()
+			{
+			return this->getRepositoryTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CodeupClient::ListGroupMemberOutcome CodeupClient::listGroupMember(const ListGroupMemberRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -987,6 +1059,42 @@ CodeupClient::ListRepositoryMemberOutcomeCallable CodeupClient::listRepositoryMe
 	return task->get_future();
 }
 
+CodeupClient::ListRepositoryTagsOutcome CodeupClient::listRepositoryTags(const ListRepositoryTagsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListRepositoryTagsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListRepositoryTagsOutcome(ListRepositoryTagsResult(outcome.result()));
+	else
+		return ListRepositoryTagsOutcome(outcome.error());
+}
+
+void CodeupClient::listRepositoryTagsAsync(const ListRepositoryTagsRequest& request, const ListRepositoryTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listRepositoryTags(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CodeupClient::ListRepositoryTagsOutcomeCallable CodeupClient::listRepositoryTagsCallable(const ListRepositoryTagsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListRepositoryTagsOutcome()>>(
+			[this, request]()
+			{
+			return this->listRepositoryTags(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CodeupClient::ListRepositoryTreeOutcome CodeupClient::listRepositoryTree(const ListRepositoryTreeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 74 - 0
codeup/src/model/DeleteRepositoryTagRequest.cc

@@ -0,0 +1,74 @@
+/*
+ * 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/codeup/model/DeleteRepositoryTagRequest.h>
+
+using AlibabaCloud::Codeup::Model::DeleteRepositoryTagRequest;
+
+DeleteRepositoryTagRequest::DeleteRepositoryTagRequest() :
+	RoaServiceRequest("codeup", "2020-04-14")
+{
+	setResourcePath("/api/v3/projects/[ProjectId]/repository/tags/[TagName]");
+	setMethod(HttpRequest::Method::Delete);
+}
+
+DeleteRepositoryTagRequest::~DeleteRepositoryTagRequest()
+{}
+
+std::string DeleteRepositoryTagRequest::getOrganizationId()const
+{
+	return organizationId_;
+}
+
+void DeleteRepositoryTagRequest::setOrganizationId(const std::string& organizationId)
+{
+	organizationId_ = organizationId;
+	setParameter("OrganizationId", organizationId);
+}
+
+std::string DeleteRepositoryTagRequest::getTagName()const
+{
+	return tagName_;
+}
+
+void DeleteRepositoryTagRequest::setTagName(const std::string& tagName)
+{
+	tagName_ = tagName;
+	setParameter("TagName", tagName);
+}
+
+std::string DeleteRepositoryTagRequest::getAccessToken()const
+{
+	return accessToken_;
+}
+
+void DeleteRepositoryTagRequest::setAccessToken(const std::string& accessToken)
+{
+	accessToken_ = accessToken;
+	setParameter("AccessToken", accessToken);
+}
+
+long DeleteRepositoryTagRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void DeleteRepositoryTagRequest::setProjectId(long projectId)
+{
+	projectId_ = projectId;
+	setParameter("ProjectId", std::to_string(projectId));
+}
+

+ 73 - 0
codeup/src/model/DeleteRepositoryTagResult.cc

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

+ 74 - 0
codeup/src/model/GetRepositoryTagRequest.cc

@@ -0,0 +1,74 @@
+/*
+ * 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/codeup/model/GetRepositoryTagRequest.h>
+
+using AlibabaCloud::Codeup::Model::GetRepositoryTagRequest;
+
+GetRepositoryTagRequest::GetRepositoryTagRequest() :
+	RoaServiceRequest("codeup", "2020-04-14")
+{
+	setResourcePath("/api/v3/projects/[ProjectId]/repository/tags/[TagName]");
+	setMethod(HttpRequest::Method::Get);
+}
+
+GetRepositoryTagRequest::~GetRepositoryTagRequest()
+{}
+
+std::string GetRepositoryTagRequest::getOrganizationId()const
+{
+	return organizationId_;
+}
+
+void GetRepositoryTagRequest::setOrganizationId(const std::string& organizationId)
+{
+	organizationId_ = organizationId;
+	setParameter("OrganizationId", organizationId);
+}
+
+std::string GetRepositoryTagRequest::getTagName()const
+{
+	return tagName_;
+}
+
+void GetRepositoryTagRequest::setTagName(const std::string& tagName)
+{
+	tagName_ = tagName;
+	setParameter("TagName", tagName);
+}
+
+std::string GetRepositoryTagRequest::getAccessToken()const
+{
+	return accessToken_;
+}
+
+void GetRepositoryTagRequest::setAccessToken(const std::string& accessToken)
+{
+	accessToken_ = accessToken;
+	setParameter("AccessToken", accessToken);
+}
+
+long GetRepositoryTagRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void GetRepositoryTagRequest::setProjectId(long projectId)
+{
+	projectId_ = projectId;
+	setParameter("ProjectId", std::to_string(projectId));
+}
+

+ 113 - 0
codeup/src/model/GetRepositoryTagResult.cc

@@ -0,0 +1,113 @@
+/*
+ * 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/codeup/model/GetRepositoryTagResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Codeup;
+using namespace AlibabaCloud::Codeup::Model;
+
+GetRepositoryTagResult::GetRepositoryTagResult() :
+	ServiceResult()
+{}
+
+GetRepositoryTagResult::GetRepositoryTagResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetRepositoryTagResult::~GetRepositoryTagResult()
+{}
+
+void GetRepositoryTagResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto resultNode = value["Result"];
+	if(!resultNode["Id"].isNull())
+		result_.id = resultNode["Id"].asString();
+	if(!resultNode["Name"].isNull())
+		result_.name = resultNode["Name"].asString();
+	if(!resultNode["Message"].isNull())
+		result_.message = resultNode["Message"].asString();
+	auto commitNode = resultNode["Commit"];
+	if(!commitNode["Id"].isNull())
+		result_.commit.id = commitNode["Id"].asString();
+	if(!commitNode["ShortId"].isNull())
+		result_.commit.shortId = commitNode["ShortId"].asString();
+	if(!commitNode["Title"].isNull())
+		result_.commit.title = commitNode["Title"].asString();
+	if(!commitNode["AuthorName"].isNull())
+		result_.commit.authorName = commitNode["AuthorName"].asString();
+	if(!commitNode["AuthorEmail"].isNull())
+		result_.commit.authorEmail = commitNode["AuthorEmail"].asString();
+	if(!commitNode["CreatedAt"].isNull())
+		result_.commit.createdAt = commitNode["CreatedAt"].asString();
+	if(!commitNode["Message"].isNull())
+		result_.commit.message = commitNode["Message"].asString();
+	if(!commitNode["AuthoredDate"].isNull())
+		result_.commit.authoredDate = commitNode["AuthoredDate"].asString();
+	if(!commitNode["CommittedDate"].isNull())
+		result_.commit.committedDate = commitNode["CommittedDate"].asString();
+	if(!commitNode["CommitterEmail"].isNull())
+		result_.commit.committerEmail = commitNode["CommitterEmail"].asString();
+	if(!commitNode["CommitterName"].isNull())
+		result_.commit.committerName = commitNode["CommitterName"].asString();
+	auto signature1Node = commitNode["Signature"];
+	if(!signature1Node["GpgKeyId"].isNull())
+		result_.commit.signature1.gpgKeyId = signature1Node["GpgKeyId"].asString();
+	if(!signature1Node["VerificationStatus"].isNull())
+		result_.commit.signature1.verificationStatus = signature1Node["VerificationStatus"].asString();
+		auto allParentIds = commitNode["ParentIds"]["ParentIds"];
+		for (auto value : allParentIds)
+			result_.commit.parentIds.push_back(value.asString());
+	auto signatureNode = resultNode["Signature"];
+	if(!signatureNode["GpgKeyId"].isNull())
+		result_.signature.gpgKeyId = signatureNode["GpgKeyId"].asString();
+	if(!signatureNode["VerificationStatus"].isNull())
+		result_.signature.verificationStatus = signatureNode["VerificationStatus"].asString();
+	if(!value["ErrorCode"].isNull())
+		errorCode_ = value["ErrorCode"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string GetRepositoryTagResult::getErrorCode()const
+{
+	return errorCode_;
+}
+
+std::string GetRepositoryTagResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+bool GetRepositoryTagResult::getSuccess()const
+{
+	return success_;
+}
+
+GetRepositoryTagResult::Result GetRepositoryTagResult::getResult()const
+{
+	return result_;
+}
+

+ 118 - 0
codeup/src/model/ListRepositoryTagsRequest.cc

@@ -0,0 +1,118 @@
+/*
+ * 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/codeup/model/ListRepositoryTagsRequest.h>
+
+using AlibabaCloud::Codeup::Model::ListRepositoryTagsRequest;
+
+ListRepositoryTagsRequest::ListRepositoryTagsRequest() :
+	RoaServiceRequest("codeup", "2020-04-14")
+{
+	setResourcePath("/api/v4/projects/[ProjectId]/repository/tags");
+	setMethod(HttpRequest::Method::Get);
+}
+
+ListRepositoryTagsRequest::~ListRepositoryTagsRequest()
+{}
+
+std::string ListRepositoryTagsRequest::getAccessToken()const
+{
+	return accessToken_;
+}
+
+void ListRepositoryTagsRequest::setAccessToken(const std::string& accessToken)
+{
+	accessToken_ = accessToken;
+	setParameter("AccessToken", accessToken);
+}
+
+bool ListRepositoryTagsRequest::getShowSignature()const
+{
+	return showSignature_;
+}
+
+void ListRepositoryTagsRequest::setShowSignature(bool showSignature)
+{
+	showSignature_ = showSignature;
+	setParameter("ShowSignature", showSignature ? "true" : "false");
+}
+
+std::string ListRepositoryTagsRequest::getSort()const
+{
+	return sort_;
+}
+
+void ListRepositoryTagsRequest::setSort(const std::string& sort)
+{
+	sort_ = sort;
+	setParameter("Sort", sort);
+}
+
+std::string ListRepositoryTagsRequest::getOrganizationId()const
+{
+	return organizationId_;
+}
+
+void ListRepositoryTagsRequest::setOrganizationId(const std::string& organizationId)
+{
+	organizationId_ = organizationId;
+	setParameter("OrganizationId", organizationId);
+}
+
+std::string ListRepositoryTagsRequest::getSearch()const
+{
+	return search_;
+}
+
+void ListRepositoryTagsRequest::setSearch(const std::string& search)
+{
+	search_ = search;
+	setParameter("Search", search);
+}
+
+long ListRepositoryTagsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void ListRepositoryTagsRequest::setPageSize(long pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+long ListRepositoryTagsRequest::getPage()const
+{
+	return page_;
+}
+
+void ListRepositoryTagsRequest::setPage(long page)
+{
+	page_ = page;
+	setParameter("Page", std::to_string(page));
+}
+
+long ListRepositoryTagsRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void ListRepositoryTagsRequest::setProjectId(long projectId)
+{
+	projectId_ = projectId;
+	setParameter("ProjectId", std::to_string(projectId));
+}
+

+ 125 - 0
codeup/src/model/ListRepositoryTagsResult.cc

@@ -0,0 +1,125 @@
+/*
+ * 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/codeup/model/ListRepositoryTagsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Codeup;
+using namespace AlibabaCloud::Codeup::Model;
+
+ListRepositoryTagsResult::ListRepositoryTagsResult() :
+	ServiceResult()
+{}
+
+ListRepositoryTagsResult::ListRepositoryTagsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListRepositoryTagsResult::~ListRepositoryTagsResult()
+{}
+
+void ListRepositoryTagsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allResultNode = value["Result"]["ResultItem"];
+	for (auto valueResultResultItem : allResultNode)
+	{
+		ResultItem resultObject;
+		if(!valueResultResultItem["Id"].isNull())
+			resultObject.id = valueResultResultItem["Id"].asString();
+		if(!valueResultResultItem["Name"].isNull())
+			resultObject.name = valueResultResultItem["Name"].asString();
+		if(!valueResultResultItem["Message"].isNull())
+			resultObject.message = valueResultResultItem["Message"].asString();
+		auto commitNode = value["Commit"];
+		if(!commitNode["Id"].isNull())
+			resultObject.commit.id = commitNode["Id"].asString();
+		if(!commitNode["ShortId"].isNull())
+			resultObject.commit.shortId = commitNode["ShortId"].asString();
+		if(!commitNode["Title"].isNull())
+			resultObject.commit.title = commitNode["Title"].asString();
+		if(!commitNode["AuthorName"].isNull())
+			resultObject.commit.authorName = commitNode["AuthorName"].asString();
+		if(!commitNode["AuthorEmail"].isNull())
+			resultObject.commit.authorEmail = commitNode["AuthorEmail"].asString();
+		if(!commitNode["CreatedAt"].isNull())
+			resultObject.commit.createdAt = commitNode["CreatedAt"].asString();
+		if(!commitNode["Message"].isNull())
+			resultObject.commit.message = commitNode["Message"].asString();
+		if(!commitNode["AuthoredDate"].isNull())
+			resultObject.commit.authoredDate = commitNode["AuthoredDate"].asString();
+		if(!commitNode["CommittedDate"].isNull())
+			resultObject.commit.committedDate = commitNode["CommittedDate"].asString();
+		if(!commitNode["CommitterEmail"].isNull())
+			resultObject.commit.committerEmail = commitNode["CommitterEmail"].asString();
+		if(!commitNode["CommitterName"].isNull())
+			resultObject.commit.committerName = commitNode["CommitterName"].asString();
+		auto signature1Node = commitNode["Signature"];
+		if(!signature1Node["GpgKeyId"].isNull())
+			resultObject.commit.signature1.gpgKeyId = signature1Node["GpgKeyId"].asString();
+		if(!signature1Node["VerificationStatus"].isNull())
+			resultObject.commit.signature1.verificationStatus = signature1Node["VerificationStatus"].asString();
+			auto allParentIds = commitNode["ParentIds"]["ParentIds"];
+			for (auto value : allParentIds)
+				resultObject.commit.parentIds.push_back(value.asString());
+		auto signatureNode = value["Signature"];
+		if(!signatureNode["GpgKeyId"].isNull())
+			resultObject.signature.gpgKeyId = signatureNode["GpgKeyId"].asString();
+		if(!signatureNode["VerificationStatus"].isNull())
+			resultObject.signature.verificationStatus = signatureNode["VerificationStatus"].asString();
+		result_.push_back(resultObject);
+	}
+	if(!value["ErrorCode"].isNull())
+		errorCode_ = value["ErrorCode"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Total"].isNull())
+		total_ = std::stol(value["Total"].asString());
+
+}
+
+long ListRepositoryTagsResult::getTotal()const
+{
+	return total_;
+}
+
+std::string ListRepositoryTagsResult::getErrorCode()const
+{
+	return errorCode_;
+}
+
+std::string ListRepositoryTagsResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+bool ListRepositoryTagsResult::getSuccess()const
+{
+	return success_;
+}
+
+std::vector<ListRepositoryTagsResult::ResultItem> ListRepositoryTagsResult::getResult()const
+{
+	return result_;
+}
+