Browse Source

CLOUDAPI SDK Auto Released By jialiang.bjl,Version:1.51.9

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 6 years ago
parent
commit
e17432240f
38 changed files with 2852 additions and 7 deletions
  1. 3 0
      ChangeLog.txt
  2. 105 0
      services/cloudapi/add_catalog_relation.go
  3. 105 0
      services/cloudapi/add_catalog_relations.go
  4. 108 0
      services/cloudapi/attach_plugin.go
  5. 104 0
      services/cloudapi/clear_catalog_relations.go
  6. 107 0
      services/cloudapi/create_catalog.go
  7. 116 0
      services/cloudapi/create_model.go
  8. 108 0
      services/cloudapi/create_plugin.go
  9. 104 0
      services/cloudapi/delete_catalog.go
  10. 105 0
      services/cloudapi/delete_model.go
  11. 104 0
      services/cloudapi/delete_plugin.go
  12. 5 5
      services/cloudapi/describe_apis.go
  13. 112 0
      services/cloudapi/describe_catalog.go
  14. 107 0
      services/cloudapi/describe_catalogs.go
  15. 112 0
      services/cloudapi/describe_models.go
  16. 110 0
      services/cloudapi/describe_plugin_apis.go
  17. 112 0
      services/cloudapi/describe_plugins.go
  18. 110 0
      services/cloudapi/describe_plugins_by_api.go
  19. 108 0
      services/cloudapi/detach_plugin.go
  20. 104 0
      services/cloudapi/generate_instance_token.go
  21. 106 0
      services/cloudapi/modify_catalog.go
  22. 108 0
      services/cloudapi/modify_model.go
  23. 107 0
      services/cloudapi/modify_plugin.go
  24. 105 0
      services/cloudapi/remove_catalog_relation.go
  25. 104 0
      services/cloudapi/remove_catalog_relations.go
  26. 105 0
      services/cloudapi/set_group_auth_app_code.go
  27. 21 0
      services/cloudapi/struct_api_ids.go
  28. 29 0
      services/cloudapi/struct_api_plugin_summary.go
  29. 2 2
      services/cloudapi/struct_api_summarys_in_describe_apis.go
  30. 21 0
      services/cloudapi/struct_api_summarys_in_describe_plugin_apis.go
  31. 27 0
      services/cloudapi/struct_catalog_attribute.go
  32. 21 0
      services/cloudapi/struct_catalog_attributes.go
  33. 28 0
      services/cloudapi/struct_model_detail.go
  34. 21 0
      services/cloudapi/struct_model_details.go
  35. 28 0
      services/cloudapi/struct_plugin_attribute.go
  36. 28 0
      services/cloudapi/struct_plugin_attribute_in_describe_plugins_by_api.go
  37. 21 0
      services/cloudapi/struct_plugins_in_describe_plugins.go
  38. 21 0
      services/cloudapi/struct_plugins_in_describe_plugins_by_api.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-01-23 Version: 1.51.9
+1, release new version
+
 2019-01-23 Version: 1.51.8
 1, new go version
 

+ 105 - 0
services/cloudapi/add_catalog_relation.go

@@ -0,0 +1,105 @@
+package cloudapi
+
+//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"
+)
+
+// AddCatalogRelation invokes the cloudapi.AddCatalogRelation API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelation.html
+func (client *Client) AddCatalogRelation(request *AddCatalogRelationRequest) (response *AddCatalogRelationResponse, err error) {
+	response = CreateAddCatalogRelationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddCatalogRelationWithChan invokes the cloudapi.AddCatalogRelation API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddCatalogRelationWithChan(request *AddCatalogRelationRequest) (<-chan *AddCatalogRelationResponse, <-chan error) {
+	responseChan := make(chan *AddCatalogRelationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddCatalogRelation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddCatalogRelationWithCallback invokes the cloudapi.AddCatalogRelation API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddCatalogRelationWithCallback(request *AddCatalogRelationRequest, callback func(response *AddCatalogRelationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddCatalogRelationResponse
+		var err error
+		defer close(result)
+		response, err = client.AddCatalogRelation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddCatalogRelationRequest is the request struct for api AddCatalogRelation
+type AddCatalogRelationRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ApiId         string `position:"Query" name:"ApiId"`
+}
+
+// AddCatalogRelationResponse is the response struct for api AddCatalogRelation
+type AddCatalogRelationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddCatalogRelationRequest creates a request to invoke AddCatalogRelation API
+func CreateAddCatalogRelationRequest() (request *AddCatalogRelationRequest) {
+	request = &AddCatalogRelationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "AddCatalogRelation", "apigateway", "openAPI")
+	return
+}
+
+// CreateAddCatalogRelationResponse creates a response to parse from AddCatalogRelation response
+func CreateAddCatalogRelationResponse() (response *AddCatalogRelationResponse) {
+	response = &AddCatalogRelationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cloudapi/add_catalog_relations.go

@@ -0,0 +1,105 @@
+package cloudapi
+
+//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"
+)
+
+// AddCatalogRelations invokes the cloudapi.AddCatalogRelations API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelations.html
+func (client *Client) AddCatalogRelations(request *AddCatalogRelationsRequest) (response *AddCatalogRelationsResponse, err error) {
+	response = CreateAddCatalogRelationsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddCatalogRelationsWithChan invokes the cloudapi.AddCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddCatalogRelationsWithChan(request *AddCatalogRelationsRequest) (<-chan *AddCatalogRelationsResponse, <-chan error) {
+	responseChan := make(chan *AddCatalogRelationsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddCatalogRelations(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddCatalogRelationsWithCallback invokes the cloudapi.AddCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/addcatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddCatalogRelationsWithCallback(request *AddCatalogRelationsRequest, callback func(response *AddCatalogRelationsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddCatalogRelationsResponse
+		var err error
+		defer close(result)
+		response, err = client.AddCatalogRelations(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddCatalogRelationsRequest is the request struct for api AddCatalogRelations
+type AddCatalogRelationsRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ApiIds        string `position:"Query" name:"ApiIds"`
+}
+
+// AddCatalogRelationsResponse is the response struct for api AddCatalogRelations
+type AddCatalogRelationsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddCatalogRelationsRequest creates a request to invoke AddCatalogRelations API
+func CreateAddCatalogRelationsRequest() (request *AddCatalogRelationsRequest) {
+	request = &AddCatalogRelationsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "AddCatalogRelations", "apigateway", "openAPI")
+	return
+}
+
+// CreateAddCatalogRelationsResponse creates a response to parse from AddCatalogRelations response
+func CreateAddCatalogRelationsResponse() (response *AddCatalogRelationsResponse) {
+	response = &AddCatalogRelationsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudapi/attach_plugin.go

@@ -0,0 +1,108 @@
+package cloudapi
+
+//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"
+)
+
+// AttachPlugin invokes the cloudapi.AttachPlugin API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/attachplugin.html
+func (client *Client) AttachPlugin(request *AttachPluginRequest) (response *AttachPluginResponse, err error) {
+	response = CreateAttachPluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AttachPluginWithChan invokes the cloudapi.AttachPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/attachplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AttachPluginWithChan(request *AttachPluginRequest) (<-chan *AttachPluginResponse, <-chan error) {
+	responseChan := make(chan *AttachPluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AttachPlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AttachPluginWithCallback invokes the cloudapi.AttachPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/attachplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AttachPluginWithCallback(request *AttachPluginRequest, callback func(response *AttachPluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AttachPluginResponse
+		var err error
+		defer close(result)
+		response, err = client.AttachPlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AttachPluginRequest is the request struct for api AttachPlugin
+type AttachPluginRequest struct {
+	*requests.RpcRequest
+	StageName     string `position:"Query" name:"StageName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	PluginId      string `position:"Query" name:"PluginId"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	ApiId         string `position:"Query" name:"ApiId"`
+	ApiIds        string `position:"Query" name:"ApiIds"`
+}
+
+// AttachPluginResponse is the response struct for api AttachPlugin
+type AttachPluginResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAttachPluginRequest creates a request to invoke AttachPlugin API
+func CreateAttachPluginRequest() (request *AttachPluginRequest) {
+	request = &AttachPluginRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "AttachPlugin", "apigateway", "openAPI")
+	return
+}
+
+// CreateAttachPluginResponse creates a response to parse from AttachPlugin response
+func CreateAttachPluginResponse() (response *AttachPluginResponse) {
+	response = &AttachPluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cloudapi/clear_catalog_relations.go

@@ -0,0 +1,104 @@
+package cloudapi
+
+//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"
+)
+
+// ClearCatalogRelations invokes the cloudapi.ClearCatalogRelations API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/clearcatalogrelations.html
+func (client *Client) ClearCatalogRelations(request *ClearCatalogRelationsRequest) (response *ClearCatalogRelationsResponse, err error) {
+	response = CreateClearCatalogRelationsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ClearCatalogRelationsWithChan invokes the cloudapi.ClearCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/clearcatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ClearCatalogRelationsWithChan(request *ClearCatalogRelationsRequest) (<-chan *ClearCatalogRelationsResponse, <-chan error) {
+	responseChan := make(chan *ClearCatalogRelationsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ClearCatalogRelations(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ClearCatalogRelationsWithCallback invokes the cloudapi.ClearCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/clearcatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ClearCatalogRelationsWithCallback(request *ClearCatalogRelationsRequest, callback func(response *ClearCatalogRelationsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ClearCatalogRelationsResponse
+		var err error
+		defer close(result)
+		response, err = client.ClearCatalogRelations(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ClearCatalogRelationsRequest is the request struct for api ClearCatalogRelations
+type ClearCatalogRelationsRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+}
+
+// ClearCatalogRelationsResponse is the response struct for api ClearCatalogRelations
+type ClearCatalogRelationsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateClearCatalogRelationsRequest creates a request to invoke ClearCatalogRelations API
+func CreateClearCatalogRelationsRequest() (request *ClearCatalogRelationsRequest) {
+	request = &ClearCatalogRelationsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "ClearCatalogRelations", "apigateway", "openAPI")
+	return
+}
+
+// CreateClearCatalogRelationsResponse creates a response to parse from ClearCatalogRelations response
+func CreateClearCatalogRelationsResponse() (response *ClearCatalogRelationsResponse) {
+	response = &ClearCatalogRelationsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudapi/create_catalog.go

@@ -0,0 +1,107 @@
+package cloudapi
+
+//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"
+)
+
+// CreateCatalog invokes the cloudapi.CreateCatalog API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/createcatalog.html
+func (client *Client) CreateCatalog(request *CreateCatalogRequest) (response *CreateCatalogResponse, err error) {
+	response = CreateCreateCatalogResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCatalogWithChan invokes the cloudapi.CreateCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createcatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCatalogWithChan(request *CreateCatalogRequest) (<-chan *CreateCatalogResponse, <-chan error) {
+	responseChan := make(chan *CreateCatalogResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCatalog(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCatalogWithCallback invokes the cloudapi.CreateCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createcatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCatalogWithCallback(request *CreateCatalogRequest, callback func(response *CreateCatalogResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCatalogResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCatalog(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCatalogRequest is the request struct for api CreateCatalog
+type CreateCatalogRequest struct {
+	*requests.RpcRequest
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	CatalogName   string `position:"Query" name:"CatalogName"`
+	Description   string `position:"Query" name:"Description"`
+	ParentId      string `position:"Query" name:"ParentId"`
+}
+
+// CreateCatalogResponse is the response struct for api CreateCatalog
+type CreateCatalogResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	CatalogId string `json:"CatalogId" xml:"CatalogId"`
+}
+
+// CreateCreateCatalogRequest creates a request to invoke CreateCatalog API
+func CreateCreateCatalogRequest() (request *CreateCatalogRequest) {
+	request = &CreateCatalogRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "CreateCatalog", "apigateway", "openAPI")
+	return
+}
+
+// CreateCreateCatalogResponse creates a response to parse from CreateCatalog response
+func CreateCreateCatalogResponse() (response *CreateCatalogResponse) {
+	response = &CreateCatalogResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/cloudapi/create_model.go

@@ -0,0 +1,116 @@
+package cloudapi
+
+//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"
+)
+
+// CreateModel invokes the cloudapi.CreateModel API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/createmodel.html
+func (client *Client) CreateModel(request *CreateModelRequest) (response *CreateModelResponse, err error) {
+	response = CreateCreateModelResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateModelWithChan invokes the cloudapi.CreateModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createmodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateModelWithChan(request *CreateModelRequest) (<-chan *CreateModelResponse, <-chan error) {
+	responseChan := make(chan *CreateModelResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateModel(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateModelWithCallback invokes the cloudapi.CreateModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createmodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateModelWithCallback(request *CreateModelRequest, callback func(response *CreateModelResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateModelResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateModel(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateModelRequest is the request struct for api CreateModel
+type CreateModelRequest struct {
+	*requests.RpcRequest
+	Schema        string `position:"Query" name:"Schema"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ModelName     string `position:"Query" name:"ModelName"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	Description   string `position:"Query" name:"Description"`
+}
+
+// CreateModelResponse is the response struct for api CreateModel
+type CreateModelResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	ModelId      string `json:"ModelId" xml:"ModelId"`
+	ModelRef     string `json:"ModelRef" xml:"ModelRef"`
+	ModelName    string `json:"ModelName" xml:"ModelName"`
+	GroupId      string `json:"GroupId" xml:"GroupId"`
+	Schema       string `json:"Schema" xml:"Schema"`
+	RegionId     string `json:"RegionId" xml:"RegionId"`
+	Description  string `json:"Description" xml:"Description"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+}
+
+// CreateCreateModelRequest creates a request to invoke CreateModel API
+func CreateCreateModelRequest() (request *CreateModelRequest) {
+	request = &CreateModelRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "CreateModel", "apigateway", "openAPI")
+	return
+}
+
+// CreateCreateModelResponse creates a response to parse from CreateModel response
+func CreateCreateModelResponse() (response *CreateModelResponse) {
+	response = &CreateModelResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudapi/create_plugin.go

@@ -0,0 +1,108 @@
+package cloudapi
+
+//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"
+)
+
+// CreatePlugin invokes the cloudapi.CreatePlugin API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/createplugin.html
+func (client *Client) CreatePlugin(request *CreatePluginRequest) (response *CreatePluginResponse, err error) {
+	response = CreateCreatePluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreatePluginWithChan invokes the cloudapi.CreatePlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePluginWithChan(request *CreatePluginRequest) (<-chan *CreatePluginResponse, <-chan error) {
+	responseChan := make(chan *CreatePluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreatePlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreatePluginWithCallback invokes the cloudapi.CreatePlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/createplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePluginWithCallback(request *CreatePluginRequest, callback func(response *CreatePluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreatePluginResponse
+		var err error
+		defer close(result)
+		response, err = client.CreatePlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreatePluginRequest is the request struct for api CreatePlugin
+type CreatePluginRequest struct {
+	*requests.RpcRequest
+	PluginType    string `position:"Query" name:"PluginType"`
+	PluginName    string `position:"Query" name:"PluginName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	PluginData    string `position:"Query" name:"PluginData"`
+	Description   string `position:"Query" name:"Description"`
+}
+
+// CreatePluginResponse is the response struct for api CreatePlugin
+type CreatePluginResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	PluginId  string `json:"PluginId" xml:"PluginId"`
+}
+
+// CreateCreatePluginRequest creates a request to invoke CreatePlugin API
+func CreateCreatePluginRequest() (request *CreatePluginRequest) {
+	request = &CreatePluginRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "CreatePlugin", "apigateway", "openAPI")
+	return
+}
+
+// CreateCreatePluginResponse creates a response to parse from CreatePlugin response
+func CreateCreatePluginResponse() (response *CreatePluginResponse) {
+	response = &CreatePluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cloudapi/delete_catalog.go

@@ -0,0 +1,104 @@
+package cloudapi
+
+//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"
+)
+
+// DeleteCatalog invokes the cloudapi.DeleteCatalog API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletecatalog.html
+func (client *Client) DeleteCatalog(request *DeleteCatalogRequest) (response *DeleteCatalogResponse, err error) {
+	response = CreateDeleteCatalogResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteCatalogWithChan invokes the cloudapi.DeleteCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletecatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCatalogWithChan(request *DeleteCatalogRequest) (<-chan *DeleteCatalogResponse, <-chan error) {
+	responseChan := make(chan *DeleteCatalogResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCatalog(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteCatalogWithCallback invokes the cloudapi.DeleteCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletecatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCatalogWithCallback(request *DeleteCatalogRequest, callback func(response *DeleteCatalogResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteCatalogResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCatalog(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteCatalogRequest is the request struct for api DeleteCatalog
+type DeleteCatalogRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+}
+
+// DeleteCatalogResponse is the response struct for api DeleteCatalog
+type DeleteCatalogResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteCatalogRequest creates a request to invoke DeleteCatalog API
+func CreateDeleteCatalogRequest() (request *DeleteCatalogRequest) {
+	request = &DeleteCatalogRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DeleteCatalog", "apigateway", "openAPI")
+	return
+}
+
+// CreateDeleteCatalogResponse creates a response to parse from DeleteCatalog response
+func CreateDeleteCatalogResponse() (response *DeleteCatalogResponse) {
+	response = &DeleteCatalogResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cloudapi/delete_model.go

@@ -0,0 +1,105 @@
+package cloudapi
+
+//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"
+)
+
+// DeleteModel invokes the cloudapi.DeleteModel API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletemodel.html
+func (client *Client) DeleteModel(request *DeleteModelRequest) (response *DeleteModelResponse, err error) {
+	response = CreateDeleteModelResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteModelWithChan invokes the cloudapi.DeleteModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletemodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteModelWithChan(request *DeleteModelRequest) (<-chan *DeleteModelResponse, <-chan error) {
+	responseChan := make(chan *DeleteModelResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteModel(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteModelWithCallback invokes the cloudapi.DeleteModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deletemodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteModelWithCallback(request *DeleteModelRequest, callback func(response *DeleteModelResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteModelResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteModel(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteModelRequest is the request struct for api DeleteModel
+type DeleteModelRequest struct {
+	*requests.RpcRequest
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ModelName     string `position:"Query" name:"ModelName"`
+	GroupId       string `position:"Query" name:"GroupId"`
+}
+
+// DeleteModelResponse is the response struct for api DeleteModel
+type DeleteModelResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteModelRequest creates a request to invoke DeleteModel API
+func CreateDeleteModelRequest() (request *DeleteModelRequest) {
+	request = &DeleteModelRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DeleteModel", "apigateway", "openAPI")
+	return
+}
+
+// CreateDeleteModelResponse creates a response to parse from DeleteModel response
+func CreateDeleteModelResponse() (response *DeleteModelResponse) {
+	response = &DeleteModelResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cloudapi/delete_plugin.go

@@ -0,0 +1,104 @@
+package cloudapi
+
+//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"
+)
+
+// DeletePlugin invokes the cloudapi.DeletePlugin API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/deleteplugin.html
+func (client *Client) DeletePlugin(request *DeletePluginRequest) (response *DeletePluginResponse, err error) {
+	response = CreateDeletePluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeletePluginWithChan invokes the cloudapi.DeletePlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deleteplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePluginWithChan(request *DeletePluginRequest) (<-chan *DeletePluginResponse, <-chan error) {
+	responseChan := make(chan *DeletePluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeletePlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeletePluginWithCallback invokes the cloudapi.DeletePlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/deleteplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeletePluginWithCallback(request *DeletePluginRequest, callback func(response *DeletePluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeletePluginResponse
+		var err error
+		defer close(result)
+		response, err = client.DeletePlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeletePluginRequest is the request struct for api DeletePlugin
+type DeletePluginRequest struct {
+	*requests.RpcRequest
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	PluginId      string `position:"Query" name:"PluginId"`
+}
+
+// DeletePluginResponse is the response struct for api DeletePlugin
+type DeletePluginResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeletePluginRequest creates a request to invoke DeletePlugin API
+func CreateDeletePluginRequest() (request *DeletePluginRequest) {
+	request = &DeletePluginRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DeletePlugin", "apigateway", "openAPI")
+	return
+}
+
+// CreateDeletePluginResponse creates a response to parse from DeletePlugin response
+func CreateDeletePluginResponse() (response *DeletePluginResponse) {
+	response = &DeletePluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 5 - 5
services/cloudapi/describe_apis.go

@@ -89,11 +89,11 @@ type DescribeApisRequest struct {
 // DescribeApisResponse is the response struct for api DescribeApis
 type DescribeApisResponse struct {
 	*responses.BaseResponse
-	RequestId   string      `json:"RequestId" xml:"RequestId"`
-	TotalCount  int         `json:"TotalCount" xml:"TotalCount"`
-	PageSize    int         `json:"PageSize" xml:"PageSize"`
-	PageNumber  int         `json:"PageNumber" xml:"PageNumber"`
-	ApiSummarys ApiSummarys `json:"ApiSummarys" xml:"ApiSummarys"`
+	RequestId   string                    `json:"RequestId" xml:"RequestId"`
+	TotalCount  int                       `json:"TotalCount" xml:"TotalCount"`
+	PageSize    int                       `json:"PageSize" xml:"PageSize"`
+	PageNumber  int                       `json:"PageNumber" xml:"PageNumber"`
+	ApiSummarys ApiSummarysInDescribeApis `json:"ApiSummarys" xml:"ApiSummarys"`
 }
 
 // CreateDescribeApisRequest creates a request to invoke DescribeApis API

+ 112 - 0
services/cloudapi/describe_catalog.go

@@ -0,0 +1,112 @@
+package cloudapi
+
+//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"
+)
+
+// DescribeCatalog invokes the cloudapi.DescribeCatalog API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalog.html
+func (client *Client) DescribeCatalog(request *DescribeCatalogRequest) (response *DescribeCatalogResponse, err error) {
+	response = CreateDescribeCatalogResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCatalogWithChan invokes the cloudapi.DescribeCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCatalogWithChan(request *DescribeCatalogRequest) (<-chan *DescribeCatalogResponse, <-chan error) {
+	responseChan := make(chan *DescribeCatalogResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCatalog(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCatalogWithCallback invokes the cloudapi.DescribeCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCatalogWithCallback(request *DescribeCatalogRequest, callback func(response *DescribeCatalogResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCatalogResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCatalog(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCatalogRequest is the request struct for api DescribeCatalog
+type DescribeCatalogRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+}
+
+// DescribeCatalogResponse is the response struct for api DescribeCatalog
+type DescribeCatalogResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	CatalogId    string `json:"CatalogId" xml:"CatalogId"`
+	CatalogName  string `json:"CatalogName" xml:"CatalogName"`
+	Description  string `json:"Description" xml:"Description"`
+	ParentId     string `json:"ParentId" xml:"ParentId"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+	RegionId     string `json:"RegionId" xml:"RegionId"`
+	ApiIds       ApiIds `json:"ApiIds" xml:"ApiIds"`
+}
+
+// CreateDescribeCatalogRequest creates a request to invoke DescribeCatalog API
+func CreateDescribeCatalogRequest() (request *DescribeCatalogRequest) {
+	request = &DescribeCatalogRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribeCatalog", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribeCatalogResponse creates a response to parse from DescribeCatalog response
+func CreateDescribeCatalogResponse() (response *DescribeCatalogResponse) {
+	response = &DescribeCatalogResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudapi/describe_catalogs.go

@@ -0,0 +1,107 @@
+package cloudapi
+
+//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"
+)
+
+// DescribeCatalogs invokes the cloudapi.DescribeCatalogs API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalogs.html
+func (client *Client) DescribeCatalogs(request *DescribeCatalogsRequest) (response *DescribeCatalogsResponse, err error) {
+	response = CreateDescribeCatalogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCatalogsWithChan invokes the cloudapi.DescribeCatalogs API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCatalogsWithChan(request *DescribeCatalogsRequest) (<-chan *DescribeCatalogsResponse, <-chan error) {
+	responseChan := make(chan *DescribeCatalogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCatalogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCatalogsWithCallback invokes the cloudapi.DescribeCatalogs API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describecatalogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCatalogsWithCallback(request *DescribeCatalogsRequest, callback func(response *DescribeCatalogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCatalogsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCatalogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCatalogsRequest is the request struct for api DescribeCatalogs
+type DescribeCatalogsRequest struct {
+	*requests.RpcRequest
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+}
+
+// DescribeCatalogsResponse is the response struct for api DescribeCatalogs
+type DescribeCatalogsResponse struct {
+	*responses.BaseResponse
+	RequestId         string            `json:"RequestId" xml:"RequestId"`
+	TotalCount        int               `json:"TotalCount" xml:"TotalCount"`
+	PageSize          int               `json:"PageSize" xml:"PageSize"`
+	PageNumber        int               `json:"PageNumber" xml:"PageNumber"`
+	CatalogAttributes CatalogAttributes `json:"CatalogAttributes" xml:"CatalogAttributes"`
+}
+
+// CreateDescribeCatalogsRequest creates a request to invoke DescribeCatalogs API
+func CreateDescribeCatalogsRequest() (request *DescribeCatalogsRequest) {
+	request = &DescribeCatalogsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribeCatalogs", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribeCatalogsResponse creates a response to parse from DescribeCatalogs response
+func CreateDescribeCatalogsResponse() (response *DescribeCatalogsResponse) {
+	response = &DescribeCatalogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cloudapi/describe_models.go

@@ -0,0 +1,112 @@
+package cloudapi
+
+//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"
+)
+
+// DescribeModels invokes the cloudapi.DescribeModels API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describemodels.html
+func (client *Client) DescribeModels(request *DescribeModelsRequest) (response *DescribeModelsResponse, err error) {
+	response = CreateDescribeModelsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeModelsWithChan invokes the cloudapi.DescribeModels API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describemodels.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeModelsWithChan(request *DescribeModelsRequest) (<-chan *DescribeModelsResponse, <-chan error) {
+	responseChan := make(chan *DescribeModelsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeModels(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeModelsWithCallback invokes the cloudapi.DescribeModels API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describemodels.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeModelsWithCallback(request *DescribeModelsRequest, callback func(response *DescribeModelsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeModelsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeModels(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeModelsRequest is the request struct for api DescribeModels
+type DescribeModelsRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	ModelId       string           `position:"Query" name:"ModelId"`
+	GroupId       string           `position:"Query" name:"GroupId"`
+	ModelName     string           `position:"Query" name:"ModelName"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeModelsResponse is the response struct for api DescribeModels
+type DescribeModelsResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	TotalCount   int          `json:"TotalCount" xml:"TotalCount"`
+	PageSize     int          `json:"PageSize" xml:"PageSize"`
+	PageNumber   int          `json:"PageNumber" xml:"PageNumber"`
+	ModelDetails ModelDetails `json:"ModelDetails" xml:"ModelDetails"`
+}
+
+// CreateDescribeModelsRequest creates a request to invoke DescribeModels API
+func CreateDescribeModelsRequest() (request *DescribeModelsRequest) {
+	request = &DescribeModelsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribeModels", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribeModelsResponse creates a response to parse from DescribeModels response
+func CreateDescribeModelsResponse() (response *DescribeModelsResponse) {
+	response = &DescribeModelsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudapi/describe_plugin_apis.go

@@ -0,0 +1,110 @@
+package cloudapi
+
+//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"
+)
+
+// DescribePluginApis invokes the cloudapi.DescribePluginApis API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginapis.html
+func (client *Client) DescribePluginApis(request *DescribePluginApisRequest) (response *DescribePluginApisResponse, err error) {
+	response = CreateDescribePluginApisResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribePluginApisWithChan invokes the cloudapi.DescribePluginApis API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginapis.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginApisWithChan(request *DescribePluginApisRequest) (<-chan *DescribePluginApisResponse, <-chan error) {
+	responseChan := make(chan *DescribePluginApisResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribePluginApis(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribePluginApisWithCallback invokes the cloudapi.DescribePluginApis API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginapis.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginApisWithCallback(request *DescribePluginApisRequest, callback func(response *DescribePluginApisResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribePluginApisResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribePluginApis(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribePluginApisRequest is the request struct for api DescribePluginApis
+type DescribePluginApisRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	PluginId      string           `position:"Query" name:"PluginId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribePluginApisResponse is the response struct for api DescribePluginApis
+type DescribePluginApisResponse struct {
+	*responses.BaseResponse
+	RequestId   string                          `json:"RequestId" xml:"RequestId"`
+	TotalCount  int                             `json:"TotalCount" xml:"TotalCount"`
+	PageSize    int                             `json:"PageSize" xml:"PageSize"`
+	PageNumber  int                             `json:"PageNumber" xml:"PageNumber"`
+	ApiSummarys ApiSummarysInDescribePluginApis `json:"ApiSummarys" xml:"ApiSummarys"`
+}
+
+// CreateDescribePluginApisRequest creates a request to invoke DescribePluginApis API
+func CreateDescribePluginApisRequest() (request *DescribePluginApisRequest) {
+	request = &DescribePluginApisRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribePluginApis", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribePluginApisResponse creates a response to parse from DescribePluginApis response
+func CreateDescribePluginApisResponse() (response *DescribePluginApisResponse) {
+	response = &DescribePluginApisResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cloudapi/describe_plugins.go

@@ -0,0 +1,112 @@
+package cloudapi
+
+//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"
+)
+
+// DescribePlugins invokes the cloudapi.DescribePlugins API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describeplugins.html
+func (client *Client) DescribePlugins(request *DescribePluginsRequest) (response *DescribePluginsResponse, err error) {
+	response = CreateDescribePluginsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribePluginsWithChan invokes the cloudapi.DescribePlugins API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describeplugins.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginsWithChan(request *DescribePluginsRequest) (<-chan *DescribePluginsResponse, <-chan error) {
+	responseChan := make(chan *DescribePluginsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribePlugins(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribePluginsWithCallback invokes the cloudapi.DescribePlugins API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describeplugins.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginsWithCallback(request *DescribePluginsRequest, callback func(response *DescribePluginsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribePluginsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribePlugins(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribePluginsRequest is the request struct for api DescribePlugins
+type DescribePluginsRequest struct {
+	*requests.RpcRequest
+	PluginType    string           `position:"Query" name:"PluginType"`
+	PluginName    string           `position:"Query" name:"PluginName"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	PluginId      string           `position:"Query" name:"PluginId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribePluginsResponse is the response struct for api DescribePlugins
+type DescribePluginsResponse struct {
+	*responses.BaseResponse
+	RequestId  string                   `json:"RequestId" xml:"RequestId"`
+	TotalCount int                      `json:"TotalCount" xml:"TotalCount"`
+	PageSize   int                      `json:"PageSize" xml:"PageSize"`
+	PageNumber int                      `json:"PageNumber" xml:"PageNumber"`
+	Plugins    PluginsInDescribePlugins `json:"Plugins" xml:"Plugins"`
+}
+
+// CreateDescribePluginsRequest creates a request to invoke DescribePlugins API
+func CreateDescribePluginsRequest() (request *DescribePluginsRequest) {
+	request = &DescribePluginsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribePlugins", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribePluginsResponse creates a response to parse from DescribePlugins response
+func CreateDescribePluginsResponse() (response *DescribePluginsResponse) {
+	response = &DescribePluginsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cloudapi/describe_plugins_by_api.go

@@ -0,0 +1,110 @@
+package cloudapi
+
+//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"
+)
+
+// DescribePluginsByApi invokes the cloudapi.DescribePluginsByApi API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginsbyapi.html
+func (client *Client) DescribePluginsByApi(request *DescribePluginsByApiRequest) (response *DescribePluginsByApiResponse, err error) {
+	response = CreateDescribePluginsByApiResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribePluginsByApiWithChan invokes the cloudapi.DescribePluginsByApi API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginsbyapi.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginsByApiWithChan(request *DescribePluginsByApiRequest) (<-chan *DescribePluginsByApiResponse, <-chan error) {
+	responseChan := make(chan *DescribePluginsByApiResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribePluginsByApi(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribePluginsByApiWithCallback invokes the cloudapi.DescribePluginsByApi API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/describepluginsbyapi.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribePluginsByApiWithCallback(request *DescribePluginsByApiRequest, callback func(response *DescribePluginsByApiResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribePluginsByApiResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribePluginsByApi(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribePluginsByApiRequest is the request struct for api DescribePluginsByApi
+type DescribePluginsByApiRequest struct {
+	*requests.RpcRequest
+	StageName     string `position:"Query" name:"StageName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	ApiId         string `position:"Query" name:"ApiId"`
+}
+
+// DescribePluginsByApiResponse is the response struct for api DescribePluginsByApi
+type DescribePluginsByApiResponse struct {
+	*responses.BaseResponse
+	RequestId  string                        `json:"RequestId" xml:"RequestId"`
+	TotalCount int                           `json:"TotalCount" xml:"TotalCount"`
+	PageSize   int                           `json:"PageSize" xml:"PageSize"`
+	PageNumber int                           `json:"PageNumber" xml:"PageNumber"`
+	Plugins    PluginsInDescribePluginsByApi `json:"Plugins" xml:"Plugins"`
+}
+
+// CreateDescribePluginsByApiRequest creates a request to invoke DescribePluginsByApi API
+func CreateDescribePluginsByApiRequest() (request *DescribePluginsByApiRequest) {
+	request = &DescribePluginsByApiRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DescribePluginsByApi", "apigateway", "openAPI")
+	return
+}
+
+// CreateDescribePluginsByApiResponse creates a response to parse from DescribePluginsByApi response
+func CreateDescribePluginsByApiResponse() (response *DescribePluginsByApiResponse) {
+	response = &DescribePluginsByApiResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudapi/detach_plugin.go

@@ -0,0 +1,108 @@
+package cloudapi
+
+//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"
+)
+
+// DetachPlugin invokes the cloudapi.DetachPlugin API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/detachplugin.html
+func (client *Client) DetachPlugin(request *DetachPluginRequest) (response *DetachPluginResponse, err error) {
+	response = CreateDetachPluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DetachPluginWithChan invokes the cloudapi.DetachPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/detachplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DetachPluginWithChan(request *DetachPluginRequest) (<-chan *DetachPluginResponse, <-chan error) {
+	responseChan := make(chan *DetachPluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DetachPlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DetachPluginWithCallback invokes the cloudapi.DetachPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/detachplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DetachPluginWithCallback(request *DetachPluginRequest, callback func(response *DetachPluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DetachPluginResponse
+		var err error
+		defer close(result)
+		response, err = client.DetachPlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DetachPluginRequest is the request struct for api DetachPlugin
+type DetachPluginRequest struct {
+	*requests.RpcRequest
+	StageName     string `position:"Query" name:"StageName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	PluginId      string `position:"Query" name:"PluginId"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	ApiId         string `position:"Query" name:"ApiId"`
+	ApiIds        string `position:"Query" name:"ApiIds"`
+}
+
+// DetachPluginResponse is the response struct for api DetachPlugin
+type DetachPluginResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDetachPluginRequest creates a request to invoke DetachPlugin API
+func CreateDetachPluginRequest() (request *DetachPluginRequest) {
+	request = &DetachPluginRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "DetachPlugin", "apigateway", "openAPI")
+	return
+}
+
+// CreateDetachPluginResponse creates a response to parse from DetachPlugin response
+func CreateDetachPluginResponse() (response *DetachPluginResponse) {
+	response = &DetachPluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cloudapi/generate_instance_token.go

@@ -0,0 +1,104 @@
+package cloudapi
+
+//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"
+)
+
+// GenerateInstanceToken invokes the cloudapi.GenerateInstanceToken API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/generateinstancetoken.html
+func (client *Client) GenerateInstanceToken(request *GenerateInstanceTokenRequest) (response *GenerateInstanceTokenResponse, err error) {
+	response = CreateGenerateInstanceTokenResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GenerateInstanceTokenWithChan invokes the cloudapi.GenerateInstanceToken API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/generateinstancetoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateInstanceTokenWithChan(request *GenerateInstanceTokenRequest) (<-chan *GenerateInstanceTokenResponse, <-chan error) {
+	responseChan := make(chan *GenerateInstanceTokenResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GenerateInstanceToken(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GenerateInstanceTokenWithCallback invokes the cloudapi.GenerateInstanceToken API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/generateinstancetoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateInstanceTokenWithCallback(request *GenerateInstanceTokenRequest, callback func(response *GenerateInstanceTokenResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GenerateInstanceTokenResponse
+		var err error
+		defer close(result)
+		response, err = client.GenerateInstanceToken(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GenerateInstanceTokenRequest is the request struct for api GenerateInstanceToken
+type GenerateInstanceTokenRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GenerateInstanceTokenResponse is the response struct for api GenerateInstanceToken
+type GenerateInstanceTokenResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Token     string `json:"Token" xml:"Token"`
+}
+
+// CreateGenerateInstanceTokenRequest creates a request to invoke GenerateInstanceToken API
+func CreateGenerateInstanceTokenRequest() (request *GenerateInstanceTokenRequest) {
+	request = &GenerateInstanceTokenRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "GenerateInstanceToken", "apigateway", "openAPI")
+	return
+}
+
+// CreateGenerateInstanceTokenResponse creates a response to parse from GenerateInstanceToken response
+func CreateGenerateInstanceTokenResponse() (response *GenerateInstanceTokenResponse) {
+	response = &GenerateInstanceTokenResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/cloudapi/modify_catalog.go

@@ -0,0 +1,106 @@
+package cloudapi
+
+//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"
+)
+
+// ModifyCatalog invokes the cloudapi.ModifyCatalog API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifycatalog.html
+func (client *Client) ModifyCatalog(request *ModifyCatalogRequest) (response *ModifyCatalogResponse, err error) {
+	response = CreateModifyCatalogResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCatalogWithChan invokes the cloudapi.ModifyCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifycatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCatalogWithChan(request *ModifyCatalogRequest) (<-chan *ModifyCatalogResponse, <-chan error) {
+	responseChan := make(chan *ModifyCatalogResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCatalog(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCatalogWithCallback invokes the cloudapi.ModifyCatalog API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifycatalog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCatalogWithCallback(request *ModifyCatalogRequest, callback func(response *ModifyCatalogResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCatalogResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCatalog(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCatalogRequest is the request struct for api ModifyCatalog
+type ModifyCatalogRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	CatalogName   string `position:"Query" name:"CatalogName"`
+	Description   string `position:"Query" name:"Description"`
+}
+
+// ModifyCatalogResponse is the response struct for api ModifyCatalog
+type ModifyCatalogResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCatalogRequest creates a request to invoke ModifyCatalog API
+func CreateModifyCatalogRequest() (request *ModifyCatalogRequest) {
+	request = &ModifyCatalogRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "ModifyCatalog", "apigateway", "openAPI")
+	return
+}
+
+// CreateModifyCatalogResponse creates a response to parse from ModifyCatalog response
+func CreateModifyCatalogResponse() (response *ModifyCatalogResponse) {
+	response = &ModifyCatalogResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cloudapi/modify_model.go

@@ -0,0 +1,108 @@
+package cloudapi
+
+//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"
+)
+
+// ModifyModel invokes the cloudapi.ModifyModel API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifymodel.html
+func (client *Client) ModifyModel(request *ModifyModelRequest) (response *ModifyModelResponse, err error) {
+	response = CreateModifyModelResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyModelWithChan invokes the cloudapi.ModifyModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifymodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyModelWithChan(request *ModifyModelRequest) (<-chan *ModifyModelResponse, <-chan error) {
+	responseChan := make(chan *ModifyModelResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyModel(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyModelWithCallback invokes the cloudapi.ModifyModel API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifymodel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyModelWithCallback(request *ModifyModelRequest, callback func(response *ModifyModelResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyModelResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyModel(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyModelRequest is the request struct for api ModifyModel
+type ModifyModelRequest struct {
+	*requests.RpcRequest
+	Schema        string `position:"Query" name:"Schema"`
+	NewModelName  string `position:"Query" name:"NewModelName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ModelName     string `position:"Query" name:"ModelName"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	Description   string `position:"Query" name:"Description"`
+}
+
+// ModifyModelResponse is the response struct for api ModifyModel
+type ModifyModelResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyModelRequest creates a request to invoke ModifyModel API
+func CreateModifyModelRequest() (request *ModifyModelRequest) {
+	request = &ModifyModelRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "ModifyModel", "apigateway", "openAPI")
+	return
+}
+
+// CreateModifyModelResponse creates a response to parse from ModifyModel response
+func CreateModifyModelResponse() (response *ModifyModelResponse) {
+	response = &ModifyModelResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cloudapi/modify_plugin.go

@@ -0,0 +1,107 @@
+package cloudapi
+
+//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"
+)
+
+// ModifyPlugin invokes the cloudapi.ModifyPlugin API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifyplugin.html
+func (client *Client) ModifyPlugin(request *ModifyPluginRequest) (response *ModifyPluginResponse, err error) {
+	response = CreateModifyPluginResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyPluginWithChan invokes the cloudapi.ModifyPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifyplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyPluginWithChan(request *ModifyPluginRequest) (<-chan *ModifyPluginResponse, <-chan error) {
+	responseChan := make(chan *ModifyPluginResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyPlugin(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyPluginWithCallback invokes the cloudapi.ModifyPlugin API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/modifyplugin.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyPluginWithCallback(request *ModifyPluginRequest, callback func(response *ModifyPluginResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyPluginResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyPlugin(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyPluginRequest is the request struct for api ModifyPlugin
+type ModifyPluginRequest struct {
+	*requests.RpcRequest
+	PluginName    string `position:"Query" name:"PluginName"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	PluginId      string `position:"Query" name:"PluginId"`
+	PluginData    string `position:"Query" name:"PluginData"`
+	Description   string `position:"Query" name:"Description"`
+}
+
+// ModifyPluginResponse is the response struct for api ModifyPlugin
+type ModifyPluginResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyPluginRequest creates a request to invoke ModifyPlugin API
+func CreateModifyPluginRequest() (request *ModifyPluginRequest) {
+	request = &ModifyPluginRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "ModifyPlugin", "apigateway", "openAPI")
+	return
+}
+
+// CreateModifyPluginResponse creates a response to parse from ModifyPlugin response
+func CreateModifyPluginResponse() (response *ModifyPluginResponse) {
+	response = &ModifyPluginResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cloudapi/remove_catalog_relation.go

@@ -0,0 +1,105 @@
+package cloudapi
+
+//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"
+)
+
+// RemoveCatalogRelation invokes the cloudapi.RemoveCatalogRelation API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelation.html
+func (client *Client) RemoveCatalogRelation(request *RemoveCatalogRelationRequest) (response *RemoveCatalogRelationResponse, err error) {
+	response = CreateRemoveCatalogRelationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RemoveCatalogRelationWithChan invokes the cloudapi.RemoveCatalogRelation API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveCatalogRelationWithChan(request *RemoveCatalogRelationRequest) (<-chan *RemoveCatalogRelationResponse, <-chan error) {
+	responseChan := make(chan *RemoveCatalogRelationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RemoveCatalogRelation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RemoveCatalogRelationWithCallback invokes the cloudapi.RemoveCatalogRelation API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveCatalogRelationWithCallback(request *RemoveCatalogRelationRequest, callback func(response *RemoveCatalogRelationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RemoveCatalogRelationResponse
+		var err error
+		defer close(result)
+		response, err = client.RemoveCatalogRelation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RemoveCatalogRelationRequest is the request struct for api RemoveCatalogRelation
+type RemoveCatalogRelationRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	ApiId         string `position:"Query" name:"ApiId"`
+}
+
+// RemoveCatalogRelationResponse is the response struct for api RemoveCatalogRelation
+type RemoveCatalogRelationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateRemoveCatalogRelationRequest creates a request to invoke RemoveCatalogRelation API
+func CreateRemoveCatalogRelationRequest() (request *RemoveCatalogRelationRequest) {
+	request = &RemoveCatalogRelationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "RemoveCatalogRelation", "apigateway", "openAPI")
+	return
+}
+
+// CreateRemoveCatalogRelationResponse creates a response to parse from RemoveCatalogRelation response
+func CreateRemoveCatalogRelationResponse() (response *RemoveCatalogRelationResponse) {
+	response = &RemoveCatalogRelationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 104 - 0
services/cloudapi/remove_catalog_relations.go

@@ -0,0 +1,104 @@
+package cloudapi
+
+//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"
+)
+
+// RemoveCatalogRelations invokes the cloudapi.RemoveCatalogRelations API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelations.html
+func (client *Client) RemoveCatalogRelations(request *RemoveCatalogRelationsRequest) (response *RemoveCatalogRelationsResponse, err error) {
+	response = CreateRemoveCatalogRelationsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RemoveCatalogRelationsWithChan invokes the cloudapi.RemoveCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveCatalogRelationsWithChan(request *RemoveCatalogRelationsRequest) (<-chan *RemoveCatalogRelationsResponse, <-chan error) {
+	responseChan := make(chan *RemoveCatalogRelationsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RemoveCatalogRelations(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RemoveCatalogRelationsWithCallback invokes the cloudapi.RemoveCatalogRelations API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/removecatalogrelations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RemoveCatalogRelationsWithCallback(request *RemoveCatalogRelationsRequest, callback func(response *RemoveCatalogRelationsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RemoveCatalogRelationsResponse
+		var err error
+		defer close(result)
+		response, err = client.RemoveCatalogRelations(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RemoveCatalogRelationsRequest is the request struct for api RemoveCatalogRelations
+type RemoveCatalogRelationsRequest struct {
+	*requests.RpcRequest
+	CatalogId     string `position:"Query" name:"CatalogId"`
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+}
+
+// RemoveCatalogRelationsResponse is the response struct for api RemoveCatalogRelations
+type RemoveCatalogRelationsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateRemoveCatalogRelationsRequest creates a request to invoke RemoveCatalogRelations API
+func CreateRemoveCatalogRelationsRequest() (request *RemoveCatalogRelationsRequest) {
+	request = &RemoveCatalogRelationsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "RemoveCatalogRelations", "apigateway", "openAPI")
+	return
+}
+
+// CreateRemoveCatalogRelationsResponse creates a response to parse from RemoveCatalogRelations response
+func CreateRemoveCatalogRelationsResponse() (response *RemoveCatalogRelationsResponse) {
+	response = &RemoveCatalogRelationsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/cloudapi/set_group_auth_app_code.go

@@ -0,0 +1,105 @@
+package cloudapi
+
+//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"
+)
+
+// SetGroupAuthAppCode invokes the cloudapi.SetGroupAuthAppCode API synchronously
+// api document: https://help.aliyun.com/api/cloudapi/setgroupauthappcode.html
+func (client *Client) SetGroupAuthAppCode(request *SetGroupAuthAppCodeRequest) (response *SetGroupAuthAppCodeResponse, err error) {
+	response = CreateSetGroupAuthAppCodeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetGroupAuthAppCodeWithChan invokes the cloudapi.SetGroupAuthAppCode API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/setgroupauthappcode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetGroupAuthAppCodeWithChan(request *SetGroupAuthAppCodeRequest) (<-chan *SetGroupAuthAppCodeResponse, <-chan error) {
+	responseChan := make(chan *SetGroupAuthAppCodeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetGroupAuthAppCode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetGroupAuthAppCodeWithCallback invokes the cloudapi.SetGroupAuthAppCode API asynchronously
+// api document: https://help.aliyun.com/api/cloudapi/setgroupauthappcode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetGroupAuthAppCodeWithCallback(request *SetGroupAuthAppCodeRequest, callback func(response *SetGroupAuthAppCodeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetGroupAuthAppCodeResponse
+		var err error
+		defer close(result)
+		response, err = client.SetGroupAuthAppCode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetGroupAuthAppCodeRequest is the request struct for api SetGroupAuthAppCode
+type SetGroupAuthAppCodeRequest struct {
+	*requests.RpcRequest
+	SecurityToken string `position:"Query" name:"SecurityToken"`
+	GroupId       string `position:"Query" name:"GroupId"`
+	AuthAppCode   string `position:"Query" name:"AuthAppCode"`
+}
+
+// SetGroupAuthAppCodeResponse is the response struct for api SetGroupAuthAppCode
+type SetGroupAuthAppCodeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetGroupAuthAppCodeRequest creates a request to invoke SetGroupAuthAppCode API
+func CreateSetGroupAuthAppCodeRequest() (request *SetGroupAuthAppCodeRequest) {
+	request = &SetGroupAuthAppCodeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CloudAPI", "2016-07-14", "SetGroupAuthAppCode", "apigateway", "openAPI")
+	return
+}
+
+// CreateSetGroupAuthAppCodeResponse creates a response to parse from SetGroupAuthAppCode response
+func CreateSetGroupAuthAppCodeResponse() (response *SetGroupAuthAppCodeResponse) {
+	response = &SetGroupAuthAppCodeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/cloudapi/struct_api_ids.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// ApiIds is a nested struct in cloudapi response
+type ApiIds struct {
+	ApiId []string `json:"ApiId" xml:"ApiId"`
+}

+ 29 - 0
services/cloudapi/struct_api_plugin_summary.go

@@ -0,0 +1,29 @@
+package cloudapi
+
+//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.
+
+// ApiPluginSummary is a nested struct in cloudapi response
+type ApiPluginSummary struct {
+	RegionId    string `json:"RegionId" xml:"RegionId"`
+	GroupId     string `json:"GroupId" xml:"GroupId"`
+	GroupName   string `json:"GroupName" xml:"GroupName"`
+	StageName   string `json:"StageName" xml:"StageName"`
+	ApiId       string `json:"ApiId" xml:"ApiId"`
+	ApiName     string `json:"ApiName" xml:"ApiName"`
+	Description string `json:"Description" xml:"Description"`
+	Path        string `json:"Path" xml:"Path"`
+	Method      string `json:"Method" xml:"Method"`
+}

+ 2 - 2
services/cloudapi/struct_api_summarys.go → services/cloudapi/struct_api_summarys_in_describe_apis.go

@@ -15,7 +15,7 @@ package cloudapi
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-// ApiSummarys is a nested struct in cloudapi response
-type ApiSummarys struct {
+// ApiSummarysInDescribeApis is a nested struct in cloudapi response
+type ApiSummarysInDescribeApis struct {
 	ApiSummary []ApiSummary `json:"ApiSummary" xml:"ApiSummary"`
 }

+ 21 - 0
services/cloudapi/struct_api_summarys_in_describe_plugin_apis.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// ApiSummarysInDescribePluginApis is a nested struct in cloudapi response
+type ApiSummarysInDescribePluginApis struct {
+	ApiPluginSummary []ApiPluginSummary `json:"ApiPluginSummary" xml:"ApiPluginSummary"`
+}

+ 27 - 0
services/cloudapi/struct_catalog_attribute.go

@@ -0,0 +1,27 @@
+package cloudapi
+
+//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.
+
+// CatalogAttribute is a nested struct in cloudapi response
+type CatalogAttribute struct {
+	CatalogId    string `json:"CatalogId" xml:"CatalogId"`
+	CatalogName  string `json:"CatalogName" xml:"CatalogName"`
+	Description  string `json:"Description" xml:"Description"`
+	ParentId     string `json:"ParentId" xml:"ParentId"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+	RegionId     string `json:"RegionId" xml:"RegionId"`
+}

+ 21 - 0
services/cloudapi/struct_catalog_attributes.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// CatalogAttributes is a nested struct in cloudapi response
+type CatalogAttributes struct {
+	CatalogAttribute []CatalogAttribute `json:"CatalogAttribute" xml:"CatalogAttribute"`
+}

+ 28 - 0
services/cloudapi/struct_model_detail.go

@@ -0,0 +1,28 @@
+package cloudapi
+
+//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.
+
+// ModelDetail is a nested struct in cloudapi response
+type ModelDetail struct {
+	GroupId      string `json:"GroupId" xml:"GroupId"`
+	ModelId      string `json:"ModelId" xml:"ModelId"`
+	ModelName    string `json:"ModelName" xml:"ModelName"`
+	Schema       string `json:"Schema" xml:"Schema"`
+	Description  string `json:"Description" xml:"Description"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+	ModelRef     string `json:"ModelRef" xml:"ModelRef"`
+}

+ 21 - 0
services/cloudapi/struct_model_details.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// ModelDetails is a nested struct in cloudapi response
+type ModelDetails struct {
+	ModelDetail []ModelDetail `json:"ModelDetail" xml:"ModelDetail"`
+}

+ 28 - 0
services/cloudapi/struct_plugin_attribute.go

@@ -0,0 +1,28 @@
+package cloudapi
+
+//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.
+
+// PluginAttribute is a nested struct in cloudapi response
+type PluginAttribute struct {
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	PluginId     string `json:"PluginId" xml:"PluginId"`
+	PluginType   string `json:"PluginType" xml:"PluginType"`
+	RegionId     int    `json:"RegionId" xml:"RegionId"`
+	PluginData   string `json:"PluginData" xml:"PluginData"`
+	PluginName   string `json:"PluginName" xml:"PluginName"`
+	Description  int    `json:"Description" xml:"Description"`
+}

+ 28 - 0
services/cloudapi/struct_plugin_attribute_in_describe_plugins_by_api.go

@@ -0,0 +1,28 @@
+package cloudapi
+
+//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.
+
+// PluginAttributeInDescribePluginsByApi is a nested struct in cloudapi response
+type PluginAttributeInDescribePluginsByApi struct {
+	PluginId     string `json:"PluginId" xml:"PluginId"`
+	PluginType   string `json:"PluginType" xml:"PluginType"`
+	PluginName   string `json:"PluginName" xml:"PluginName"`
+	PluginData   string `json:"PluginData" xml:"PluginData"`
+	RegionId     string `json:"RegionId" xml:"RegionId"`
+	Description  string `json:"Description" xml:"Description"`
+	CreatedTime  string `json:"CreatedTime" xml:"CreatedTime"`
+	ModifiedTime string `json:"ModifiedTime" xml:"ModifiedTime"`
+}

+ 21 - 0
services/cloudapi/struct_plugins_in_describe_plugins.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// PluginsInDescribePlugins is a nested struct in cloudapi response
+type PluginsInDescribePlugins struct {
+	PluginAttribute []PluginAttribute `json:"PluginAttribute" xml:"PluginAttribute"`
+}

+ 21 - 0
services/cloudapi/struct_plugins_in_describe_plugins_by_api.go

@@ -0,0 +1,21 @@
+package cloudapi
+
+//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.
+
+// PluginsInDescribePluginsByApi is a nested struct in cloudapi response
+type PluginsInDescribePluginsByApi struct {
+	PluginAttribute []PluginAttributeInDescribePluginsByApi `json:"PluginAttribute" xml:"PluginAttribute"`
+}