瀏覽代碼

CR SDK Auto Released By puling.tyq,Version:1.50.6

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 6 年之前
父節點
當前提交
1e0ef282ed
共有 66 個文件被更改,包括 6741 次插入0 次删除
  1. 3 0
      ChangeLog.txt
  2. 105 0
      services/cr/cancel_repo_build.go
  3. 81 0
      services/cr/client.go
  4. 102 0
      services/cr/create_collection.go
  5. 102 0
      services/cr/create_namespace.go
  6. 103 0
      services/cr/create_namespace_authorization.go
  7. 102 0
      services/cr/create_repo.go
  8. 104 0
      services/cr/create_repo_authorization.go
  9. 104 0
      services/cr/create_repo_build_rule.go
  10. 104 0
      services/cr/create_repo_sync_task.go
  11. 104 0
      services/cr/create_repo_webhook.go
  12. 102 0
      services/cr/create_user_info.go
  13. 102 0
      services/cr/create_user_source_account.go
  14. 103 0
      services/cr/delete_collection.go
  15. 105 0
      services/cr/delete_image.go
  16. 103 0
      services/cr/delete_namespace.go
  17. 104 0
      services/cr/delete_namespace_authorization.go
  18. 104 0
      services/cr/delete_repo.go
  19. 105 0
      services/cr/delete_repo_authorization.go
  20. 105 0
      services/cr/delete_repo_build_rule.go
  21. 105 0
      services/cr/delete_repo_webhook.go
  22. 103 0
      services/cr/delete_user_source_account.go
  23. 102 0
      services/cr/get_authorization_token.go
  24. 104 0
      services/cr/get_collection.go
  25. 105 0
      services/cr/get_image_layer.go
  26. 106 0
      services/cr/get_image_manifest.go
  27. 105 0
      services/cr/get_image_scan.go
  28. 102 0
      services/cr/get_mirror_list.go
  29. 103 0
      services/cr/get_namespace.go
  30. 104 0
      services/cr/get_namespace_authorization_list.go
  31. 104 0
      services/cr/get_namespace_list.go
  32. 103 0
      services/cr/get_region.go
  33. 102 0
      services/cr/get_region_list.go
  34. 104 0
      services/cr/get_repo.go
  35. 105 0
      services/cr/get_repo_authorization_list.go
  36. 103 0
      services/cr/get_repo_batch.go
  37. 106 0
      services/cr/get_repo_build_list.go
  38. 105 0
      services/cr/get_repo_build_logs.go
  39. 104 0
      services/cr/get_repo_build_rule_list.go
  40. 105 0
      services/cr/get_repo_build_status.go
  41. 105 0
      services/cr/get_repo_list.go
  42. 106 0
      services/cr/get_repo_list_by_namespace.go
  43. 104 0
      services/cr/get_repo_source_repo.go
  44. 105 0
      services/cr/get_repo_sync_task.go
  45. 106 0
      services/cr/get_repo_sync_task_list.go
  46. 106 0
      services/cr/get_repo_tags.go
  47. 104 0
      services/cr/get_repo_webhook.go
  48. 105 0
      services/cr/get_repo_webhook_log_list.go
  49. 106 0
      services/cr/get_search.go
  50. 102 0
      services/cr/get_sub_user_list.go
  51. 102 0
      services/cr/get_user_info.go
  52. 103 0
      services/cr/get_user_source_account.go
  53. 103 0
      services/cr/get_user_source_repo_list.go
  54. 105 0
      services/cr/get_user_source_repo_ref_list.go
  55. 106 0
      services/cr/search_repo.go
  56. 105 0
      services/cr/start_image_scan.go
  57. 104 0
      services/cr/start_repo_build.go
  58. 105 0
      services/cr/start_repo_build_by_rule.go
  59. 103 0
      services/cr/update_namespace.go
  60. 104 0
      services/cr/update_namespace_authorization.go
  61. 104 0
      services/cr/update_repo.go
  62. 105 0
      services/cr/update_repo_authorization.go
  63. 105 0
      services/cr/update_repo_build_rule.go
  64. 104 0
      services/cr/update_repo_source_repo.go
  65. 105 0
      services/cr/update_repo_webhook.go
  66. 102 0
      services/cr/update_user_info.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-01-14 Version: 1.50.6
+1, Release Go SDK for CR
+
 2019-01-11 Version: 1.50.5
 1, CreateOfficeConversionTask, ConvertOfficeFormat support Hidecomments
 

+ 105 - 0
services/cr/cancel_repo_build.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CancelRepoBuild invokes the cr.CancelRepoBuild API synchronously
+// api document: https://help.aliyun.com/api/cr/cancelrepobuild.html
+func (client *Client) CancelRepoBuild(request *CancelRepoBuildRequest) (response *CancelRepoBuildResponse, err error) {
+	response = CreateCancelRepoBuildResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelRepoBuildWithChan invokes the cr.CancelRepoBuild API asynchronously
+// api document: https://help.aliyun.com/api/cr/cancelrepobuild.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelRepoBuildWithChan(request *CancelRepoBuildRequest) (<-chan *CancelRepoBuildResponse, <-chan error) {
+	responseChan := make(chan *CancelRepoBuildResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelRepoBuild(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelRepoBuildWithCallback invokes the cr.CancelRepoBuild API asynchronously
+// api document: https://help.aliyun.com/api/cr/cancelrepobuild.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelRepoBuildWithCallback(request *CancelRepoBuildRequest, callback func(response *CancelRepoBuildResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelRepoBuildResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelRepoBuild(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelRepoBuildRequest is the request struct for api CancelRepoBuild
+type CancelRepoBuildRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	BuildId       string `position:"Path" name:"BuildId"`
+}
+
+// CancelRepoBuildResponse is the response struct for api CancelRepoBuild
+type CancelRepoBuildResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCancelRepoBuildRequest creates a request to invoke CancelRepoBuild API
+func CreateCancelRepoBuildRequest() (request *CancelRepoBuildRequest) {
+	request = &CancelRepoBuildRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CancelRepoBuild", "/repos/[RepoNamespace]/[RepoName]/build/[BuildId]/cancel", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateCancelRepoBuildResponse creates a response to parse from CancelRepoBuild response
+func CreateCancelRepoBuildResponse() (response *CancelRepoBuildResponse) {
+	response = &CancelRepoBuildResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/cr/client.go

@@ -0,0 +1,81 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 102 - 0
services/cr/create_collection.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateCollection invokes the cr.CreateCollection API synchronously
+// api document: https://help.aliyun.com/api/cr/createcollection.html
+func (client *Client) CreateCollection(request *CreateCollectionRequest) (response *CreateCollectionResponse, err error) {
+	response = CreateCreateCollectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCollectionWithChan invokes the cr.CreateCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/createcollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCollectionWithChan(request *CreateCollectionRequest) (<-chan *CreateCollectionResponse, <-chan error) {
+	responseChan := make(chan *CreateCollectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCollection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCollectionWithCallback invokes the cr.CreateCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/createcollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCollectionWithCallback(request *CreateCollectionRequest, callback func(response *CreateCollectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCollectionResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCollection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCollectionRequest is the request struct for api CreateCollection
+type CreateCollectionRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateCollectionResponse is the response struct for api CreateCollection
+type CreateCollectionResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateCollectionRequest creates a request to invoke CreateCollection API
+func CreateCreateCollectionRequest() (request *CreateCollectionRequest) {
+	request = &CreateCollectionRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateCollection", "/collections", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateCollectionResponse creates a response to parse from CreateCollection response
+func CreateCreateCollectionResponse() (response *CreateCollectionResponse) {
+	response = &CreateCollectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/create_namespace.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateNamespace invokes the cr.CreateNamespace API synchronously
+// api document: https://help.aliyun.com/api/cr/createnamespace.html
+func (client *Client) CreateNamespace(request *CreateNamespaceRequest) (response *CreateNamespaceResponse, err error) {
+	response = CreateCreateNamespaceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateNamespaceWithChan invokes the cr.CreateNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/createnamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNamespaceWithChan(request *CreateNamespaceRequest) (<-chan *CreateNamespaceResponse, <-chan error) {
+	responseChan := make(chan *CreateNamespaceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateNamespace(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateNamespaceWithCallback invokes the cr.CreateNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/createnamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNamespaceWithCallback(request *CreateNamespaceRequest, callback func(response *CreateNamespaceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateNamespaceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateNamespace(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateNamespaceRequest is the request struct for api CreateNamespace
+type CreateNamespaceRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateNamespaceResponse is the response struct for api CreateNamespace
+type CreateNamespaceResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateNamespaceRequest creates a request to invoke CreateNamespace API
+func CreateCreateNamespaceRequest() (request *CreateNamespaceRequest) {
+	request = &CreateNamespaceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateNamespace", "/namespace", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateNamespaceResponse creates a response to parse from CreateNamespace response
+func CreateCreateNamespaceResponse() (response *CreateNamespaceResponse) {
+	response = &CreateNamespaceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/create_namespace_authorization.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateNamespaceAuthorization invokes the cr.CreateNamespaceAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/createnamespaceauthorization.html
+func (client *Client) CreateNamespaceAuthorization(request *CreateNamespaceAuthorizationRequest) (response *CreateNamespaceAuthorizationResponse, err error) {
+	response = CreateCreateNamespaceAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateNamespaceAuthorizationWithChan invokes the cr.CreateNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/createnamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNamespaceAuthorizationWithChan(request *CreateNamespaceAuthorizationRequest) (<-chan *CreateNamespaceAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *CreateNamespaceAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateNamespaceAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateNamespaceAuthorizationWithCallback invokes the cr.CreateNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/createnamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNamespaceAuthorizationWithCallback(request *CreateNamespaceAuthorizationRequest, callback func(response *CreateNamespaceAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateNamespaceAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateNamespaceAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateNamespaceAuthorizationRequest is the request struct for api CreateNamespaceAuthorization
+type CreateNamespaceAuthorizationRequest struct {
+	*requests.RoaRequest
+	Namespace string `position:"Path" name:"Namespace"`
+}
+
+// CreateNamespaceAuthorizationResponse is the response struct for api CreateNamespaceAuthorization
+type CreateNamespaceAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateNamespaceAuthorizationRequest creates a request to invoke CreateNamespaceAuthorization API
+func CreateCreateNamespaceAuthorizationRequest() (request *CreateNamespaceAuthorizationRequest) {
+	request = &CreateNamespaceAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateNamespaceAuthorization", "/namespace/[Namespace]/authorizations", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateNamespaceAuthorizationResponse creates a response to parse from CreateNamespaceAuthorization response
+func CreateCreateNamespaceAuthorizationResponse() (response *CreateNamespaceAuthorizationResponse) {
+	response = &CreateNamespaceAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/create_repo.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateRepo invokes the cr.CreateRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/createrepo.html
+func (client *Client) CreateRepo(request *CreateRepoRequest) (response *CreateRepoResponse, err error) {
+	response = CreateCreateRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRepoWithChan invokes the cr.CreateRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoWithChan(request *CreateRepoRequest) (<-chan *CreateRepoResponse, <-chan error) {
+	responseChan := make(chan *CreateRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRepoWithCallback invokes the cr.CreateRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoWithCallback(request *CreateRepoRequest, callback func(response *CreateRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRepoRequest is the request struct for api CreateRepo
+type CreateRepoRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateRepoResponse is the response struct for api CreateRepo
+type CreateRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateRepoRequest creates a request to invoke CreateRepo API
+func CreateCreateRepoRequest() (request *CreateRepoRequest) {
+	request = &CreateRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateRepo", "/repos", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateRepoResponse creates a response to parse from CreateRepo response
+func CreateCreateRepoResponse() (response *CreateRepoResponse) {
+	response = &CreateRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/create_repo_authorization.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateRepoAuthorization invokes the cr.CreateRepoAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/createrepoauthorization.html
+func (client *Client) CreateRepoAuthorization(request *CreateRepoAuthorizationRequest) (response *CreateRepoAuthorizationResponse, err error) {
+	response = CreateCreateRepoAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRepoAuthorizationWithChan invokes the cr.CreateRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoAuthorizationWithChan(request *CreateRepoAuthorizationRequest) (<-chan *CreateRepoAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *CreateRepoAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRepoAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRepoAuthorizationWithCallback invokes the cr.CreateRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoAuthorizationWithCallback(request *CreateRepoAuthorizationRequest, callback func(response *CreateRepoAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRepoAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRepoAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRepoAuthorizationRequest is the request struct for api CreateRepoAuthorization
+type CreateRepoAuthorizationRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// CreateRepoAuthorizationResponse is the response struct for api CreateRepoAuthorization
+type CreateRepoAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateRepoAuthorizationRequest creates a request to invoke CreateRepoAuthorization API
+func CreateCreateRepoAuthorizationRequest() (request *CreateRepoAuthorizationRequest) {
+	request = &CreateRepoAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateRepoAuthorization", "/repos/[RepoNamespace]/[RepoName]/authorizations", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateRepoAuthorizationResponse creates a response to parse from CreateRepoAuthorization response
+func CreateCreateRepoAuthorizationResponse() (response *CreateRepoAuthorizationResponse) {
+	response = &CreateRepoAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/create_repo_build_rule.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateRepoBuildRule invokes the cr.CreateRepoBuildRule API synchronously
+// api document: https://help.aliyun.com/api/cr/createrepobuildrule.html
+func (client *Client) CreateRepoBuildRule(request *CreateRepoBuildRuleRequest) (response *CreateRepoBuildRuleResponse, err error) {
+	response = CreateCreateRepoBuildRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRepoBuildRuleWithChan invokes the cr.CreateRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoBuildRuleWithChan(request *CreateRepoBuildRuleRequest) (<-chan *CreateRepoBuildRuleResponse, <-chan error) {
+	responseChan := make(chan *CreateRepoBuildRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRepoBuildRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRepoBuildRuleWithCallback invokes the cr.CreateRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoBuildRuleWithCallback(request *CreateRepoBuildRuleRequest, callback func(response *CreateRepoBuildRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRepoBuildRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRepoBuildRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRepoBuildRuleRequest is the request struct for api CreateRepoBuildRule
+type CreateRepoBuildRuleRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// CreateRepoBuildRuleResponse is the response struct for api CreateRepoBuildRule
+type CreateRepoBuildRuleResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateRepoBuildRuleRequest creates a request to invoke CreateRepoBuildRule API
+func CreateCreateRepoBuildRuleRequest() (request *CreateRepoBuildRuleRequest) {
+	request = &CreateRepoBuildRuleRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateRepoBuildRule", "/repos/[RepoNamespace]/[RepoName]/rules", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateRepoBuildRuleResponse creates a response to parse from CreateRepoBuildRule response
+func CreateCreateRepoBuildRuleResponse() (response *CreateRepoBuildRuleResponse) {
+	response = &CreateRepoBuildRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/create_repo_sync_task.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateRepoSyncTask invokes the cr.CreateRepoSyncTask API synchronously
+// api document: https://help.aliyun.com/api/cr/createreposynctask.html
+func (client *Client) CreateRepoSyncTask(request *CreateRepoSyncTaskRequest) (response *CreateRepoSyncTaskResponse, err error) {
+	response = CreateCreateRepoSyncTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRepoSyncTaskWithChan invokes the cr.CreateRepoSyncTask API asynchronously
+// api document: https://help.aliyun.com/api/cr/createreposynctask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoSyncTaskWithChan(request *CreateRepoSyncTaskRequest) (<-chan *CreateRepoSyncTaskResponse, <-chan error) {
+	responseChan := make(chan *CreateRepoSyncTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRepoSyncTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRepoSyncTaskWithCallback invokes the cr.CreateRepoSyncTask API asynchronously
+// api document: https://help.aliyun.com/api/cr/createreposynctask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoSyncTaskWithCallback(request *CreateRepoSyncTaskRequest, callback func(response *CreateRepoSyncTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRepoSyncTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRepoSyncTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRepoSyncTaskRequest is the request struct for api CreateRepoSyncTask
+type CreateRepoSyncTaskRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// CreateRepoSyncTaskResponse is the response struct for api CreateRepoSyncTask
+type CreateRepoSyncTaskResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateRepoSyncTaskRequest creates a request to invoke CreateRepoSyncTask API
+func CreateCreateRepoSyncTaskRequest() (request *CreateRepoSyncTaskRequest) {
+	request = &CreateRepoSyncTaskRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateRepoSyncTask", "/repos/[RepoNamespace]/[RepoName]/syncTasks", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateRepoSyncTaskResponse creates a response to parse from CreateRepoSyncTask response
+func CreateCreateRepoSyncTaskResponse() (response *CreateRepoSyncTaskResponse) {
+	response = &CreateRepoSyncTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/create_repo_webhook.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateRepoWebhook invokes the cr.CreateRepoWebhook API synchronously
+// api document: https://help.aliyun.com/api/cr/createrepowebhook.html
+func (client *Client) CreateRepoWebhook(request *CreateRepoWebhookRequest) (response *CreateRepoWebhookResponse, err error) {
+	response = CreateCreateRepoWebhookResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRepoWebhookWithChan invokes the cr.CreateRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoWebhookWithChan(request *CreateRepoWebhookRequest) (<-chan *CreateRepoWebhookResponse, <-chan error) {
+	responseChan := make(chan *CreateRepoWebhookResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRepoWebhook(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRepoWebhookWithCallback invokes the cr.CreateRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/createrepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRepoWebhookWithCallback(request *CreateRepoWebhookRequest, callback func(response *CreateRepoWebhookResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRepoWebhookResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRepoWebhook(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRepoWebhookRequest is the request struct for api CreateRepoWebhook
+type CreateRepoWebhookRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// CreateRepoWebhookResponse is the response struct for api CreateRepoWebhook
+type CreateRepoWebhookResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateRepoWebhookRequest creates a request to invoke CreateRepoWebhook API
+func CreateCreateRepoWebhookRequest() (request *CreateRepoWebhookRequest) {
+	request = &CreateRepoWebhookRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateRepoWebhook", "/repos/[RepoNamespace]/[RepoName]/webhooks", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateRepoWebhookResponse creates a response to parse from CreateRepoWebhook response
+func CreateCreateRepoWebhookResponse() (response *CreateRepoWebhookResponse) {
+	response = &CreateRepoWebhookResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/create_user_info.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateUserInfo invokes the cr.CreateUserInfo API synchronously
+// api document: https://help.aliyun.com/api/cr/createuserinfo.html
+func (client *Client) CreateUserInfo(request *CreateUserInfoRequest) (response *CreateUserInfoResponse, err error) {
+	response = CreateCreateUserInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateUserInfoWithChan invokes the cr.CreateUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/createuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserInfoWithChan(request *CreateUserInfoRequest) (<-chan *CreateUserInfoResponse, <-chan error) {
+	responseChan := make(chan *CreateUserInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateUserInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateUserInfoWithCallback invokes the cr.CreateUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/createuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserInfoWithCallback(request *CreateUserInfoRequest, callback func(response *CreateUserInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateUserInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateUserInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateUserInfoRequest is the request struct for api CreateUserInfo
+type CreateUserInfoRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateUserInfoResponse is the response struct for api CreateUserInfo
+type CreateUserInfoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateUserInfoRequest creates a request to invoke CreateUserInfo API
+func CreateCreateUserInfoRequest() (request *CreateUserInfoRequest) {
+	request = &CreateUserInfoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateUserInfo", "/users", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateUserInfoResponse creates a response to parse from CreateUserInfo response
+func CreateCreateUserInfoResponse() (response *CreateUserInfoResponse) {
+	response = &CreateUserInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/create_user_source_account.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateUserSourceAccount invokes the cr.CreateUserSourceAccount API synchronously
+// api document: https://help.aliyun.com/api/cr/createusersourceaccount.html
+func (client *Client) CreateUserSourceAccount(request *CreateUserSourceAccountRequest) (response *CreateUserSourceAccountResponse, err error) {
+	response = CreateCreateUserSourceAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateUserSourceAccountWithChan invokes the cr.CreateUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/createusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserSourceAccountWithChan(request *CreateUserSourceAccountRequest) (<-chan *CreateUserSourceAccountResponse, <-chan error) {
+	responseChan := make(chan *CreateUserSourceAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateUserSourceAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateUserSourceAccountWithCallback invokes the cr.CreateUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/createusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateUserSourceAccountWithCallback(request *CreateUserSourceAccountRequest, callback func(response *CreateUserSourceAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateUserSourceAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateUserSourceAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateUserSourceAccountRequest is the request struct for api CreateUserSourceAccount
+type CreateUserSourceAccountRequest struct {
+	*requests.RoaRequest
+}
+
+// CreateUserSourceAccountResponse is the response struct for api CreateUserSourceAccount
+type CreateUserSourceAccountResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateCreateUserSourceAccountRequest creates a request to invoke CreateUserSourceAccount API
+func CreateCreateUserSourceAccountRequest() (request *CreateUserSourceAccountRequest) {
+	request = &CreateUserSourceAccountRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "CreateUserSourceAccount", "/users/sourceAccount", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateCreateUserSourceAccountResponse creates a response to parse from CreateUserSourceAccount response
+func CreateCreateUserSourceAccountResponse() (response *CreateUserSourceAccountResponse) {
+	response = &CreateUserSourceAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/delete_collection.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteCollection invokes the cr.DeleteCollection API synchronously
+// api document: https://help.aliyun.com/api/cr/deletecollection.html
+func (client *Client) DeleteCollection(request *DeleteCollectionRequest) (response *DeleteCollectionResponse, err error) {
+	response = CreateDeleteCollectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteCollectionWithChan invokes the cr.DeleteCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletecollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCollectionWithChan(request *DeleteCollectionRequest) (<-chan *DeleteCollectionResponse, <-chan error) {
+	responseChan := make(chan *DeleteCollectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCollection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteCollectionWithCallback invokes the cr.DeleteCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletecollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCollectionWithCallback(request *DeleteCollectionRequest, callback func(response *DeleteCollectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteCollectionResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCollection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteCollectionRequest is the request struct for api DeleteCollection
+type DeleteCollectionRequest struct {
+	*requests.RoaRequest
+	CollectionId requests.Integer `position:"Path" name:"CollectionId"`
+}
+
+// DeleteCollectionResponse is the response struct for api DeleteCollection
+type DeleteCollectionResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteCollectionRequest creates a request to invoke DeleteCollection API
+func CreateDeleteCollectionRequest() (request *DeleteCollectionRequest) {
+	request = &DeleteCollectionRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteCollection", "/collections/[CollectionId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteCollectionResponse creates a response to parse from DeleteCollection response
+func CreateDeleteCollectionResponse() (response *DeleteCollectionResponse) {
+	response = &DeleteCollectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/delete_image.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteImage invokes the cr.DeleteImage API synchronously
+// api document: https://help.aliyun.com/api/cr/deleteimage.html
+func (client *Client) DeleteImage(request *DeleteImageRequest) (response *DeleteImageResponse, err error) {
+	response = CreateDeleteImageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteImageWithChan invokes the cr.DeleteImage API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleteimage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteImageWithChan(request *DeleteImageRequest) (<-chan *DeleteImageResponse, <-chan error) {
+	responseChan := make(chan *DeleteImageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteImage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteImageWithCallback invokes the cr.DeleteImage API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleteimage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteImageWithCallback(request *DeleteImageRequest, callback func(response *DeleteImageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteImageResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteImage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteImageRequest is the request struct for api DeleteImage
+type DeleteImageRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	Tag           string `position:"Path" name:"Tag"`
+}
+
+// DeleteImageResponse is the response struct for api DeleteImage
+type DeleteImageResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteImageRequest creates a request to invoke DeleteImage API
+func CreateDeleteImageRequest() (request *DeleteImageRequest) {
+	request = &DeleteImageRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteImage", "/repos/[RepoNamespace]/[RepoName]/tags/[Tag]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteImageResponse creates a response to parse from DeleteImage response
+func CreateDeleteImageResponse() (response *DeleteImageResponse) {
+	response = &DeleteImageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/delete_namespace.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteNamespace invokes the cr.DeleteNamespace API synchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespace.html
+func (client *Client) DeleteNamespace(request *DeleteNamespaceRequest) (response *DeleteNamespaceResponse, err error) {
+	response = CreateDeleteNamespaceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteNamespaceWithChan invokes the cr.DeleteNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNamespaceWithChan(request *DeleteNamespaceRequest) (<-chan *DeleteNamespaceResponse, <-chan error) {
+	responseChan := make(chan *DeleteNamespaceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteNamespace(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteNamespaceWithCallback invokes the cr.DeleteNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNamespaceWithCallback(request *DeleteNamespaceRequest, callback func(response *DeleteNamespaceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteNamespaceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteNamespace(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteNamespaceRequest is the request struct for api DeleteNamespace
+type DeleteNamespaceRequest struct {
+	*requests.RoaRequest
+	Namespace string `position:"Path" name:"Namespace"`
+}
+
+// DeleteNamespaceResponse is the response struct for api DeleteNamespace
+type DeleteNamespaceResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteNamespaceRequest creates a request to invoke DeleteNamespace API
+func CreateDeleteNamespaceRequest() (request *DeleteNamespaceRequest) {
+	request = &DeleteNamespaceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteNamespace", "/namespace/[Namespace]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteNamespaceResponse creates a response to parse from DeleteNamespace response
+func CreateDeleteNamespaceResponse() (response *DeleteNamespaceResponse) {
+	response = &DeleteNamespaceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/delete_namespace_authorization.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteNamespaceAuthorization invokes the cr.DeleteNamespaceAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespaceauthorization.html
+func (client *Client) DeleteNamespaceAuthorization(request *DeleteNamespaceAuthorizationRequest) (response *DeleteNamespaceAuthorizationResponse, err error) {
+	response = CreateDeleteNamespaceAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteNamespaceAuthorizationWithChan invokes the cr.DeleteNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNamespaceAuthorizationWithChan(request *DeleteNamespaceAuthorizationRequest) (<-chan *DeleteNamespaceAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *DeleteNamespaceAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteNamespaceAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteNamespaceAuthorizationWithCallback invokes the cr.DeleteNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/deletenamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNamespaceAuthorizationWithCallback(request *DeleteNamespaceAuthorizationRequest, callback func(response *DeleteNamespaceAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteNamespaceAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteNamespaceAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteNamespaceAuthorizationRequest is the request struct for api DeleteNamespaceAuthorization
+type DeleteNamespaceAuthorizationRequest struct {
+	*requests.RoaRequest
+	AuthorizeId requests.Integer `position:"Path" name:"AuthorizeId"`
+	Namespace   string           `position:"Path" name:"Namespace"`
+}
+
+// DeleteNamespaceAuthorizationResponse is the response struct for api DeleteNamespaceAuthorization
+type DeleteNamespaceAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteNamespaceAuthorizationRequest creates a request to invoke DeleteNamespaceAuthorization API
+func CreateDeleteNamespaceAuthorizationRequest() (request *DeleteNamespaceAuthorizationRequest) {
+	request = &DeleteNamespaceAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteNamespaceAuthorization", "/namespace/[Namespace]/authorizations/[AuthorizeId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteNamespaceAuthorizationResponse creates a response to parse from DeleteNamespaceAuthorization response
+func CreateDeleteNamespaceAuthorizationResponse() (response *DeleteNamespaceAuthorizationResponse) {
+	response = &DeleteNamespaceAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/delete_repo.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteRepo invokes the cr.DeleteRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/deleterepo.html
+func (client *Client) DeleteRepo(request *DeleteRepoRequest) (response *DeleteRepoResponse, err error) {
+	response = CreateDeleteRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteRepoWithChan invokes the cr.DeleteRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoWithChan(request *DeleteRepoRequest) (<-chan *DeleteRepoResponse, <-chan error) {
+	responseChan := make(chan *DeleteRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteRepoWithCallback invokes the cr.DeleteRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoWithCallback(request *DeleteRepoRequest, callback func(response *DeleteRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteRepoRequest is the request struct for api DeleteRepo
+type DeleteRepoRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// DeleteRepoResponse is the response struct for api DeleteRepo
+type DeleteRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteRepoRequest creates a request to invoke DeleteRepo API
+func CreateDeleteRepoRequest() (request *DeleteRepoRequest) {
+	request = &DeleteRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteRepo", "/repos/[RepoNamespace]/[RepoName]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteRepoResponse creates a response to parse from DeleteRepo response
+func CreateDeleteRepoResponse() (response *DeleteRepoResponse) {
+	response = &DeleteRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/delete_repo_authorization.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteRepoAuthorization invokes the cr.DeleteRepoAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/deleterepoauthorization.html
+func (client *Client) DeleteRepoAuthorization(request *DeleteRepoAuthorizationRequest) (response *DeleteRepoAuthorizationResponse, err error) {
+	response = CreateDeleteRepoAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteRepoAuthorizationWithChan invokes the cr.DeleteRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoAuthorizationWithChan(request *DeleteRepoAuthorizationRequest) (<-chan *DeleteRepoAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *DeleteRepoAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteRepoAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteRepoAuthorizationWithCallback invokes the cr.DeleteRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoAuthorizationWithCallback(request *DeleteRepoAuthorizationRequest, callback func(response *DeleteRepoAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteRepoAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteRepoAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteRepoAuthorizationRequest is the request struct for api DeleteRepoAuthorization
+type DeleteRepoAuthorizationRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	AuthorizeId   requests.Integer `position:"Path" name:"AuthorizeId"`
+}
+
+// DeleteRepoAuthorizationResponse is the response struct for api DeleteRepoAuthorization
+type DeleteRepoAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteRepoAuthorizationRequest creates a request to invoke DeleteRepoAuthorization API
+func CreateDeleteRepoAuthorizationRequest() (request *DeleteRepoAuthorizationRequest) {
+	request = &DeleteRepoAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteRepoAuthorization", "/repos/[RepoNamespace]/[RepoName]/authorizations/[AuthorizeId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteRepoAuthorizationResponse creates a response to parse from DeleteRepoAuthorization response
+func CreateDeleteRepoAuthorizationResponse() (response *DeleteRepoAuthorizationResponse) {
+	response = &DeleteRepoAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/delete_repo_build_rule.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteRepoBuildRule invokes the cr.DeleteRepoBuildRule API synchronously
+// api document: https://help.aliyun.com/api/cr/deleterepobuildrule.html
+func (client *Client) DeleteRepoBuildRule(request *DeleteRepoBuildRuleRequest) (response *DeleteRepoBuildRuleResponse, err error) {
+	response = CreateDeleteRepoBuildRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteRepoBuildRuleWithChan invokes the cr.DeleteRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoBuildRuleWithChan(request *DeleteRepoBuildRuleRequest) (<-chan *DeleteRepoBuildRuleResponse, <-chan error) {
+	responseChan := make(chan *DeleteRepoBuildRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteRepoBuildRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteRepoBuildRuleWithCallback invokes the cr.DeleteRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoBuildRuleWithCallback(request *DeleteRepoBuildRuleRequest, callback func(response *DeleteRepoBuildRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteRepoBuildRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteRepoBuildRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteRepoBuildRuleRequest is the request struct for api DeleteRepoBuildRule
+type DeleteRepoBuildRuleRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	BuildRuleId   requests.Integer `position:"Path" name:"BuildRuleId"`
+}
+
+// DeleteRepoBuildRuleResponse is the response struct for api DeleteRepoBuildRule
+type DeleteRepoBuildRuleResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteRepoBuildRuleRequest creates a request to invoke DeleteRepoBuildRule API
+func CreateDeleteRepoBuildRuleRequest() (request *DeleteRepoBuildRuleRequest) {
+	request = &DeleteRepoBuildRuleRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteRepoBuildRule", "/repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteRepoBuildRuleResponse creates a response to parse from DeleteRepoBuildRule response
+func CreateDeleteRepoBuildRuleResponse() (response *DeleteRepoBuildRuleResponse) {
+	response = &DeleteRepoBuildRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/delete_repo_webhook.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteRepoWebhook invokes the cr.DeleteRepoWebhook API synchronously
+// api document: https://help.aliyun.com/api/cr/deleterepowebhook.html
+func (client *Client) DeleteRepoWebhook(request *DeleteRepoWebhookRequest) (response *DeleteRepoWebhookResponse, err error) {
+	response = CreateDeleteRepoWebhookResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteRepoWebhookWithChan invokes the cr.DeleteRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoWebhookWithChan(request *DeleteRepoWebhookRequest) (<-chan *DeleteRepoWebhookResponse, <-chan error) {
+	responseChan := make(chan *DeleteRepoWebhookResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteRepoWebhook(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteRepoWebhookWithCallback invokes the cr.DeleteRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleterepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRepoWebhookWithCallback(request *DeleteRepoWebhookRequest, callback func(response *DeleteRepoWebhookResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteRepoWebhookResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteRepoWebhook(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteRepoWebhookRequest is the request struct for api DeleteRepoWebhook
+type DeleteRepoWebhookRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	WebhookId     requests.Integer `position:"Path" name:"WebhookId"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+}
+
+// DeleteRepoWebhookResponse is the response struct for api DeleteRepoWebhook
+type DeleteRepoWebhookResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteRepoWebhookRequest creates a request to invoke DeleteRepoWebhook API
+func CreateDeleteRepoWebhookRequest() (request *DeleteRepoWebhookRequest) {
+	request = &DeleteRepoWebhookRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteRepoWebhook", "/repos/[RepoNamespace]/[RepoName]/webhooks/[WebhookId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteRepoWebhookResponse creates a response to parse from DeleteRepoWebhook response
+func CreateDeleteRepoWebhookResponse() (response *DeleteRepoWebhookResponse) {
+	response = &DeleteRepoWebhookResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/delete_user_source_account.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteUserSourceAccount invokes the cr.DeleteUserSourceAccount API synchronously
+// api document: https://help.aliyun.com/api/cr/deleteusersourceaccount.html
+func (client *Client) DeleteUserSourceAccount(request *DeleteUserSourceAccountRequest) (response *DeleteUserSourceAccountResponse, err error) {
+	response = CreateDeleteUserSourceAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteUserSourceAccountWithChan invokes the cr.DeleteUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleteusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteUserSourceAccountWithChan(request *DeleteUserSourceAccountRequest) (<-chan *DeleteUserSourceAccountResponse, <-chan error) {
+	responseChan := make(chan *DeleteUserSourceAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteUserSourceAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteUserSourceAccountWithCallback invokes the cr.DeleteUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/deleteusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteUserSourceAccountWithCallback(request *DeleteUserSourceAccountRequest, callback func(response *DeleteUserSourceAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteUserSourceAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteUserSourceAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteUserSourceAccountRequest is the request struct for api DeleteUserSourceAccount
+type DeleteUserSourceAccountRequest struct {
+	*requests.RoaRequest
+	SourceAccountId requests.Integer `position:"Path" name:"SourceAccountId"`
+}
+
+// DeleteUserSourceAccountResponse is the response struct for api DeleteUserSourceAccount
+type DeleteUserSourceAccountResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateDeleteUserSourceAccountRequest creates a request to invoke DeleteUserSourceAccount API
+func CreateDeleteUserSourceAccountRequest() (request *DeleteUserSourceAccountRequest) {
+	request = &DeleteUserSourceAccountRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "DeleteUserSourceAccount", "/users/sourceAccount/[SourceAccountId]", "", "")
+	request.Method = requests.DELETE
+	return
+}
+
+// CreateDeleteUserSourceAccountResponse creates a response to parse from DeleteUserSourceAccount response
+func CreateDeleteUserSourceAccountResponse() (response *DeleteUserSourceAccountResponse) {
+	response = &DeleteUserSourceAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/get_authorization_token.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetAuthorizationToken invokes the cr.GetAuthorizationToken API synchronously
+// api document: https://help.aliyun.com/api/cr/getauthorizationtoken.html
+func (client *Client) GetAuthorizationToken(request *GetAuthorizationTokenRequest) (response *GetAuthorizationTokenResponse, err error) {
+	response = CreateGetAuthorizationTokenResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAuthorizationTokenWithChan invokes the cr.GetAuthorizationToken API asynchronously
+// api document: https://help.aliyun.com/api/cr/getauthorizationtoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAuthorizationTokenWithChan(request *GetAuthorizationTokenRequest) (<-chan *GetAuthorizationTokenResponse, <-chan error) {
+	responseChan := make(chan *GetAuthorizationTokenResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAuthorizationToken(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAuthorizationTokenWithCallback invokes the cr.GetAuthorizationToken API asynchronously
+// api document: https://help.aliyun.com/api/cr/getauthorizationtoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAuthorizationTokenWithCallback(request *GetAuthorizationTokenRequest, callback func(response *GetAuthorizationTokenResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAuthorizationTokenResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAuthorizationToken(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAuthorizationTokenRequest is the request struct for api GetAuthorizationToken
+type GetAuthorizationTokenRequest struct {
+	*requests.RoaRequest
+}
+
+// GetAuthorizationTokenResponse is the response struct for api GetAuthorizationToken
+type GetAuthorizationTokenResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetAuthorizationTokenRequest creates a request to invoke GetAuthorizationToken API
+func CreateGetAuthorizationTokenRequest() (request *GetAuthorizationTokenRequest) {
+	request = &GetAuthorizationTokenRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetAuthorizationToken", "/tokens", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetAuthorizationTokenResponse creates a response to parse from GetAuthorizationToken response
+func CreateGetAuthorizationTokenResponse() (response *GetAuthorizationTokenResponse) {
+	response = &GetAuthorizationTokenResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_collection.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetCollection invokes the cr.GetCollection API synchronously
+// api document: https://help.aliyun.com/api/cr/getcollection.html
+func (client *Client) GetCollection(request *GetCollectionRequest) (response *GetCollectionResponse, err error) {
+	response = CreateGetCollectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetCollectionWithChan invokes the cr.GetCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/getcollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCollectionWithChan(request *GetCollectionRequest) (<-chan *GetCollectionResponse, <-chan error) {
+	responseChan := make(chan *GetCollectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetCollection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetCollectionWithCallback invokes the cr.GetCollection API asynchronously
+// api document: https://help.aliyun.com/api/cr/getcollection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCollectionWithCallback(request *GetCollectionRequest, callback func(response *GetCollectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetCollectionResponse
+		var err error
+		defer close(result)
+		response, err = client.GetCollection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetCollectionRequest is the request struct for api GetCollection
+type GetCollectionRequest struct {
+	*requests.RoaRequest
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Page     requests.Integer `position:"Query" name:"Page"`
+}
+
+// GetCollectionResponse is the response struct for api GetCollection
+type GetCollectionResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetCollectionRequest creates a request to invoke GetCollection API
+func CreateGetCollectionRequest() (request *GetCollectionRequest) {
+	request = &GetCollectionRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetCollection", "/collections", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetCollectionResponse creates a response to parse from GetCollection response
+func CreateGetCollectionResponse() (response *GetCollectionResponse) {
+	response = &GetCollectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_image_layer.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetImageLayer invokes the cr.GetImageLayer API synchronously
+// api document: https://help.aliyun.com/api/cr/getimagelayer.html
+func (client *Client) GetImageLayer(request *GetImageLayerRequest) (response *GetImageLayerResponse, err error) {
+	response = CreateGetImageLayerResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetImageLayerWithChan invokes the cr.GetImageLayer API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagelayer.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageLayerWithChan(request *GetImageLayerRequest) (<-chan *GetImageLayerResponse, <-chan error) {
+	responseChan := make(chan *GetImageLayerResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetImageLayer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetImageLayerWithCallback invokes the cr.GetImageLayer API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagelayer.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageLayerWithCallback(request *GetImageLayerRequest, callback func(response *GetImageLayerResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetImageLayerResponse
+		var err error
+		defer close(result)
+		response, err = client.GetImageLayer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetImageLayerRequest is the request struct for api GetImageLayer
+type GetImageLayerRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	Tag           string `position:"Path" name:"Tag"`
+}
+
+// GetImageLayerResponse is the response struct for api GetImageLayer
+type GetImageLayerResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetImageLayerRequest creates a request to invoke GetImageLayer API
+func CreateGetImageLayerRequest() (request *GetImageLayerRequest) {
+	request = &GetImageLayerRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetImageLayer", "/repos/[RepoNamespace]/[RepoName]/tags/[Tag]/layers", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetImageLayerResponse creates a response to parse from GetImageLayer response
+func CreateGetImageLayerResponse() (response *GetImageLayerResponse) {
+	response = &GetImageLayerResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_image_manifest.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetImageManifest invokes the cr.GetImageManifest API synchronously
+// api document: https://help.aliyun.com/api/cr/getimagemanifest.html
+func (client *Client) GetImageManifest(request *GetImageManifestRequest) (response *GetImageManifestResponse, err error) {
+	response = CreateGetImageManifestResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetImageManifestWithChan invokes the cr.GetImageManifest API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagemanifest.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageManifestWithChan(request *GetImageManifestRequest) (<-chan *GetImageManifestResponse, <-chan error) {
+	responseChan := make(chan *GetImageManifestResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetImageManifest(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetImageManifestWithCallback invokes the cr.GetImageManifest API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagemanifest.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageManifestWithCallback(request *GetImageManifestRequest, callback func(response *GetImageManifestResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetImageManifestResponse
+		var err error
+		defer close(result)
+		response, err = client.GetImageManifest(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetImageManifestRequest is the request struct for api GetImageManifest
+type GetImageManifestRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	Tag           string           `position:"Path" name:"Tag"`
+	SchemaVersion requests.Integer `position:"Query" name:"SchemaVersion"`
+}
+
+// GetImageManifestResponse is the response struct for api GetImageManifest
+type GetImageManifestResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetImageManifestRequest creates a request to invoke GetImageManifest API
+func CreateGetImageManifestRequest() (request *GetImageManifestRequest) {
+	request = &GetImageManifestRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetImageManifest", "/repos/[RepoNamespace]/[RepoName]/tags/[Tag]/manifest", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetImageManifestResponse creates a response to parse from GetImageManifest response
+func CreateGetImageManifestResponse() (response *GetImageManifestResponse) {
+	response = &GetImageManifestResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_image_scan.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetImageScan invokes the cr.GetImageScan API synchronously
+// api document: https://help.aliyun.com/api/cr/getimagescan.html
+func (client *Client) GetImageScan(request *GetImageScanRequest) (response *GetImageScanResponse, err error) {
+	response = CreateGetImageScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetImageScanWithChan invokes the cr.GetImageScan API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageScanWithChan(request *GetImageScanRequest) (<-chan *GetImageScanResponse, <-chan error) {
+	responseChan := make(chan *GetImageScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetImageScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetImageScanWithCallback invokes the cr.GetImageScan API asynchronously
+// api document: https://help.aliyun.com/api/cr/getimagescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetImageScanWithCallback(request *GetImageScanRequest, callback func(response *GetImageScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetImageScanResponse
+		var err error
+		defer close(result)
+		response, err = client.GetImageScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetImageScanRequest is the request struct for api GetImageScan
+type GetImageScanRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	Tag           string `position:"Path" name:"Tag"`
+}
+
+// GetImageScanResponse is the response struct for api GetImageScan
+type GetImageScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetImageScanRequest creates a request to invoke GetImageScan API
+func CreateGetImageScanRequest() (request *GetImageScanRequest) {
+	request = &GetImageScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetImageScan", "/repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scan", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetImageScanResponse creates a response to parse from GetImageScan response
+func CreateGetImageScanResponse() (response *GetImageScanResponse) {
+	response = &GetImageScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/get_mirror_list.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetMirrorList invokes the cr.GetMirrorList API synchronously
+// api document: https://help.aliyun.com/api/cr/getmirrorlist.html
+func (client *Client) GetMirrorList(request *GetMirrorListRequest) (response *GetMirrorListResponse, err error) {
+	response = CreateGetMirrorListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetMirrorListWithChan invokes the cr.GetMirrorList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getmirrorlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetMirrorListWithChan(request *GetMirrorListRequest) (<-chan *GetMirrorListResponse, <-chan error) {
+	responseChan := make(chan *GetMirrorListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetMirrorList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetMirrorListWithCallback invokes the cr.GetMirrorList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getmirrorlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetMirrorListWithCallback(request *GetMirrorListRequest, callback func(response *GetMirrorListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetMirrorListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetMirrorList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetMirrorListRequest is the request struct for api GetMirrorList
+type GetMirrorListRequest struct {
+	*requests.RoaRequest
+}
+
+// GetMirrorListResponse is the response struct for api GetMirrorList
+type GetMirrorListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetMirrorListRequest creates a request to invoke GetMirrorList API
+func CreateGetMirrorListRequest() (request *GetMirrorListRequest) {
+	request = &GetMirrorListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetMirrorList", "/mirrors", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetMirrorListResponse creates a response to parse from GetMirrorList response
+func CreateGetMirrorListResponse() (response *GetMirrorListResponse) {
+	response = &GetMirrorListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/get_namespace.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetNamespace invokes the cr.GetNamespace API synchronously
+// api document: https://help.aliyun.com/api/cr/getnamespace.html
+func (client *Client) GetNamespace(request *GetNamespaceRequest) (response *GetNamespaceResponse, err error) {
+	response = CreateGetNamespaceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetNamespaceWithChan invokes the cr.GetNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceWithChan(request *GetNamespaceRequest) (<-chan *GetNamespaceResponse, <-chan error) {
+	responseChan := make(chan *GetNamespaceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetNamespace(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetNamespaceWithCallback invokes the cr.GetNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceWithCallback(request *GetNamespaceRequest, callback func(response *GetNamespaceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetNamespaceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetNamespace(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetNamespaceRequest is the request struct for api GetNamespace
+type GetNamespaceRequest struct {
+	*requests.RoaRequest
+	Namespace string `position:"Path" name:"Namespace"`
+}
+
+// GetNamespaceResponse is the response struct for api GetNamespace
+type GetNamespaceResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetNamespaceRequest creates a request to invoke GetNamespace API
+func CreateGetNamespaceRequest() (request *GetNamespaceRequest) {
+	request = &GetNamespaceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetNamespace", "/namespace/[Namespace]", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetNamespaceResponse creates a response to parse from GetNamespace response
+func CreateGetNamespaceResponse() (response *GetNamespaceResponse) {
+	response = &GetNamespaceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_namespace_authorization_list.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetNamespaceAuthorizationList invokes the cr.GetNamespaceAuthorizationList API synchronously
+// api document: https://help.aliyun.com/api/cr/getnamespaceauthorizationlist.html
+func (client *Client) GetNamespaceAuthorizationList(request *GetNamespaceAuthorizationListRequest) (response *GetNamespaceAuthorizationListResponse, err error) {
+	response = CreateGetNamespaceAuthorizationListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetNamespaceAuthorizationListWithChan invokes the cr.GetNamespaceAuthorizationList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespaceauthorizationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceAuthorizationListWithChan(request *GetNamespaceAuthorizationListRequest) (<-chan *GetNamespaceAuthorizationListResponse, <-chan error) {
+	responseChan := make(chan *GetNamespaceAuthorizationListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetNamespaceAuthorizationList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetNamespaceAuthorizationListWithCallback invokes the cr.GetNamespaceAuthorizationList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespaceauthorizationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceAuthorizationListWithCallback(request *GetNamespaceAuthorizationListRequest, callback func(response *GetNamespaceAuthorizationListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetNamespaceAuthorizationListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetNamespaceAuthorizationList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetNamespaceAuthorizationListRequest is the request struct for api GetNamespaceAuthorizationList
+type GetNamespaceAuthorizationListRequest struct {
+	*requests.RoaRequest
+	Namespace string `position:"Path" name:"Namespace"`
+	Authorize string `position:"Query" name:"Authorize"`
+}
+
+// GetNamespaceAuthorizationListResponse is the response struct for api GetNamespaceAuthorizationList
+type GetNamespaceAuthorizationListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetNamespaceAuthorizationListRequest creates a request to invoke GetNamespaceAuthorizationList API
+func CreateGetNamespaceAuthorizationListRequest() (request *GetNamespaceAuthorizationListRequest) {
+	request = &GetNamespaceAuthorizationListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetNamespaceAuthorizationList", "/namespace/[Namespace]/authorizations", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetNamespaceAuthorizationListResponse creates a response to parse from GetNamespaceAuthorizationList response
+func CreateGetNamespaceAuthorizationListResponse() (response *GetNamespaceAuthorizationListResponse) {
+	response = &GetNamespaceAuthorizationListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_namespace_list.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetNamespaceList invokes the cr.GetNamespaceList API synchronously
+// api document: https://help.aliyun.com/api/cr/getnamespacelist.html
+func (client *Client) GetNamespaceList(request *GetNamespaceListRequest) (response *GetNamespaceListResponse, err error) {
+	response = CreateGetNamespaceListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetNamespaceListWithChan invokes the cr.GetNamespaceList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespacelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceListWithChan(request *GetNamespaceListRequest) (<-chan *GetNamespaceListResponse, <-chan error) {
+	responseChan := make(chan *GetNamespaceListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetNamespaceList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetNamespaceListWithCallback invokes the cr.GetNamespaceList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getnamespacelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNamespaceListWithCallback(request *GetNamespaceListRequest, callback func(response *GetNamespaceListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetNamespaceListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetNamespaceList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetNamespaceListRequest is the request struct for api GetNamespaceList
+type GetNamespaceListRequest struct {
+	*requests.RoaRequest
+	Authorize string `position:"Query" name:"Authorize"`
+	Status    string `position:"Query" name:"Status"`
+}
+
+// GetNamespaceListResponse is the response struct for api GetNamespaceList
+type GetNamespaceListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetNamespaceListRequest creates a request to invoke GetNamespaceList API
+func CreateGetNamespaceListRequest() (request *GetNamespaceListRequest) {
+	request = &GetNamespaceListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetNamespaceList", "/namespace", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetNamespaceListResponse creates a response to parse from GetNamespaceList response
+func CreateGetNamespaceListResponse() (response *GetNamespaceListResponse) {
+	response = &GetNamespaceListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/get_region.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRegion invokes the cr.GetRegion API synchronously
+// api document: https://help.aliyun.com/api/cr/getregion.html
+func (client *Client) GetRegion(request *GetRegionRequest) (response *GetRegionResponse, err error) {
+	response = CreateGetRegionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRegionWithChan invokes the cr.GetRegion API asynchronously
+// api document: https://help.aliyun.com/api/cr/getregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRegionWithChan(request *GetRegionRequest) (<-chan *GetRegionResponse, <-chan error) {
+	responseChan := make(chan *GetRegionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRegion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRegionWithCallback invokes the cr.GetRegion API asynchronously
+// api document: https://help.aliyun.com/api/cr/getregion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRegionWithCallback(request *GetRegionRequest, callback func(response *GetRegionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRegionResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRegion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRegionRequest is the request struct for api GetRegion
+type GetRegionRequest struct {
+	*requests.RoaRequest
+	Domain string `position:"Query" name:"Domain"`
+}
+
+// GetRegionResponse is the response struct for api GetRegion
+type GetRegionResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRegionRequest creates a request to invoke GetRegion API
+func CreateGetRegionRequest() (request *GetRegionRequest) {
+	request = &GetRegionRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRegion", "/regions", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRegionResponse creates a response to parse from GetRegion response
+func CreateGetRegionResponse() (response *GetRegionResponse) {
+	response = &GetRegionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/get_region_list.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRegionList invokes the cr.GetRegionList API synchronously
+// api document: https://help.aliyun.com/api/cr/getregionlist.html
+func (client *Client) GetRegionList(request *GetRegionListRequest) (response *GetRegionListResponse, err error) {
+	response = CreateGetRegionListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRegionListWithChan invokes the cr.GetRegionList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getregionlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRegionListWithChan(request *GetRegionListRequest) (<-chan *GetRegionListResponse, <-chan error) {
+	responseChan := make(chan *GetRegionListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRegionList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRegionListWithCallback invokes the cr.GetRegionList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getregionlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRegionListWithCallback(request *GetRegionListRequest, callback func(response *GetRegionListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRegionListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRegionList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRegionListRequest is the request struct for api GetRegionList
+type GetRegionListRequest struct {
+	*requests.RoaRequest
+}
+
+// GetRegionListResponse is the response struct for api GetRegionList
+type GetRegionListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRegionListRequest creates a request to invoke GetRegionList API
+func CreateGetRegionListRequest() (request *GetRegionListRequest) {
+	request = &GetRegionListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRegionList", "/regions", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRegionListResponse creates a response to parse from GetRegionList response
+func CreateGetRegionListResponse() (response *GetRegionListResponse) {
+	response = &GetRegionListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_repo.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepo invokes the cr.GetRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepo.html
+func (client *Client) GetRepo(request *GetRepoRequest) (response *GetRepoResponse, err error) {
+	response = CreateGetRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoWithChan invokes the cr.GetRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWithChan(request *GetRepoRequest) (<-chan *GetRepoResponse, <-chan error) {
+	responseChan := make(chan *GetRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoWithCallback invokes the cr.GetRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWithCallback(request *GetRepoRequest, callback func(response *GetRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoRequest is the request struct for api GetRepo
+type GetRepoRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// GetRepoResponse is the response struct for api GetRepo
+type GetRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoRequest creates a request to invoke GetRepo API
+func CreateGetRepoRequest() (request *GetRepoRequest) {
+	request = &GetRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepo", "/repos/[RepoNamespace]/[RepoName]", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoResponse creates a response to parse from GetRepo response
+func CreateGetRepoResponse() (response *GetRepoResponse) {
+	response = &GetRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_authorization_list.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoAuthorizationList invokes the cr.GetRepoAuthorizationList API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepoauthorizationlist.html
+func (client *Client) GetRepoAuthorizationList(request *GetRepoAuthorizationListRequest) (response *GetRepoAuthorizationListResponse, err error) {
+	response = CreateGetRepoAuthorizationListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoAuthorizationListWithChan invokes the cr.GetRepoAuthorizationList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepoauthorizationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoAuthorizationListWithChan(request *GetRepoAuthorizationListRequest) (<-chan *GetRepoAuthorizationListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoAuthorizationListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoAuthorizationList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoAuthorizationListWithCallback invokes the cr.GetRepoAuthorizationList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepoauthorizationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoAuthorizationListWithCallback(request *GetRepoAuthorizationListRequest, callback func(response *GetRepoAuthorizationListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoAuthorizationListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoAuthorizationList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoAuthorizationListRequest is the request struct for api GetRepoAuthorizationList
+type GetRepoAuthorizationListRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	Authorize     string `position:"Query" name:"Authorize"`
+}
+
+// GetRepoAuthorizationListResponse is the response struct for api GetRepoAuthorizationList
+type GetRepoAuthorizationListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoAuthorizationListRequest creates a request to invoke GetRepoAuthorizationList API
+func CreateGetRepoAuthorizationListRequest() (request *GetRepoAuthorizationListRequest) {
+	request = &GetRepoAuthorizationListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoAuthorizationList", "/repos/[RepoNamespace]/[RepoName]/authorizations", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoAuthorizationListResponse creates a response to parse from GetRepoAuthorizationList response
+func CreateGetRepoAuthorizationListResponse() (response *GetRepoAuthorizationListResponse) {
+	response = &GetRepoAuthorizationListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/get_repo_batch.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoBatch invokes the cr.GetRepoBatch API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepobatch.html
+func (client *Client) GetRepoBatch(request *GetRepoBatchRequest) (response *GetRepoBatchResponse, err error) {
+	response = CreateGetRepoBatchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoBatchWithChan invokes the cr.GetRepoBatch API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobatch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBatchWithChan(request *GetRepoBatchRequest) (<-chan *GetRepoBatchResponse, <-chan error) {
+	responseChan := make(chan *GetRepoBatchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoBatch(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoBatchWithCallback invokes the cr.GetRepoBatch API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobatch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBatchWithCallback(request *GetRepoBatchRequest, callback func(response *GetRepoBatchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoBatchResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoBatch(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoBatchRequest is the request struct for api GetRepoBatch
+type GetRepoBatchRequest struct {
+	*requests.RoaRequest
+	RepoIds string `position:"Query" name:"RepoIds"`
+}
+
+// GetRepoBatchResponse is the response struct for api GetRepoBatch
+type GetRepoBatchResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoBatchRequest creates a request to invoke GetRepoBatch API
+func CreateGetRepoBatchRequest() (request *GetRepoBatchRequest) {
+	request = &GetRepoBatchRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoBatch", "/batchsearch", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoBatchResponse creates a response to parse from GetRepoBatch response
+func CreateGetRepoBatchResponse() (response *GetRepoBatchResponse) {
+	response = &GetRepoBatchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_repo_build_list.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoBuildList invokes the cr.GetRepoBuildList API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlist.html
+func (client *Client) GetRepoBuildList(request *GetRepoBuildListRequest) (response *GetRepoBuildListResponse, err error) {
+	response = CreateGetRepoBuildListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoBuildListWithChan invokes the cr.GetRepoBuildList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildListWithChan(request *GetRepoBuildListRequest) (<-chan *GetRepoBuildListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoBuildListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoBuildList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoBuildListWithCallback invokes the cr.GetRepoBuildList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildListWithCallback(request *GetRepoBuildListRequest, callback func(response *GetRepoBuildListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoBuildListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoBuildList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoBuildListRequest is the request struct for api GetRepoBuildList
+type GetRepoBuildListRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Page          requests.Integer `position:"Query" name:"Page"`
+}
+
+// GetRepoBuildListResponse is the response struct for api GetRepoBuildList
+type GetRepoBuildListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoBuildListRequest creates a request to invoke GetRepoBuildList API
+func CreateGetRepoBuildListRequest() (request *GetRepoBuildListRequest) {
+	request = &GetRepoBuildListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoBuildList", "/repos/[RepoNamespace]/[RepoName]/build", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoBuildListResponse creates a response to parse from GetRepoBuildList response
+func CreateGetRepoBuildListResponse() (response *GetRepoBuildListResponse) {
+	response = &GetRepoBuildListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_build_logs.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoBuildLogs invokes the cr.GetRepoBuildLogs API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlogs.html
+func (client *Client) GetRepoBuildLogs(request *GetRepoBuildLogsRequest) (response *GetRepoBuildLogsResponse, err error) {
+	response = CreateGetRepoBuildLogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoBuildLogsWithChan invokes the cr.GetRepoBuildLogs API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildLogsWithChan(request *GetRepoBuildLogsRequest) (<-chan *GetRepoBuildLogsResponse, <-chan error) {
+	responseChan := make(chan *GetRepoBuildLogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoBuildLogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoBuildLogsWithCallback invokes the cr.GetRepoBuildLogs API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildLogsWithCallback(request *GetRepoBuildLogsRequest, callback func(response *GetRepoBuildLogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoBuildLogsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoBuildLogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoBuildLogsRequest is the request struct for api GetRepoBuildLogs
+type GetRepoBuildLogsRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	BuildId       string `position:"Path" name:"BuildId"`
+}
+
+// GetRepoBuildLogsResponse is the response struct for api GetRepoBuildLogs
+type GetRepoBuildLogsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoBuildLogsRequest creates a request to invoke GetRepoBuildLogs API
+func CreateGetRepoBuildLogsRequest() (request *GetRepoBuildLogsRequest) {
+	request = &GetRepoBuildLogsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoBuildLogs", "/repos/[RepoNamespace]/[RepoName]/build/[BuildId]/logs", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoBuildLogsResponse creates a response to parse from GetRepoBuildLogs response
+func CreateGetRepoBuildLogsResponse() (response *GetRepoBuildLogsResponse) {
+	response = &GetRepoBuildLogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_repo_build_rule_list.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoBuildRuleList invokes the cr.GetRepoBuildRuleList API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildrulelist.html
+func (client *Client) GetRepoBuildRuleList(request *GetRepoBuildRuleListRequest) (response *GetRepoBuildRuleListResponse, err error) {
+	response = CreateGetRepoBuildRuleListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoBuildRuleListWithChan invokes the cr.GetRepoBuildRuleList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildrulelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildRuleListWithChan(request *GetRepoBuildRuleListRequest) (<-chan *GetRepoBuildRuleListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoBuildRuleListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoBuildRuleList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoBuildRuleListWithCallback invokes the cr.GetRepoBuildRuleList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildrulelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildRuleListWithCallback(request *GetRepoBuildRuleListRequest, callback func(response *GetRepoBuildRuleListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoBuildRuleListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoBuildRuleList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoBuildRuleListRequest is the request struct for api GetRepoBuildRuleList
+type GetRepoBuildRuleListRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// GetRepoBuildRuleListResponse is the response struct for api GetRepoBuildRuleList
+type GetRepoBuildRuleListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoBuildRuleListRequest creates a request to invoke GetRepoBuildRuleList API
+func CreateGetRepoBuildRuleListRequest() (request *GetRepoBuildRuleListRequest) {
+	request = &GetRepoBuildRuleListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoBuildRuleList", "/repos/[RepoNamespace]/[RepoName]/rules", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoBuildRuleListResponse creates a response to parse from GetRepoBuildRuleList response
+func CreateGetRepoBuildRuleListResponse() (response *GetRepoBuildRuleListResponse) {
+	response = &GetRepoBuildRuleListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_build_status.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoBuildStatus invokes the cr.GetRepoBuildStatus API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildstatus.html
+func (client *Client) GetRepoBuildStatus(request *GetRepoBuildStatusRequest) (response *GetRepoBuildStatusResponse, err error) {
+	response = CreateGetRepoBuildStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoBuildStatusWithChan invokes the cr.GetRepoBuildStatus API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildStatusWithChan(request *GetRepoBuildStatusRequest) (<-chan *GetRepoBuildStatusResponse, <-chan error) {
+	responseChan := make(chan *GetRepoBuildStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoBuildStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoBuildStatusWithCallback invokes the cr.GetRepoBuildStatus API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepobuildstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoBuildStatusWithCallback(request *GetRepoBuildStatusRequest, callback func(response *GetRepoBuildStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoBuildStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoBuildStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoBuildStatusRequest is the request struct for api GetRepoBuildStatus
+type GetRepoBuildStatusRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	BuildId       string `position:"Path" name:"BuildId"`
+}
+
+// GetRepoBuildStatusResponse is the response struct for api GetRepoBuildStatus
+type GetRepoBuildStatusResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoBuildStatusRequest creates a request to invoke GetRepoBuildStatus API
+func CreateGetRepoBuildStatusRequest() (request *GetRepoBuildStatusRequest) {
+	request = &GetRepoBuildStatusRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoBuildStatus", "/repos/[RepoNamespace]/[RepoName]/build/[BuildId]/status", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoBuildStatusResponse creates a response to parse from GetRepoBuildStatus response
+func CreateGetRepoBuildStatusResponse() (response *GetRepoBuildStatusResponse) {
+	response = &GetRepoBuildStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_list.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoList invokes the cr.GetRepoList API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepolist.html
+func (client *Client) GetRepoList(request *GetRepoListRequest) (response *GetRepoListResponse, err error) {
+	response = CreateGetRepoListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoListWithChan invokes the cr.GetRepoList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoListWithChan(request *GetRepoListRequest) (<-chan *GetRepoListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoListWithCallback invokes the cr.GetRepoList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoListWithCallback(request *GetRepoListRequest, callback func(response *GetRepoListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoListRequest is the request struct for api GetRepoList
+type GetRepoListRequest struct {
+	*requests.RoaRequest
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Page     requests.Integer `position:"Query" name:"Page"`
+	Status   string           `position:"Query" name:"Status"`
+}
+
+// GetRepoListResponse is the response struct for api GetRepoList
+type GetRepoListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoListRequest creates a request to invoke GetRepoList API
+func CreateGetRepoListRequest() (request *GetRepoListRequest) {
+	request = &GetRepoListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoList", "/repos", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoListResponse creates a response to parse from GetRepoList response
+func CreateGetRepoListResponse() (response *GetRepoListResponse) {
+	response = &GetRepoListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_repo_list_by_namespace.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoListByNamespace invokes the cr.GetRepoListByNamespace API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepolistbynamespace.html
+func (client *Client) GetRepoListByNamespace(request *GetRepoListByNamespaceRequest) (response *GetRepoListByNamespaceResponse, err error) {
+	response = CreateGetRepoListByNamespaceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoListByNamespaceWithChan invokes the cr.GetRepoListByNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepolistbynamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoListByNamespaceWithChan(request *GetRepoListByNamespaceRequest) (<-chan *GetRepoListByNamespaceResponse, <-chan error) {
+	responseChan := make(chan *GetRepoListByNamespaceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoListByNamespace(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoListByNamespaceWithCallback invokes the cr.GetRepoListByNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepolistbynamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoListByNamespaceWithCallback(request *GetRepoListByNamespaceRequest, callback func(response *GetRepoListByNamespaceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoListByNamespaceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoListByNamespace(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoListByNamespaceRequest is the request struct for api GetRepoListByNamespace
+type GetRepoListByNamespaceRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Page          requests.Integer `position:"Query" name:"Page"`
+	Status        string           `position:"Query" name:"Status"`
+}
+
+// GetRepoListByNamespaceResponse is the response struct for api GetRepoListByNamespace
+type GetRepoListByNamespaceResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoListByNamespaceRequest creates a request to invoke GetRepoListByNamespace API
+func CreateGetRepoListByNamespaceRequest() (request *GetRepoListByNamespaceRequest) {
+	request = &GetRepoListByNamespaceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoListByNamespace", "/repos/[RepoNamespace]", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoListByNamespaceResponse creates a response to parse from GetRepoListByNamespace response
+func CreateGetRepoListByNamespaceResponse() (response *GetRepoListByNamespaceResponse) {
+	response = &GetRepoListByNamespaceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_repo_source_repo.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoSourceRepo invokes the cr.GetRepoSourceRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/getreposourcerepo.html
+func (client *Client) GetRepoSourceRepo(request *GetRepoSourceRepoRequest) (response *GetRepoSourceRepoResponse, err error) {
+	response = CreateGetRepoSourceRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoSourceRepoWithChan invokes the cr.GetRepoSourceRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposourcerepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSourceRepoWithChan(request *GetRepoSourceRepoRequest) (<-chan *GetRepoSourceRepoResponse, <-chan error) {
+	responseChan := make(chan *GetRepoSourceRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoSourceRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoSourceRepoWithCallback invokes the cr.GetRepoSourceRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposourcerepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSourceRepoWithCallback(request *GetRepoSourceRepoRequest, callback func(response *GetRepoSourceRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoSourceRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoSourceRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoSourceRepoRequest is the request struct for api GetRepoSourceRepo
+type GetRepoSourceRepoRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// GetRepoSourceRepoResponse is the response struct for api GetRepoSourceRepo
+type GetRepoSourceRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoSourceRepoRequest creates a request to invoke GetRepoSourceRepo API
+func CreateGetRepoSourceRepoRequest() (request *GetRepoSourceRepoRequest) {
+	request = &GetRepoSourceRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoSourceRepo", "/repos/[RepoNamespace]/[RepoName]/sourceRepo", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoSourceRepoResponse creates a response to parse from GetRepoSourceRepo response
+func CreateGetRepoSourceRepoResponse() (response *GetRepoSourceRepoResponse) {
+	response = &GetRepoSourceRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_sync_task.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoSyncTask invokes the cr.GetRepoSyncTask API synchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctask.html
+func (client *Client) GetRepoSyncTask(request *GetRepoSyncTaskRequest) (response *GetRepoSyncTaskResponse, err error) {
+	response = CreateGetRepoSyncTaskResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoSyncTaskWithChan invokes the cr.GetRepoSyncTask API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSyncTaskWithChan(request *GetRepoSyncTaskRequest) (<-chan *GetRepoSyncTaskResponse, <-chan error) {
+	responseChan := make(chan *GetRepoSyncTaskResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoSyncTask(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoSyncTaskWithCallback invokes the cr.GetRepoSyncTask API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctask.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSyncTaskWithCallback(request *GetRepoSyncTaskRequest, callback func(response *GetRepoSyncTaskResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoSyncTaskResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoSyncTask(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoSyncTaskRequest is the request struct for api GetRepoSyncTask
+type GetRepoSyncTaskRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	SyncTaskId    string `position:"Path" name:"SyncTaskId"`
+}
+
+// GetRepoSyncTaskResponse is the response struct for api GetRepoSyncTask
+type GetRepoSyncTaskResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoSyncTaskRequest creates a request to invoke GetRepoSyncTask API
+func CreateGetRepoSyncTaskRequest() (request *GetRepoSyncTaskRequest) {
+	request = &GetRepoSyncTaskRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoSyncTask", "/repos/[RepoNamespace]/[RepoName]/syncTasks/[SyncTaskId]", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoSyncTaskResponse creates a response to parse from GetRepoSyncTask response
+func CreateGetRepoSyncTaskResponse() (response *GetRepoSyncTaskResponse) {
+	response = &GetRepoSyncTaskResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_repo_sync_task_list.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoSyncTaskList invokes the cr.GetRepoSyncTaskList API synchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctasklist.html
+func (client *Client) GetRepoSyncTaskList(request *GetRepoSyncTaskListRequest) (response *GetRepoSyncTaskListResponse, err error) {
+	response = CreateGetRepoSyncTaskListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoSyncTaskListWithChan invokes the cr.GetRepoSyncTaskList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSyncTaskListWithChan(request *GetRepoSyncTaskListRequest) (<-chan *GetRepoSyncTaskListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoSyncTaskListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoSyncTaskList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoSyncTaskListWithCallback invokes the cr.GetRepoSyncTaskList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getreposynctasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoSyncTaskListWithCallback(request *GetRepoSyncTaskListRequest, callback func(response *GetRepoSyncTaskListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoSyncTaskListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoSyncTaskList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoSyncTaskListRequest is the request struct for api GetRepoSyncTaskList
+type GetRepoSyncTaskListRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Page          requests.Integer `position:"Query" name:"Page"`
+}
+
+// GetRepoSyncTaskListResponse is the response struct for api GetRepoSyncTaskList
+type GetRepoSyncTaskListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoSyncTaskListRequest creates a request to invoke GetRepoSyncTaskList API
+func CreateGetRepoSyncTaskListRequest() (request *GetRepoSyncTaskListRequest) {
+	request = &GetRepoSyncTaskListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoSyncTaskList", "/repos/[RepoNamespace]/[RepoName]/syncTasks", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoSyncTaskListResponse creates a response to parse from GetRepoSyncTaskList response
+func CreateGetRepoSyncTaskListResponse() (response *GetRepoSyncTaskListResponse) {
+	response = &GetRepoSyncTaskListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_repo_tags.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoTags invokes the cr.GetRepoTags API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepotags.html
+func (client *Client) GetRepoTags(request *GetRepoTagsRequest) (response *GetRepoTagsResponse, err error) {
+	response = CreateGetRepoTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoTagsWithChan invokes the cr.GetRepoTags API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepotags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoTagsWithChan(request *GetRepoTagsRequest) (<-chan *GetRepoTagsResponse, <-chan error) {
+	responseChan := make(chan *GetRepoTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoTagsWithCallback invokes the cr.GetRepoTags API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepotags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoTagsWithCallback(request *GetRepoTagsRequest, callback func(response *GetRepoTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoTagsRequest is the request struct for api GetRepoTags
+type GetRepoTagsRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	Page          requests.Integer `position:"Query" name:"Page"`
+}
+
+// GetRepoTagsResponse is the response struct for api GetRepoTags
+type GetRepoTagsResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoTagsRequest creates a request to invoke GetRepoTags API
+func CreateGetRepoTagsRequest() (request *GetRepoTagsRequest) {
+	request = &GetRepoTagsRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoTags", "/repos/[RepoNamespace]/[RepoName]/tags", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoTagsResponse creates a response to parse from GetRepoTags response
+func CreateGetRepoTagsResponse() (response *GetRepoTagsResponse) {
+	response = &GetRepoTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/get_repo_webhook.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoWebhook invokes the cr.GetRepoWebhook API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhook.html
+func (client *Client) GetRepoWebhook(request *GetRepoWebhookRequest) (response *GetRepoWebhookResponse, err error) {
+	response = CreateGetRepoWebhookResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoWebhookWithChan invokes the cr.GetRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWebhookWithChan(request *GetRepoWebhookRequest) (<-chan *GetRepoWebhookResponse, <-chan error) {
+	responseChan := make(chan *GetRepoWebhookResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoWebhook(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoWebhookWithCallback invokes the cr.GetRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWebhookWithCallback(request *GetRepoWebhookRequest, callback func(response *GetRepoWebhookResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoWebhookResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoWebhook(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoWebhookRequest is the request struct for api GetRepoWebhook
+type GetRepoWebhookRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// GetRepoWebhookResponse is the response struct for api GetRepoWebhook
+type GetRepoWebhookResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoWebhookRequest creates a request to invoke GetRepoWebhook API
+func CreateGetRepoWebhookRequest() (request *GetRepoWebhookRequest) {
+	request = &GetRepoWebhookRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoWebhook", "/repos/[RepoNamespace]/[RepoName]/webhooks", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoWebhookResponse creates a response to parse from GetRepoWebhook response
+func CreateGetRepoWebhookResponse() (response *GetRepoWebhookResponse) {
+	response = &GetRepoWebhookResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_repo_webhook_log_list.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetRepoWebhookLogList invokes the cr.GetRepoWebhookLogList API synchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhookloglist.html
+func (client *Client) GetRepoWebhookLogList(request *GetRepoWebhookLogListRequest) (response *GetRepoWebhookLogListResponse, err error) {
+	response = CreateGetRepoWebhookLogListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRepoWebhookLogListWithChan invokes the cr.GetRepoWebhookLogList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhookloglist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWebhookLogListWithChan(request *GetRepoWebhookLogListRequest) (<-chan *GetRepoWebhookLogListResponse, <-chan error) {
+	responseChan := make(chan *GetRepoWebhookLogListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRepoWebhookLogList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRepoWebhookLogListWithCallback invokes the cr.GetRepoWebhookLogList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getrepowebhookloglist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRepoWebhookLogListWithCallback(request *GetRepoWebhookLogListRequest, callback func(response *GetRepoWebhookLogListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRepoWebhookLogListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRepoWebhookLogList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRepoWebhookLogListRequest is the request struct for api GetRepoWebhookLogList
+type GetRepoWebhookLogListRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	WebhookId     requests.Integer `position:"Path" name:"WebhookId"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+}
+
+// GetRepoWebhookLogListResponse is the response struct for api GetRepoWebhookLogList
+type GetRepoWebhookLogListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetRepoWebhookLogListRequest creates a request to invoke GetRepoWebhookLogList API
+func CreateGetRepoWebhookLogListRequest() (request *GetRepoWebhookLogListRequest) {
+	request = &GetRepoWebhookLogListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetRepoWebhookLogList", "/repos/[RepoNamespace]/[RepoName]/webhooks/[WebhookId]/logs", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetRepoWebhookLogListResponse creates a response to parse from GetRepoWebhookLogList response
+func CreateGetRepoWebhookLogListResponse() (response *GetRepoWebhookLogListResponse) {
+	response = &GetRepoWebhookLogListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/get_search.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetSearch invokes the cr.GetSearch API synchronously
+// api document: https://help.aliyun.com/api/cr/getsearch.html
+func (client *Client) GetSearch(request *GetSearchRequest) (response *GetSearchResponse, err error) {
+	response = CreateGetSearchResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSearchWithChan invokes the cr.GetSearch API asynchronously
+// api document: https://help.aliyun.com/api/cr/getsearch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSearchWithChan(request *GetSearchRequest) (<-chan *GetSearchResponse, <-chan error) {
+	responseChan := make(chan *GetSearchResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSearch(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSearchWithCallback invokes the cr.GetSearch API asynchronously
+// api document: https://help.aliyun.com/api/cr/getsearch.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSearchWithCallback(request *GetSearchRequest, callback func(response *GetSearchResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSearchResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSearch(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSearchRequest is the request struct for api GetSearch
+type GetSearchRequest struct {
+	*requests.RoaRequest
+	Origin   string           `position:"Query" name:"Origin"`
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Page     requests.Integer `position:"Query" name:"Page"`
+	Keyword  string           `position:"Query" name:"Keyword"`
+}
+
+// GetSearchResponse is the response struct for api GetSearch
+type GetSearchResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetSearchRequest creates a request to invoke GetSearch API
+func CreateGetSearchRequest() (request *GetSearchRequest) {
+	request = &GetSearchRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetSearch", "/search-delete", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetSearchResponse creates a response to parse from GetSearch response
+func CreateGetSearchResponse() (response *GetSearchResponse) {
+	response = &GetSearchResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/get_sub_user_list.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetSubUserList invokes the cr.GetSubUserList API synchronously
+// api document: https://help.aliyun.com/api/cr/getsubuserlist.html
+func (client *Client) GetSubUserList(request *GetSubUserListRequest) (response *GetSubUserListResponse, err error) {
+	response = CreateGetSubUserListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSubUserListWithChan invokes the cr.GetSubUserList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getsubuserlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubUserListWithChan(request *GetSubUserListRequest) (<-chan *GetSubUserListResponse, <-chan error) {
+	responseChan := make(chan *GetSubUserListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSubUserList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSubUserListWithCallback invokes the cr.GetSubUserList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getsubuserlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSubUserListWithCallback(request *GetSubUserListRequest, callback func(response *GetSubUserListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSubUserListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSubUserList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSubUserListRequest is the request struct for api GetSubUserList
+type GetSubUserListRequest struct {
+	*requests.RoaRequest
+}
+
+// GetSubUserListResponse is the response struct for api GetSubUserList
+type GetSubUserListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetSubUserListRequest creates a request to invoke GetSubUserList API
+func CreateGetSubUserListRequest() (request *GetSubUserListRequest) {
+	request = &GetSubUserListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetSubUserList", "/users/subAccount", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetSubUserListResponse creates a response to parse from GetSubUserList response
+func CreateGetSubUserListResponse() (response *GetSubUserListResponse) {
+	response = &GetSubUserListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/get_user_info.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetUserInfo invokes the cr.GetUserInfo API synchronously
+// api document: https://help.aliyun.com/api/cr/getuserinfo.html
+func (client *Client) GetUserInfo(request *GetUserInfoRequest) (response *GetUserInfoResponse, err error) {
+	response = CreateGetUserInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUserInfoWithChan invokes the cr.GetUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserInfoWithChan(request *GetUserInfoRequest) (<-chan *GetUserInfoResponse, <-chan error) {
+	responseChan := make(chan *GetUserInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUserInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUserInfoWithCallback invokes the cr.GetUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/getuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserInfoWithCallback(request *GetUserInfoRequest, callback func(response *GetUserInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUserInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUserInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUserInfoRequest is the request struct for api GetUserInfo
+type GetUserInfoRequest struct {
+	*requests.RoaRequest
+}
+
+// GetUserInfoResponse is the response struct for api GetUserInfo
+type GetUserInfoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetUserInfoRequest creates a request to invoke GetUserInfo API
+func CreateGetUserInfoRequest() (request *GetUserInfoRequest) {
+	request = &GetUserInfoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetUserInfo", "/users", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetUserInfoResponse creates a response to parse from GetUserInfo response
+func CreateGetUserInfoResponse() (response *GetUserInfoResponse) {
+	response = &GetUserInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/get_user_source_account.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetUserSourceAccount invokes the cr.GetUserSourceAccount API synchronously
+// api document: https://help.aliyun.com/api/cr/getusersourceaccount.html
+func (client *Client) GetUserSourceAccount(request *GetUserSourceAccountRequest) (response *GetUserSourceAccountResponse, err error) {
+	response = CreateGetUserSourceAccountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUserSourceAccountWithChan invokes the cr.GetUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceAccountWithChan(request *GetUserSourceAccountRequest) (<-chan *GetUserSourceAccountResponse, <-chan error) {
+	responseChan := make(chan *GetUserSourceAccountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUserSourceAccount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUserSourceAccountWithCallback invokes the cr.GetUserSourceAccount API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourceaccount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceAccountWithCallback(request *GetUserSourceAccountRequest, callback func(response *GetUserSourceAccountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUserSourceAccountResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUserSourceAccount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUserSourceAccountRequest is the request struct for api GetUserSourceAccount
+type GetUserSourceAccountRequest struct {
+	*requests.RoaRequest
+	SourceOriginType string `position:"Query" name:"SourceOriginType"`
+}
+
+// GetUserSourceAccountResponse is the response struct for api GetUserSourceAccount
+type GetUserSourceAccountResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetUserSourceAccountRequest creates a request to invoke GetUserSourceAccount API
+func CreateGetUserSourceAccountRequest() (request *GetUserSourceAccountRequest) {
+	request = &GetUserSourceAccountRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetUserSourceAccount", "/users/sourceAccount", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetUserSourceAccountResponse creates a response to parse from GetUserSourceAccount response
+func CreateGetUserSourceAccountResponse() (response *GetUserSourceAccountResponse) {
+	response = &GetUserSourceAccountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/get_user_source_repo_list.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetUserSourceRepoList invokes the cr.GetUserSourceRepoList API synchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcerepolist.html
+func (client *Client) GetUserSourceRepoList(request *GetUserSourceRepoListRequest) (response *GetUserSourceRepoListResponse, err error) {
+	response = CreateGetUserSourceRepoListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUserSourceRepoListWithChan invokes the cr.GetUserSourceRepoList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcerepolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceRepoListWithChan(request *GetUserSourceRepoListRequest) (<-chan *GetUserSourceRepoListResponse, <-chan error) {
+	responseChan := make(chan *GetUserSourceRepoListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUserSourceRepoList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUserSourceRepoListWithCallback invokes the cr.GetUserSourceRepoList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcerepolist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceRepoListWithCallback(request *GetUserSourceRepoListRequest, callback func(response *GetUserSourceRepoListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUserSourceRepoListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUserSourceRepoList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUserSourceRepoListRequest is the request struct for api GetUserSourceRepoList
+type GetUserSourceRepoListRequest struct {
+	*requests.RoaRequest
+	SourceAccountId requests.Integer `position:"Path" name:"SourceAccountId"`
+}
+
+// GetUserSourceRepoListResponse is the response struct for api GetUserSourceRepoList
+type GetUserSourceRepoListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetUserSourceRepoListRequest creates a request to invoke GetUserSourceRepoList API
+func CreateGetUserSourceRepoListRequest() (request *GetUserSourceRepoListRequest) {
+	request = &GetUserSourceRepoListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetUserSourceRepoList", "/users/sourceAccount/[SourceAccountId]/repos", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetUserSourceRepoListResponse creates a response to parse from GetUserSourceRepoList response
+func CreateGetUserSourceRepoListResponse() (response *GetUserSourceRepoListResponse) {
+	response = &GetUserSourceRepoListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/get_user_source_repo_ref_list.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// GetUserSourceRepoRefList invokes the cr.GetUserSourceRepoRefList API synchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcereporeflist.html
+func (client *Client) GetUserSourceRepoRefList(request *GetUserSourceRepoRefListRequest) (response *GetUserSourceRepoRefListResponse, err error) {
+	response = CreateGetUserSourceRepoRefListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetUserSourceRepoRefListWithChan invokes the cr.GetUserSourceRepoRefList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcereporeflist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceRepoRefListWithChan(request *GetUserSourceRepoRefListRequest) (<-chan *GetUserSourceRepoRefListResponse, <-chan error) {
+	responseChan := make(chan *GetUserSourceRepoRefListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetUserSourceRepoRefList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetUserSourceRepoRefListWithCallback invokes the cr.GetUserSourceRepoRefList API asynchronously
+// api document: https://help.aliyun.com/api/cr/getusersourcereporeflist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetUserSourceRepoRefListWithCallback(request *GetUserSourceRepoRefListRequest, callback func(response *GetUserSourceRepoRefListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetUserSourceRepoRefListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetUserSourceRepoRefList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetUserSourceRepoRefListRequest is the request struct for api GetUserSourceRepoRefList
+type GetUserSourceRepoRefListRequest struct {
+	*requests.RoaRequest
+	SourceAccountId     requests.Integer `position:"Path" name:"SourceAccountId"`
+	SourceRepoName      string           `position:"Path" name:"SourceRepoName"`
+	SourceRepoNamespace string           `position:"Path" name:"SourceRepoNamespace"`
+}
+
+// GetUserSourceRepoRefListResponse is the response struct for api GetUserSourceRepoRefList
+type GetUserSourceRepoRefListResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateGetUserSourceRepoRefListRequest creates a request to invoke GetUserSourceRepoRefList API
+func CreateGetUserSourceRepoRefListRequest() (request *GetUserSourceRepoRefListRequest) {
+	request = &GetUserSourceRepoRefListRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "GetUserSourceRepoRefList", "/users/sourceAccount/[SourceAccountId]/repos/[SourceRepoNamespace]/[SourceRepoName]/refs", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateGetUserSourceRepoRefListResponse creates a response to parse from GetUserSourceRepoRefList response
+func CreateGetUserSourceRepoRefListResponse() (response *GetUserSourceRepoRefListResponse) {
+	response = &GetUserSourceRepoRefListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cr/search_repo.go

@@ -0,0 +1,106 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// SearchRepo invokes the cr.SearchRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/searchrepo.html
+func (client *Client) SearchRepo(request *SearchRepoRequest) (response *SearchRepoResponse, err error) {
+	response = CreateSearchRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SearchRepoWithChan invokes the cr.SearchRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/searchrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SearchRepoWithChan(request *SearchRepoRequest) (<-chan *SearchRepoResponse, <-chan error) {
+	responseChan := make(chan *SearchRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SearchRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SearchRepoWithCallback invokes the cr.SearchRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/searchrepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SearchRepoWithCallback(request *SearchRepoRequest, callback func(response *SearchRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SearchRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.SearchRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SearchRepoRequest is the request struct for api SearchRepo
+type SearchRepoRequest struct {
+	*requests.RoaRequest
+	Origin   string           `position:"Query" name:"Origin"`
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Page     requests.Integer `position:"Query" name:"Page"`
+	Keyword  string           `position:"Query" name:"Keyword"`
+}
+
+// SearchRepoResponse is the response struct for api SearchRepo
+type SearchRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateSearchRepoRequest creates a request to invoke SearchRepo API
+func CreateSearchRepoRequest() (request *SearchRepoRequest) {
+	request = &SearchRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "SearchRepo", "/search", "", "")
+	request.Method = requests.GET
+	return
+}
+
+// CreateSearchRepoResponse creates a response to parse from SearchRepo response
+func CreateSearchRepoResponse() (response *SearchRepoResponse) {
+	response = &SearchRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/start_image_scan.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartImageScan invokes the cr.StartImageScan API synchronously
+// api document: https://help.aliyun.com/api/cr/startimagescan.html
+func (client *Client) StartImageScan(request *StartImageScanRequest) (response *StartImageScanResponse, err error) {
+	response = CreateStartImageScanResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartImageScanWithChan invokes the cr.StartImageScan API asynchronously
+// api document: https://help.aliyun.com/api/cr/startimagescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartImageScanWithChan(request *StartImageScanRequest) (<-chan *StartImageScanResponse, <-chan error) {
+	responseChan := make(chan *StartImageScanResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartImageScan(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartImageScanWithCallback invokes the cr.StartImageScan API asynchronously
+// api document: https://help.aliyun.com/api/cr/startimagescan.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartImageScanWithCallback(request *StartImageScanRequest, callback func(response *StartImageScanResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartImageScanResponse
+		var err error
+		defer close(result)
+		response, err = client.StartImageScan(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartImageScanRequest is the request struct for api StartImageScan
+type StartImageScanRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+	Tag           string `position:"Path" name:"Tag"`
+}
+
+// StartImageScanResponse is the response struct for api StartImageScan
+type StartImageScanResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateStartImageScanRequest creates a request to invoke StartImageScan API
+func CreateStartImageScanRequest() (request *StartImageScanRequest) {
+	request = &StartImageScanRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "StartImageScan", "/repos/[RepoNamespace]/[RepoName]/tags/[Tag]/scan", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateStartImageScanResponse creates a response to parse from StartImageScan response
+func CreateStartImageScanResponse() (response *StartImageScanResponse) {
+	response = &StartImageScanResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/start_repo_build.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartRepoBuild invokes the cr.StartRepoBuild API synchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuild.html
+func (client *Client) StartRepoBuild(request *StartRepoBuildRequest) (response *StartRepoBuildResponse, err error) {
+	response = CreateStartRepoBuildResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartRepoBuildWithChan invokes the cr.StartRepoBuild API asynchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuild.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartRepoBuildWithChan(request *StartRepoBuildRequest) (<-chan *StartRepoBuildResponse, <-chan error) {
+	responseChan := make(chan *StartRepoBuildResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartRepoBuild(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartRepoBuildWithCallback invokes the cr.StartRepoBuild API asynchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuild.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartRepoBuildWithCallback(request *StartRepoBuildRequest, callback func(response *StartRepoBuildResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartRepoBuildResponse
+		var err error
+		defer close(result)
+		response, err = client.StartRepoBuild(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartRepoBuildRequest is the request struct for api StartRepoBuild
+type StartRepoBuildRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// StartRepoBuildResponse is the response struct for api StartRepoBuild
+type StartRepoBuildResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateStartRepoBuildRequest creates a request to invoke StartRepoBuild API
+func CreateStartRepoBuildRequest() (request *StartRepoBuildRequest) {
+	request = &StartRepoBuildRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "StartRepoBuild", "/repos/[RepoNamespace]/[RepoName]/build", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateStartRepoBuildResponse creates a response to parse from StartRepoBuild response
+func CreateStartRepoBuildResponse() (response *StartRepoBuildResponse) {
+	response = &StartRepoBuildResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/start_repo_build_by_rule.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// StartRepoBuildByRule invokes the cr.StartRepoBuildByRule API synchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuildbyrule.html
+func (client *Client) StartRepoBuildByRule(request *StartRepoBuildByRuleRequest) (response *StartRepoBuildByRuleResponse, err error) {
+	response = CreateStartRepoBuildByRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartRepoBuildByRuleWithChan invokes the cr.StartRepoBuildByRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuildbyrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartRepoBuildByRuleWithChan(request *StartRepoBuildByRuleRequest) (<-chan *StartRepoBuildByRuleResponse, <-chan error) {
+	responseChan := make(chan *StartRepoBuildByRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartRepoBuildByRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartRepoBuildByRuleWithCallback invokes the cr.StartRepoBuildByRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/startrepobuildbyrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartRepoBuildByRuleWithCallback(request *StartRepoBuildByRuleRequest, callback func(response *StartRepoBuildByRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartRepoBuildByRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.StartRepoBuildByRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartRepoBuildByRuleRequest is the request struct for api StartRepoBuildByRule
+type StartRepoBuildByRuleRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	BuildRuleId   requests.Integer `position:"Path" name:"BuildRuleId"`
+}
+
+// StartRepoBuildByRuleResponse is the response struct for api StartRepoBuildByRule
+type StartRepoBuildByRuleResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateStartRepoBuildByRuleRequest creates a request to invoke StartRepoBuildByRule API
+func CreateStartRepoBuildByRuleRequest() (request *StartRepoBuildByRuleRequest) {
+	request = &StartRepoBuildByRuleRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "StartRepoBuildByRule", "/repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]/build", "", "")
+	request.Method = requests.PUT
+	return
+}
+
+// CreateStartRepoBuildByRuleResponse creates a response to parse from StartRepoBuildByRule response
+func CreateStartRepoBuildByRuleResponse() (response *StartRepoBuildByRuleResponse) {
+	response = &StartRepoBuildByRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/cr/update_namespace.go

@@ -0,0 +1,103 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateNamespace invokes the cr.UpdateNamespace API synchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespace.html
+func (client *Client) UpdateNamespace(request *UpdateNamespaceRequest) (response *UpdateNamespaceResponse, err error) {
+	response = CreateUpdateNamespaceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateNamespaceWithChan invokes the cr.UpdateNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateNamespaceWithChan(request *UpdateNamespaceRequest) (<-chan *UpdateNamespaceResponse, <-chan error) {
+	responseChan := make(chan *UpdateNamespaceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateNamespace(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateNamespaceWithCallback invokes the cr.UpdateNamespace API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespace.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateNamespaceWithCallback(request *UpdateNamespaceRequest, callback func(response *UpdateNamespaceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateNamespaceResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateNamespace(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateNamespaceRequest is the request struct for api UpdateNamespace
+type UpdateNamespaceRequest struct {
+	*requests.RoaRequest
+	Namespace string `position:"Path" name:"Namespace"`
+}
+
+// UpdateNamespaceResponse is the response struct for api UpdateNamespace
+type UpdateNamespaceResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateNamespaceRequest creates a request to invoke UpdateNamespace API
+func CreateUpdateNamespaceRequest() (request *UpdateNamespaceRequest) {
+	request = &UpdateNamespaceRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateNamespace", "/namespace/[Namespace]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateNamespaceResponse creates a response to parse from UpdateNamespace response
+func CreateUpdateNamespaceResponse() (response *UpdateNamespaceResponse) {
+	response = &UpdateNamespaceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/update_namespace_authorization.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateNamespaceAuthorization invokes the cr.UpdateNamespaceAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespaceauthorization.html
+func (client *Client) UpdateNamespaceAuthorization(request *UpdateNamespaceAuthorizationRequest) (response *UpdateNamespaceAuthorizationResponse, err error) {
+	response = CreateUpdateNamespaceAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateNamespaceAuthorizationWithChan invokes the cr.UpdateNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateNamespaceAuthorizationWithChan(request *UpdateNamespaceAuthorizationRequest) (<-chan *UpdateNamespaceAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *UpdateNamespaceAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateNamespaceAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateNamespaceAuthorizationWithCallback invokes the cr.UpdateNamespaceAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatenamespaceauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateNamespaceAuthorizationWithCallback(request *UpdateNamespaceAuthorizationRequest, callback func(response *UpdateNamespaceAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateNamespaceAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateNamespaceAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateNamespaceAuthorizationRequest is the request struct for api UpdateNamespaceAuthorization
+type UpdateNamespaceAuthorizationRequest struct {
+	*requests.RoaRequest
+	AuthorizeId requests.Integer `position:"Path" name:"AuthorizeId"`
+	Namespace   string           `position:"Path" name:"Namespace"`
+}
+
+// UpdateNamespaceAuthorizationResponse is the response struct for api UpdateNamespaceAuthorization
+type UpdateNamespaceAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateNamespaceAuthorizationRequest creates a request to invoke UpdateNamespaceAuthorization API
+func CreateUpdateNamespaceAuthorizationRequest() (request *UpdateNamespaceAuthorizationRequest) {
+	request = &UpdateNamespaceAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateNamespaceAuthorization", "/namespace/[Namespace]/authorizations/[AuthorizeId]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateNamespaceAuthorizationResponse creates a response to parse from UpdateNamespaceAuthorization response
+func CreateUpdateNamespaceAuthorizationResponse() (response *UpdateNamespaceAuthorizationResponse) {
+	response = &UpdateNamespaceAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/update_repo.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateRepo invokes the cr.UpdateRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/updaterepo.html
+func (client *Client) UpdateRepo(request *UpdateRepoRequest) (response *UpdateRepoResponse, err error) {
+	response = CreateUpdateRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateRepoWithChan invokes the cr.UpdateRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoWithChan(request *UpdateRepoRequest) (<-chan *UpdateRepoResponse, <-chan error) {
+	responseChan := make(chan *UpdateRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateRepoWithCallback invokes the cr.UpdateRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoWithCallback(request *UpdateRepoRequest, callback func(response *UpdateRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateRepoRequest is the request struct for api UpdateRepo
+type UpdateRepoRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// UpdateRepoResponse is the response struct for api UpdateRepo
+type UpdateRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateRepoRequest creates a request to invoke UpdateRepo API
+func CreateUpdateRepoRequest() (request *UpdateRepoRequest) {
+	request = &UpdateRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateRepo", "/repos/[RepoNamespace]/[RepoName]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateRepoResponse creates a response to parse from UpdateRepo response
+func CreateUpdateRepoResponse() (response *UpdateRepoResponse) {
+	response = &UpdateRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/update_repo_authorization.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateRepoAuthorization invokes the cr.UpdateRepoAuthorization API synchronously
+// api document: https://help.aliyun.com/api/cr/updaterepoauthorization.html
+func (client *Client) UpdateRepoAuthorization(request *UpdateRepoAuthorizationRequest) (response *UpdateRepoAuthorizationResponse, err error) {
+	response = CreateUpdateRepoAuthorizationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateRepoAuthorizationWithChan invokes the cr.UpdateRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoAuthorizationWithChan(request *UpdateRepoAuthorizationRequest) (<-chan *UpdateRepoAuthorizationResponse, <-chan error) {
+	responseChan := make(chan *UpdateRepoAuthorizationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateRepoAuthorization(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateRepoAuthorizationWithCallback invokes the cr.UpdateRepoAuthorization API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepoauthorization.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoAuthorizationWithCallback(request *UpdateRepoAuthorizationRequest, callback func(response *UpdateRepoAuthorizationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateRepoAuthorizationResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateRepoAuthorization(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateRepoAuthorizationRequest is the request struct for api UpdateRepoAuthorization
+type UpdateRepoAuthorizationRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	AuthorizeId   requests.Integer `position:"Path" name:"AuthorizeId"`
+}
+
+// UpdateRepoAuthorizationResponse is the response struct for api UpdateRepoAuthorization
+type UpdateRepoAuthorizationResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateRepoAuthorizationRequest creates a request to invoke UpdateRepoAuthorization API
+func CreateUpdateRepoAuthorizationRequest() (request *UpdateRepoAuthorizationRequest) {
+	request = &UpdateRepoAuthorizationRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateRepoAuthorization", "/repos/[RepoNamespace]/[RepoName]/authorizations/[AuthorizeId]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateRepoAuthorizationResponse creates a response to parse from UpdateRepoAuthorization response
+func CreateUpdateRepoAuthorizationResponse() (response *UpdateRepoAuthorizationResponse) {
+	response = &UpdateRepoAuthorizationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/update_repo_build_rule.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateRepoBuildRule invokes the cr.UpdateRepoBuildRule API synchronously
+// api document: https://help.aliyun.com/api/cr/updaterepobuildrule.html
+func (client *Client) UpdateRepoBuildRule(request *UpdateRepoBuildRuleRequest) (response *UpdateRepoBuildRuleResponse, err error) {
+	response = CreateUpdateRepoBuildRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateRepoBuildRuleWithChan invokes the cr.UpdateRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoBuildRuleWithChan(request *UpdateRepoBuildRuleRequest) (<-chan *UpdateRepoBuildRuleResponse, <-chan error) {
+	responseChan := make(chan *UpdateRepoBuildRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateRepoBuildRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateRepoBuildRuleWithCallback invokes the cr.UpdateRepoBuildRule API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepobuildrule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoBuildRuleWithCallback(request *UpdateRepoBuildRuleRequest, callback func(response *UpdateRepoBuildRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateRepoBuildRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateRepoBuildRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateRepoBuildRuleRequest is the request struct for api UpdateRepoBuildRule
+type UpdateRepoBuildRuleRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+	BuildRuleId   requests.Integer `position:"Path" name:"BuildRuleId"`
+}
+
+// UpdateRepoBuildRuleResponse is the response struct for api UpdateRepoBuildRule
+type UpdateRepoBuildRuleResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateRepoBuildRuleRequest creates a request to invoke UpdateRepoBuildRule API
+func CreateUpdateRepoBuildRuleRequest() (request *UpdateRepoBuildRuleRequest) {
+	request = &UpdateRepoBuildRuleRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateRepoBuildRule", "/repos/[RepoNamespace]/[RepoName]/rules/[BuildRuleId]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateRepoBuildRuleResponse creates a response to parse from UpdateRepoBuildRule response
+func CreateUpdateRepoBuildRuleResponse() (response *UpdateRepoBuildRuleResponse) {
+	response = &UpdateRepoBuildRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cr/update_repo_source_repo.go

@@ -0,0 +1,104 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateRepoSourceRepo invokes the cr.UpdateRepoSourceRepo API synchronously
+// api document: https://help.aliyun.com/api/cr/updatereposourcerepo.html
+func (client *Client) UpdateRepoSourceRepo(request *UpdateRepoSourceRepoRequest) (response *UpdateRepoSourceRepoResponse, err error) {
+	response = CreateUpdateRepoSourceRepoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateRepoSourceRepoWithChan invokes the cr.UpdateRepoSourceRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatereposourcerepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoSourceRepoWithChan(request *UpdateRepoSourceRepoRequest) (<-chan *UpdateRepoSourceRepoResponse, <-chan error) {
+	responseChan := make(chan *UpdateRepoSourceRepoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateRepoSourceRepo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateRepoSourceRepoWithCallback invokes the cr.UpdateRepoSourceRepo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updatereposourcerepo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoSourceRepoWithCallback(request *UpdateRepoSourceRepoRequest, callback func(response *UpdateRepoSourceRepoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateRepoSourceRepoResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateRepoSourceRepo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateRepoSourceRepoRequest is the request struct for api UpdateRepoSourceRepo
+type UpdateRepoSourceRepoRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string `position:"Path" name:"RepoNamespace"`
+	RepoName      string `position:"Path" name:"RepoName"`
+}
+
+// UpdateRepoSourceRepoResponse is the response struct for api UpdateRepoSourceRepo
+type UpdateRepoSourceRepoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateRepoSourceRepoRequest creates a request to invoke UpdateRepoSourceRepo API
+func CreateUpdateRepoSourceRepoRequest() (request *UpdateRepoSourceRepoRequest) {
+	request = &UpdateRepoSourceRepoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateRepoSourceRepo", "/repos/[RepoNamespace]/[RepoName]/sourceRepo", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateRepoSourceRepoResponse creates a response to parse from UpdateRepoSourceRepo response
+func CreateUpdateRepoSourceRepoResponse() (response *UpdateRepoSourceRepoResponse) {
+	response = &UpdateRepoSourceRepoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cr/update_repo_webhook.go

@@ -0,0 +1,105 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateRepoWebhook invokes the cr.UpdateRepoWebhook API synchronously
+// api document: https://help.aliyun.com/api/cr/updaterepowebhook.html
+func (client *Client) UpdateRepoWebhook(request *UpdateRepoWebhookRequest) (response *UpdateRepoWebhookResponse, err error) {
+	response = CreateUpdateRepoWebhookResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateRepoWebhookWithChan invokes the cr.UpdateRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoWebhookWithChan(request *UpdateRepoWebhookRequest) (<-chan *UpdateRepoWebhookResponse, <-chan error) {
+	responseChan := make(chan *UpdateRepoWebhookResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateRepoWebhook(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateRepoWebhookWithCallback invokes the cr.UpdateRepoWebhook API asynchronously
+// api document: https://help.aliyun.com/api/cr/updaterepowebhook.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateRepoWebhookWithCallback(request *UpdateRepoWebhookRequest, callback func(response *UpdateRepoWebhookResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateRepoWebhookResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateRepoWebhook(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateRepoWebhookRequest is the request struct for api UpdateRepoWebhook
+type UpdateRepoWebhookRequest struct {
+	*requests.RoaRequest
+	RepoNamespace string           `position:"Path" name:"RepoNamespace"`
+	WebhookId     requests.Integer `position:"Path" name:"WebhookId"`
+	RepoName      string           `position:"Path" name:"RepoName"`
+}
+
+// UpdateRepoWebhookResponse is the response struct for api UpdateRepoWebhook
+type UpdateRepoWebhookResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateRepoWebhookRequest creates a request to invoke UpdateRepoWebhook API
+func CreateUpdateRepoWebhookRequest() (request *UpdateRepoWebhookRequest) {
+	request = &UpdateRepoWebhookRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateRepoWebhook", "/repos/[RepoNamespace]/[RepoName]/webhooks/[WebhookId]", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateRepoWebhookResponse creates a response to parse from UpdateRepoWebhook response
+func CreateUpdateRepoWebhookResponse() (response *UpdateRepoWebhookResponse) {
+	response = &UpdateRepoWebhookResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/cr/update_user_info.go

@@ -0,0 +1,102 @@
+package cr
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateUserInfo invokes the cr.UpdateUserInfo API synchronously
+// api document: https://help.aliyun.com/api/cr/updateuserinfo.html
+func (client *Client) UpdateUserInfo(request *UpdateUserInfoRequest) (response *UpdateUserInfoResponse, err error) {
+	response = CreateUpdateUserInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateUserInfoWithChan invokes the cr.UpdateUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updateuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateUserInfoWithChan(request *UpdateUserInfoRequest) (<-chan *UpdateUserInfoResponse, <-chan error) {
+	responseChan := make(chan *UpdateUserInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateUserInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateUserInfoWithCallback invokes the cr.UpdateUserInfo API asynchronously
+// api document: https://help.aliyun.com/api/cr/updateuserinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateUserInfoWithCallback(request *UpdateUserInfoRequest, callback func(response *UpdateUserInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateUserInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateUserInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateUserInfoRequest is the request struct for api UpdateUserInfo
+type UpdateUserInfoRequest struct {
+	*requests.RoaRequest
+}
+
+// UpdateUserInfoResponse is the response struct for api UpdateUserInfo
+type UpdateUserInfoResponse struct {
+	*responses.BaseResponse
+}
+
+// CreateUpdateUserInfoRequest creates a request to invoke UpdateUserInfo API
+func CreateUpdateUserInfoRequest() (request *UpdateUserInfoRequest) {
+	request = &UpdateUserInfoRequest{
+		RoaRequest: &requests.RoaRequest{},
+	}
+	request.InitWithApiInfo("cr", "2016-06-07", "UpdateUserInfo", "/users", "", "")
+	request.Method = requests.POST
+	return
+}
+
+// CreateUpdateUserInfoResponse creates a response to parse from UpdateUserInfo response
+func CreateUpdateUserInfoResponse() (response *UpdateUserInfoResponse) {
+	response = &UpdateUserInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}