Pārlūkot izejas kodu

Add a lot of new API.

sdk-team 6 gadi atpakaļ
vecāks
revīzija
4cd0c39175
100 mainītis faili ar 9923 papildinājumiem un 36 dzēšanām
  1. 3 0
      ChangeLog.txt
  2. 112 0
      services/ccc/add_agent_device.go
  3. 115 0
      services/ccc/add_bulk_phone_numbers.go
  4. 109 0
      services/ccc/add_number_to_skill_group.go
  5. 2 2
      services/ccc/add_phone_number.go
  6. 113 0
      services/ccc/assign_jobs.go
  7. 2 2
      services/ccc/assign_users.go
  8. 110 0
      services/ccc/call_online_privacy_number.go
  9. 112 0
      services/ccc/cancel_jobs.go
  10. 110 0
      services/ccc/cancel_predictive_jobs.go
  11. 53 5
      services/ccc/client.go
  12. 111 0
      services/ccc/commit_contact_flow_version_modification.go
  13. 115 0
      services/ccc/create_batch_jobs.go
  14. 111 0
      services/ccc/create_cab_instance.go
  15. 108 0
      services/ccc/create_ccc_post_order.go
  16. 113 0
      services/ccc/create_contact_flow.go
  17. 126 0
      services/ccc/create_fault.go
  18. 117 0
      services/ccc/create_instance.go
  19. 113 0
      services/ccc/create_job_group.go
  20. 116 0
      services/ccc/create_media.go
  21. 116 0
      services/ccc/create_predictive_job_group.go
  22. 111 0
      services/ccc/create_predictive_jobs.go
  23. 113 0
      services/ccc/create_scenario.go
  24. 112 0
      services/ccc/create_scenario_from_template.go
  25. 8 6
      services/ccc/create_skill_group.go
  26. 117 0
      services/ccc/create_survey.go
  27. 9 8
      services/ccc/create_user.go
  28. 110 0
      services/ccc/create_voice_appraise.go
  29. 107 0
      services/ccc/delete_instance.go
  30. 108 0
      services/ccc/delete_job_group.go
  31. 108 0
      services/ccc/delete_media.go
  32. 109 0
      services/ccc/delete_survey.go
  33. 116 0
      services/ccc/dial_ex.go
  34. 118 0
      services/ccc/dialogue.go
  35. 110 0
      services/ccc/download_all_type_recording.go
  36. 109 0
      services/ccc/download_cab_recording.go
  37. 109 0
      services/ccc/download_original_statistics_report.go
  38. 109 0
      services/ccc/download_unreachable_contacts.go
  39. 20 0
      services/ccc/endpoint.go
  40. 111 0
      services/ccc/find_users.go
  41. 113 0
      services/ccc/generate_agent_statistic_report.go
  42. 113 0
      services/ccc/get_agent_data.go
  43. 110 0
      services/ccc/get_agent_state.go
  44. 114 0
      services/ccc/get_call_measure_summary_report.go
  45. 1 1
      services/ccc/get_config.go
  46. 109 0
      services/ccc/get_contact_identify_by_out_bound_task_id.go
  47. 110 0
      services/ccc/get_contact_info_by_outbound_task_id.go
  48. 111 0
      services/ccc/get_conversation_detail_by_contact_id.go
  49. 109 0
      services/ccc/get_conversation_list.go
  50. 108 0
      services/ccc/get_instance.go
  51. 108 0
      services/ccc/get_instance_state.go
  52. 112 0
      services/ccc/get_instance_summary_report.go
  53. 113 0
      services/ccc/get_instance_summary_report_by_interval.go
  54. 110 0
      services/ccc/get_instance_summary_report_since_midnight.go
  55. 109 0
      services/ccc/get_job.go
  56. 109 0
      services/ccc/get_job_data_upload_params.go
  57. 110 0
      services/ccc/get_job_file_upload_url.go
  58. 109 0
      services/ccc/get_job_group.go
  59. 113 0
      services/ccc/get_job_list.go
  60. 109 0
      services/ccc/get_job_status_by_call_id.go
  61. 109 0
      services/ccc/get_job_template_download_params.go
  62. 110 0
      services/ccc/get_jobs_progress.go
  63. 108 0
      services/ccc/get_number_region_info.go
  64. 109 0
      services/ccc/get_predictive_job.go
  65. 115 0
      services/ccc/get_record_oss_upload_param.go
  66. 109 0
      services/ccc/get_scenario.go
  67. 1 1
      services/ccc/get_service_extensions.go
  68. 109 0
      services/ccc/get_sms_config.go
  69. 110 0
      services/ccc/get_survey.go
  70. 109 0
      services/ccc/get_task_list.go
  71. 110 0
      services/ccc/get_turn_credentials.go
  72. 108 0
      services/ccc/launch_appraise.go
  73. 111 0
      services/ccc/launch_short_message_appraise.go
  74. 111 0
      services/ccc/list_agent_devices.go
  75. 112 0
      services/ccc/list_agent_events.go
  76. 113 0
      services/ccc/list_agent_states.go
  77. 114 0
      services/ccc/list_agent_summary_reports.go
  78. 115 0
      services/ccc/list_agent_summary_reports_by_interval.go
  79. 112 0
      services/ccc/list_agent_summary_reports_since_midnight.go
  80. 112 0
      services/ccc/list_basic_statistics_report_sub_items.go
  81. 7 5
      services/ccc/list_call_detail_records.go
  82. 109 0
      services/ccc/list_call_event_detail_by_contact_id.go
  83. 108 0
      services/ccc/list_call_measure_summary_reports.go
  84. 109 0
      services/ccc/list_config.go
  85. 107 0
      services/ccc/list_instances_of_user.go
  86. 115 0
      services/ccc/list_ivr_tracking_detail.go
  87. 112 0
      services/ccc/list_job_groups.go
  88. 117 0
      services/ccc/list_job_status.go
  89. 113 0
      services/ccc/list_jobs_by_group.go
  90. 111 0
      services/ccc/list_medias.go
  91. 109 0
      services/ccc/list_outbound_phone_number_of_user.go
  92. 1 1
      services/ccc/list_phone_numbers.go
  93. 115 0
      services/ccc/list_predictive_job_groups.go
  94. 116 0
      services/ccc/list_predictive_job_status.go
  95. 115 0
      services/ccc/list_privacy_number_call_details.go
  96. 109 0
      services/ccc/list_privileges_of_user.go
  97. 108 0
      services/ccc/list_real_time_agent.go
  98. 113 0
      services/ccc/list_recent_call_records.go
  99. 116 0
      services/ccc/list_recording_of_dual_track.go
  100. 5 5
      services/ccc/list_recordings.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-08-02 Version: 1.60.81
+- Add a lot of new API.
+
 2019-08-02 Version: 1.60.80
 - SubscribeBillToOSSRequest add multAccountRelSubscribe, bucketOwnerId.
 - UnsubscribeBillToOSSRequest add multAccountRelSubscribe.

+ 112 - 0
services/ccc/add_agent_device.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// AddAgentDevice invokes the ccc.AddAgentDevice API synchronously
+// api document: https://help.aliyun.com/api/ccc/addagentdevice.html
+func (client *Client) AddAgentDevice(request *AddAgentDeviceRequest) (response *AddAgentDeviceResponse, err error) {
+	response = CreateAddAgentDeviceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddAgentDeviceWithChan invokes the ccc.AddAgentDevice API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addagentdevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddAgentDeviceWithChan(request *AddAgentDeviceRequest) (<-chan *AddAgentDeviceResponse, <-chan error) {
+	responseChan := make(chan *AddAgentDeviceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddAgentDevice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddAgentDeviceWithCallback invokes the ccc.AddAgentDevice API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addagentdevice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddAgentDeviceWithCallback(request *AddAgentDeviceRequest, callback func(response *AddAgentDeviceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddAgentDeviceResponse
+		var err error
+		defer close(result)
+		response, err = client.AddAgentDevice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddAgentDeviceRequest is the request struct for api AddAgentDevice
+type AddAgentDeviceRequest struct {
+	*requests.RpcRequest
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	ClientIp       string `position:"Query" name:"ClientIp"`
+	Remark         string `position:"Body" name:"Remark"`
+	ClientPort     string `position:"Query" name:"ClientPort"`
+	BrowserVersion string `position:"Body" name:"BrowserVersion"`
+}
+
+// AddAgentDeviceResponse is the response struct for api AddAgentDevice
+type AddAgentDeviceResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	AgentDeviceId  int64  `json:"AgentDeviceId" xml:"AgentDeviceId"`
+}
+
+// CreateAddAgentDeviceRequest creates a request to invoke AddAgentDevice API
+func CreateAddAgentDeviceRequest() (request *AddAgentDeviceRequest) {
+	request = &AddAgentDeviceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "AddAgentDevice", "", "")
+	return
+}
+
+// CreateAddAgentDeviceResponse creates a response to parse from AddAgentDevice response
+func CreateAddAgentDeviceResponse() (response *AddAgentDeviceResponse) {
+	response = &AddAgentDeviceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/add_bulk_phone_numbers.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// AddBulkPhoneNumbers invokes the ccc.AddBulkPhoneNumbers API synchronously
+// api document: https://help.aliyun.com/api/ccc/addbulkphonenumbers.html
+func (client *Client) AddBulkPhoneNumbers(request *AddBulkPhoneNumbersRequest) (response *AddBulkPhoneNumbersResponse, err error) {
+	response = CreateAddBulkPhoneNumbersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddBulkPhoneNumbersWithChan invokes the ccc.AddBulkPhoneNumbers API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addbulkphonenumbers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddBulkPhoneNumbersWithChan(request *AddBulkPhoneNumbersRequest) (<-chan *AddBulkPhoneNumbersResponse, <-chan error) {
+	responseChan := make(chan *AddBulkPhoneNumbersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddBulkPhoneNumbers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddBulkPhoneNumbersWithCallback invokes the ccc.AddBulkPhoneNumbers API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addbulkphonenumbers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddBulkPhoneNumbersWithCallback(request *AddBulkPhoneNumbersRequest, callback func(response *AddBulkPhoneNumbersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddBulkPhoneNumbersResponse
+		var err error
+		defer close(result)
+		response, err = client.AddBulkPhoneNumbers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddBulkPhoneNumbersRequest is the request struct for api AddBulkPhoneNumbers
+type AddBulkPhoneNumbersRequest struct {
+	*requests.RpcRequest
+	ContactFlowId string    `position:"Query" name:"ContactFlowId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	Usage         string    `position:"Query" name:"Usage"`
+	SkillGroupId  *[]string `position:"Query" name:"SkillGroupId"  type:"Repeated"`
+	PhoneNumber   *[]string `position:"Query" name:"PhoneNumber"  type:"Repeated"`
+}
+
+// AddBulkPhoneNumbersResponse is the response struct for api AddBulkPhoneNumbers
+type AddBulkPhoneNumbersResponse struct {
+	*responses.BaseResponse
+	RequestId             string                            `json:"RequestId" xml:"RequestId"`
+	Success               bool                              `json:"Success" xml:"Success"`
+	Code                  string                            `json:"Code" xml:"Code"`
+	Message               string                            `json:"Message" xml:"Message"`
+	HttpStatusCode        int                               `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ArrearagePhoneNumbers ArrearagePhoneNumbers             `json:"ArrearagePhoneNumbers" xml:"ArrearagePhoneNumbers"`
+	FailedPhoneNumbers    FailedPhoneNumbers                `json:"FailedPhoneNumbers" xml:"FailedPhoneNumbers"`
+	UserdPhoneNumbers     UserdPhoneNumbers                 `json:"UserdPhoneNumbers" xml:"UserdPhoneNumbers"`
+	PhoneNumbers          PhoneNumbersInAddBulkPhoneNumbers `json:"PhoneNumbers" xml:"PhoneNumbers"`
+}
+
+// CreateAddBulkPhoneNumbersRequest creates a request to invoke AddBulkPhoneNumbers API
+func CreateAddBulkPhoneNumbersRequest() (request *AddBulkPhoneNumbersRequest) {
+	request = &AddBulkPhoneNumbersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "AddBulkPhoneNumbers", "", "")
+	return
+}
+
+// CreateAddBulkPhoneNumbersResponse creates a response to parse from AddBulkPhoneNumbers response
+func CreateAddBulkPhoneNumbersResponse() (response *AddBulkPhoneNumbersResponse) {
+	response = &AddBulkPhoneNumbersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/add_number_to_skill_group.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// AddNumberToSkillGroup invokes the ccc.AddNumberToSkillGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/addnumbertoskillgroup.html
+func (client *Client) AddNumberToSkillGroup(request *AddNumberToSkillGroupRequest) (response *AddNumberToSkillGroupResponse, err error) {
+	response = CreateAddNumberToSkillGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddNumberToSkillGroupWithChan invokes the ccc.AddNumberToSkillGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addnumbertoskillgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddNumberToSkillGroupWithChan(request *AddNumberToSkillGroupRequest) (<-chan *AddNumberToSkillGroupResponse, <-chan error) {
+	responseChan := make(chan *AddNumberToSkillGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddNumberToSkillGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddNumberToSkillGroupWithCallback invokes the ccc.AddNumberToSkillGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/addnumbertoskillgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddNumberToSkillGroupWithCallback(request *AddNumberToSkillGroupRequest, callback func(response *AddNumberToSkillGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddNumberToSkillGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.AddNumberToSkillGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddNumberToSkillGroupRequest is the request struct for api AddNumberToSkillGroup
+type AddNumberToSkillGroupRequest struct {
+	*requests.RpcRequest
+	Number       string `position:"Query" name:"Number"`
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	SkillGroupId string `position:"Query" name:"SkillGroupId"`
+}
+
+// AddNumberToSkillGroupResponse is the response struct for api AddNumberToSkillGroup
+type AddNumberToSkillGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateAddNumberToSkillGroupRequest creates a request to invoke AddNumberToSkillGroup API
+func CreateAddNumberToSkillGroupRequest() (request *AddNumberToSkillGroupRequest) {
+	request = &AddNumberToSkillGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "AddNumberToSkillGroup", "", "")
+	return
+}
+
+// CreateAddNumberToSkillGroupResponse creates a response to parse from AddNumberToSkillGroup response
+func CreateAddNumberToSkillGroupResponse() (response *AddNumberToSkillGroupResponse) {
+	response = &AddNumberToSkillGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/ccc/add_phone_number.go

@@ -76,10 +76,10 @@ func (client *Client) AddPhoneNumberWithCallback(request *AddPhoneNumberRequest,
 // AddPhoneNumberRequest is the request struct for api AddPhoneNumber
 type AddPhoneNumberRequest struct {
 	*requests.RpcRequest
+	ContactFlowId string `position:"Query" name:"ContactFlowId"`
 	InstanceId    string `position:"Query" name:"InstanceId"`
-	PhoneNumber   string `position:"Query" name:"PhoneNumber"`
 	Usage         string `position:"Query" name:"Usage"`
-	ContactFlowId string `position:"Query" name:"ContactFlowId"`
+	PhoneNumber   string `position:"Query" name:"PhoneNumber"`
 }
 
 // AddPhoneNumberResponse is the response struct for api AddPhoneNumber

+ 113 - 0
services/ccc/assign_jobs.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// AssignJobs invokes the ccc.AssignJobs API synchronously
+// api document: https://help.aliyun.com/api/ccc/assignjobs.html
+func (client *Client) AssignJobs(request *AssignJobsRequest) (response *AssignJobsResponse, err error) {
+	response = CreateAssignJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AssignJobsWithChan invokes the ccc.AssignJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/assignjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AssignJobsWithChan(request *AssignJobsRequest) (<-chan *AssignJobsResponse, <-chan error) {
+	responseChan := make(chan *AssignJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AssignJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AssignJobsWithCallback invokes the ccc.AssignJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/assignjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AssignJobsWithCallback(request *AssignJobsRequest, callback func(response *AssignJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AssignJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.AssignJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AssignJobsRequest is the request struct for api AssignJobs
+type AssignJobsRequest struct {
+	*requests.RpcRequest
+	CallingNumber *[]string `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	GroupId       string    `position:"Query" name:"GroupId"`
+	StrategyJson  string    `position:"Query" name:"StrategyJson"`
+	ScenarioId    string    `position:"Query" name:"ScenarioId"`
+	JobsJson      *[]string `position:"Query" name:"JobsJson"  type:"Repeated"`
+}
+
+// AssignJobsResponse is the response struct for api AssignJobs
+type AssignJobsResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	GroupId        string `json:"GroupId" xml:"GroupId"`
+}
+
+// CreateAssignJobsRequest creates a request to invoke AssignJobs API
+func CreateAssignJobsRequest() (request *AssignJobsRequest) {
+	request = &AssignJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "AssignJobs", "", "")
+	return
+}
+
+// CreateAssignJobsResponse creates a response to parse from AssignJobs response
+func CreateAssignJobsResponse() (response *AssignJobsResponse) {
+	response = &AssignJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 2
services/ccc/assign_users.go

@@ -76,11 +76,11 @@ func (client *Client) AssignUsersWithCallback(request *AssignUsersRequest, callb
 // AssignUsersRequest is the request struct for api AssignUsers
 type AssignUsersRequest struct {
 	*requests.RpcRequest
-	InstanceId   string    `position:"Query" name:"InstanceId"`
 	UserRamId    *[]string `position:"Query" name:"UserRamId"  type:"Repeated"`
+	SkillLevel   *[]string `position:"Query" name:"SkillLevel"  type:"Repeated"`
+	InstanceId   string    `position:"Query" name:"InstanceId"`
 	RoleId       *[]string `position:"Query" name:"RoleId"  type:"Repeated"`
 	SkillGroupId *[]string `position:"Query" name:"SkillGroupId"  type:"Repeated"`
-	SkillLevel   *[]string `position:"Query" name:"SkillLevel"  type:"Repeated"`
 }
 
 // AssignUsersResponse is the response struct for api AssignUsers

+ 110 - 0
services/ccc/call_online_privacy_number.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// CallOnlinePrivacyNumber invokes the ccc.CallOnlinePrivacyNumber API synchronously
+// api document: https://help.aliyun.com/api/ccc/callonlineprivacynumber.html
+func (client *Client) CallOnlinePrivacyNumber(request *CallOnlinePrivacyNumberRequest) (response *CallOnlinePrivacyNumberResponse, err error) {
+	response = CreateCallOnlinePrivacyNumberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CallOnlinePrivacyNumberWithChan invokes the ccc.CallOnlinePrivacyNumber API asynchronously
+// api document: https://help.aliyun.com/api/ccc/callonlineprivacynumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CallOnlinePrivacyNumberWithChan(request *CallOnlinePrivacyNumberRequest) (<-chan *CallOnlinePrivacyNumberResponse, <-chan error) {
+	responseChan := make(chan *CallOnlinePrivacyNumberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CallOnlinePrivacyNumber(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CallOnlinePrivacyNumberWithCallback invokes the ccc.CallOnlinePrivacyNumber API asynchronously
+// api document: https://help.aliyun.com/api/ccc/callonlineprivacynumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CallOnlinePrivacyNumberWithCallback(request *CallOnlinePrivacyNumberRequest, callback func(response *CallOnlinePrivacyNumberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CallOnlinePrivacyNumberResponse
+		var err error
+		defer close(result)
+		response, err = client.CallOnlinePrivacyNumber(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CallOnlinePrivacyNumberRequest is the request struct for api CallOnlinePrivacyNumber
+type CallOnlinePrivacyNumberRequest struct {
+	*requests.RpcRequest
+	TelA       string `position:"Query" name:"TelA"`
+	TelB       string `position:"Query" name:"TelB"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// CallOnlinePrivacyNumberResponse is the response struct for api CallOnlinePrivacyNumber
+type CallOnlinePrivacyNumberResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Data           Data   `json:"Data" xml:"Data"`
+}
+
+// CreateCallOnlinePrivacyNumberRequest creates a request to invoke CallOnlinePrivacyNumber API
+func CreateCallOnlinePrivacyNumberRequest() (request *CallOnlinePrivacyNumberRequest) {
+	request = &CallOnlinePrivacyNumberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CallOnlinePrivacyNumber", "", "")
+	return
+}
+
+// CreateCallOnlinePrivacyNumberResponse creates a response to parse from CallOnlinePrivacyNumber response
+func CreateCallOnlinePrivacyNumberResponse() (response *CallOnlinePrivacyNumberResponse) {
+	response = &CallOnlinePrivacyNumberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/cancel_jobs.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// CancelJobs invokes the ccc.CancelJobs API synchronously
+// api document: https://help.aliyun.com/api/ccc/canceljobs.html
+func (client *Client) CancelJobs(request *CancelJobsRequest) (response *CancelJobsResponse, err error) {
+	response = CreateCancelJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelJobsWithChan invokes the ccc.CancelJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/canceljobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelJobsWithChan(request *CancelJobsRequest) (<-chan *CancelJobsResponse, <-chan error) {
+	responseChan := make(chan *CancelJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelJobsWithCallback invokes the ccc.CancelJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/canceljobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelJobsWithCallback(request *CancelJobsRequest, callback func(response *CancelJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelJobsRequest is the request struct for api CancelJobs
+type CancelJobsRequest struct {
+	*requests.RpcRequest
+	All            requests.Boolean `position:"Query" name:"All"`
+	JobId          *[]string        `position:"Query" name:"JobId"  type:"Repeated"`
+	InstanceId     string           `position:"Query" name:"InstanceId"`
+	JobReferenceId *[]string        `position:"Query" name:"JobReferenceId"  type:"Repeated"`
+	GroupId        string           `position:"Query" name:"GroupId"`
+	ScenarioId     string           `position:"Query" name:"ScenarioId"`
+}
+
+// CancelJobsResponse is the response struct for api CancelJobs
+type CancelJobsResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateCancelJobsRequest creates a request to invoke CancelJobs API
+func CreateCancelJobsRequest() (request *CancelJobsRequest) {
+	request = &CancelJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CancelJobs", "", "")
+	return
+}
+
+// CreateCancelJobsResponse creates a response to parse from CancelJobs response
+func CreateCancelJobsResponse() (response *CancelJobsResponse) {
+	response = &CancelJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/cancel_predictive_jobs.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// CancelPredictiveJobs invokes the ccc.CancelPredictiveJobs API synchronously
+// api document: https://help.aliyun.com/api/ccc/cancelpredictivejobs.html
+func (client *Client) CancelPredictiveJobs(request *CancelPredictiveJobsRequest) (response *CancelPredictiveJobsResponse, err error) {
+	response = CreateCancelPredictiveJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelPredictiveJobsWithChan invokes the ccc.CancelPredictiveJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/cancelpredictivejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelPredictiveJobsWithChan(request *CancelPredictiveJobsRequest) (<-chan *CancelPredictiveJobsResponse, <-chan error) {
+	responseChan := make(chan *CancelPredictiveJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelPredictiveJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelPredictiveJobsWithCallback invokes the ccc.CancelPredictiveJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/cancelpredictivejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelPredictiveJobsWithCallback(request *CancelPredictiveJobsRequest, callback func(response *CancelPredictiveJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelPredictiveJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelPredictiveJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelPredictiveJobsRequest is the request struct for api CancelPredictiveJobs
+type CancelPredictiveJobsRequest struct {
+	*requests.RpcRequest
+	All        requests.Boolean `position:"Query" name:"All"`
+	JobId      *[]string        `position:"Query" name:"JobId"  type:"Repeated"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+}
+
+// CancelPredictiveJobsResponse is the response struct for api CancelPredictiveJobs
+type CancelPredictiveJobsResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateCancelPredictiveJobsRequest creates a request to invoke CancelPredictiveJobs API
+func CreateCancelPredictiveJobsRequest() (request *CancelPredictiveJobsRequest) {
+	request = &CancelPredictiveJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CancelPredictiveJobs", "", "")
+	return
+}
+
+// CreateCancelPredictiveJobsResponse creates a response to parse from CancelPredictiveJobs response
+func CreateCancelPredictiveJobsResponse() (response *CancelPredictiveJobsResponse) {
+	response = &CancelPredictiveJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 53 - 5
services/ccc/client.go

@@ -16,8 +16,11 @@ package ccc
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
 import (
+	"reflect"
+
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
 )
 
 // Client is the sdk client struct, each func corresponds to an OpenAPI
@@ -25,10 +28,40 @@ type Client struct {
 	sdk.Client
 }
 
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
 // NewClient creates a sdk client with environment variables
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	err = client.Init()
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -37,45 +70,60 @@ func NewClient() (client *Client, err error) {
 func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
 	return
 }
 
 // NewClientWithAccessKey is a shortcut to create sdk client with accesskey
-// usage: https://help.aliyun.com/document_detail/66217.html
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
 func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
 	return
 }
 
 // NewClientWithStsToken is a shortcut to create sdk client with sts token
-// usage: https://help.aliyun.com/document_detail/66222.html
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
 func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
 	return
 }
 
 // NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
-// usage: https://help.aliyun.com/document_detail/66222.html
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
 func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
 	return
 }
 
 // NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
-// usage: https://help.aliyun.com/document_detail/66223.html
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
 func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
 	return
 }
 
 // NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
-// attention: rsa key pair auth is only Japan regions available
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
 func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
 	return
 }

+ 111 - 0
services/ccc/commit_contact_flow_version_modification.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// CommitContactFlowVersionModification invokes the ccc.CommitContactFlowVersionModification API synchronously
+// api document: https://help.aliyun.com/api/ccc/commitcontactflowversionmodification.html
+func (client *Client) CommitContactFlowVersionModification(request *CommitContactFlowVersionModificationRequest) (response *CommitContactFlowVersionModificationResponse, err error) {
+	response = CreateCommitContactFlowVersionModificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CommitContactFlowVersionModificationWithChan invokes the ccc.CommitContactFlowVersionModification API asynchronously
+// api document: https://help.aliyun.com/api/ccc/commitcontactflowversionmodification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CommitContactFlowVersionModificationWithChan(request *CommitContactFlowVersionModificationRequest) (<-chan *CommitContactFlowVersionModificationResponse, <-chan error) {
+	responseChan := make(chan *CommitContactFlowVersionModificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CommitContactFlowVersionModification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CommitContactFlowVersionModificationWithCallback invokes the ccc.CommitContactFlowVersionModification API asynchronously
+// api document: https://help.aliyun.com/api/ccc/commitcontactflowversionmodification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CommitContactFlowVersionModificationWithCallback(request *CommitContactFlowVersionModificationRequest, callback func(response *CommitContactFlowVersionModificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CommitContactFlowVersionModificationResponse
+		var err error
+		defer close(result)
+		response, err = client.CommitContactFlowVersionModification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CommitContactFlowVersionModificationRequest is the request struct for api CommitContactFlowVersionModification
+type CommitContactFlowVersionModificationRequest struct {
+	*requests.RpcRequest
+	Canvas               string `position:"Body" name:"Canvas"`
+	InstanceId           string `position:"Query" name:"InstanceId"`
+	ContactFlowVersionId string `position:"Query" name:"ContactFlowVersionId"`
+	Content              string `position:"Body" name:"Content"`
+}
+
+// CommitContactFlowVersionModificationResponse is the response struct for api CommitContactFlowVersionModification
+type CommitContactFlowVersionModificationResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	Success            bool               `json:"Success" xml:"Success"`
+	Code               string             `json:"Code" xml:"Code"`
+	Message            string             `json:"Message" xml:"Message"`
+	HttpStatusCode     int                `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ContactFlowVersion ContactFlowVersion `json:"ContactFlowVersion" xml:"ContactFlowVersion"`
+}
+
+// CreateCommitContactFlowVersionModificationRequest creates a request to invoke CommitContactFlowVersionModification API
+func CreateCommitContactFlowVersionModificationRequest() (request *CommitContactFlowVersionModificationRequest) {
+	request = &CommitContactFlowVersionModificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CommitContactFlowVersionModification", "", "")
+	return
+}
+
+// CreateCommitContactFlowVersionModificationResponse creates a response to parse from CommitContactFlowVersionModification response
+func CreateCommitContactFlowVersionModificationResponse() (response *CommitContactFlowVersionModificationResponse) {
+	response = &CommitContactFlowVersionModificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/create_batch_jobs.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// CreateBatchJobs invokes the ccc.CreateBatchJobs API synchronously
+// api document: https://help.aliyun.com/api/ccc/createbatchjobs.html
+func (client *Client) CreateBatchJobs(request *CreateBatchJobsRequest) (response *CreateBatchJobsResponse, err error) {
+	response = CreateCreateBatchJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateBatchJobsWithChan invokes the ccc.CreateBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createbatchjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBatchJobsWithChan(request *CreateBatchJobsRequest) (<-chan *CreateBatchJobsResponse, <-chan error) {
+	responseChan := make(chan *CreateBatchJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateBatchJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateBatchJobsWithCallback invokes the ccc.CreateBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createbatchjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBatchJobsWithCallback(request *CreateBatchJobsRequest, callback func(response *CreateBatchJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateBatchJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateBatchJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateBatchJobsRequest is the request struct for api CreateBatchJobs
+type CreateBatchJobsRequest struct {
+	*requests.RpcRequest
+	CallingNumber *[]string        `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	Submitted     requests.Boolean `position:"Query" name:"Submitted"`
+	StrategyJson  string           `position:"Query" name:"StrategyJson"`
+	Name          string           `position:"Query" name:"Name"`
+	Description   string           `position:"Query" name:"Description"`
+	ScenarioId    string           `position:"Query" name:"ScenarioId"`
+	JobFilePath   string           `position:"Query" name:"JobFilePath"`
+}
+
+// CreateBatchJobsResponse is the response struct for api CreateBatchJobs
+type CreateBatchJobsResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroup       JobGroup `json:"JobGroup" xml:"JobGroup"`
+}
+
+// CreateCreateBatchJobsRequest creates a request to invoke CreateBatchJobs API
+func CreateCreateBatchJobsRequest() (request *CreateBatchJobsRequest) {
+	request = &CreateBatchJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateBatchJobs", "", "")
+	return
+}
+
+// CreateCreateBatchJobsResponse creates a response to parse from CreateBatchJobs response
+func CreateCreateBatchJobsResponse() (response *CreateBatchJobsResponse) {
+	response = &CreateBatchJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/create_cab_instance.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// CreateCabInstance invokes the ccc.CreateCabInstance API synchronously
+// api document: https://help.aliyun.com/api/ccc/createcabinstance.html
+func (client *Client) CreateCabInstance(request *CreateCabInstanceRequest) (response *CreateCabInstanceResponse, err error) {
+	response = CreateCreateCabInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCabInstanceWithChan invokes the ccc.CreateCabInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcabinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCabInstanceWithChan(request *CreateCabInstanceRequest) (<-chan *CreateCabInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateCabInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCabInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCabInstanceWithCallback invokes the ccc.CreateCabInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcabinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCabInstanceWithCallback(request *CreateCabInstanceRequest, callback func(response *CreateCabInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCabInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCabInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCabInstanceRequest is the request struct for api CreateCabInstance
+type CreateCabInstanceRequest struct {
+	*requests.RpcRequest
+	MaxConcurrentConversation requests.Integer `position:"Query" name:"MaxConcurrentConversation"`
+	InstanceName              string           `position:"Query" name:"InstanceName"`
+	CallCenterInstanceId      string           `position:"Query" name:"CallCenterInstanceId"`
+	InstanceDescription       string           `position:"Query" name:"InstanceDescription"`
+}
+
+// CreateCabInstanceResponse is the response struct for api CreateCabInstance
+type CreateCabInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Instance       Instance `json:"Instance" xml:"Instance"`
+}
+
+// CreateCreateCabInstanceRequest creates a request to invoke CreateCabInstance API
+func CreateCreateCabInstanceRequest() (request *CreateCabInstanceRequest) {
+	request = &CreateCabInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateCabInstance", "", "")
+	return
+}
+
+// CreateCreateCabInstanceResponse creates a response to parse from CreateCabInstance response
+func CreateCreateCabInstanceResponse() (response *CreateCabInstanceResponse) {
+	response = &CreateCabInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/create_ccc_post_order.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// CreateCCCPostOrder invokes the ccc.CreateCCCPostOrder API synchronously
+// api document: https://help.aliyun.com/api/ccc/createcccpostorder.html
+func (client *Client) CreateCCCPostOrder(request *CreateCCCPostOrderRequest) (response *CreateCCCPostOrderResponse, err error) {
+	response = CreateCreateCCCPostOrderResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCCCPostOrderWithChan invokes the ccc.CreateCCCPostOrder API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcccpostorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCCCPostOrderWithChan(request *CreateCCCPostOrderRequest) (<-chan *CreateCCCPostOrderResponse, <-chan error) {
+	responseChan := make(chan *CreateCCCPostOrderResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCCCPostOrder(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCCCPostOrderWithCallback invokes the ccc.CreateCCCPostOrder API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcccpostorder.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCCCPostOrderWithCallback(request *CreateCCCPostOrderRequest, callback func(response *CreateCCCPostOrderResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCCCPostOrderResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCCCPostOrder(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCCCPostOrderRequest is the request struct for api CreateCCCPostOrder
+type CreateCCCPostOrderRequest struct {
+	*requests.RpcRequest
+	OwnerId string `position:"Query" name:"OwnerId"`
+}
+
+// CreateCCCPostOrderResponse is the response struct for api CreateCCCPostOrder
+type CreateCCCPostOrderResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	OrderId        string `json:"OrderId" xml:"OrderId"`
+}
+
+// CreateCreateCCCPostOrderRequest creates a request to invoke CreateCCCPostOrder API
+func CreateCreateCCCPostOrderRequest() (request *CreateCCCPostOrderRequest) {
+	request = &CreateCCCPostOrderRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateCCCPostOrder", "", "")
+	return
+}
+
+// CreateCreateCCCPostOrderResponse creates a response to parse from CreateCCCPostOrder response
+func CreateCreateCCCPostOrderResponse() (response *CreateCCCPostOrderResponse) {
+	response = &CreateCCCPostOrderResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/create_contact_flow.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// CreateContactFlow invokes the ccc.CreateContactFlow API synchronously
+// api document: https://help.aliyun.com/api/ccc/createcontactflow.html
+func (client *Client) CreateContactFlow(request *CreateContactFlowRequest) (response *CreateContactFlowResponse, err error) {
+	response = CreateCreateContactFlowResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateContactFlowWithChan invokes the ccc.CreateContactFlow API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcontactflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateContactFlowWithChan(request *CreateContactFlowRequest) (<-chan *CreateContactFlowResponse, <-chan error) {
+	responseChan := make(chan *CreateContactFlowResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateContactFlow(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateContactFlowWithCallback invokes the ccc.CreateContactFlow API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createcontactflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateContactFlowWithCallback(request *CreateContactFlowRequest, callback func(response *CreateContactFlowResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateContactFlowResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateContactFlow(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateContactFlowRequest is the request struct for api CreateContactFlow
+type CreateContactFlowRequest struct {
+	*requests.RpcRequest
+	Canvas      string `position:"Body" name:"Canvas"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	Name        string `position:"Query" name:"Name"`
+	Description string `position:"Query" name:"Description"`
+	Type        string `position:"Query" name:"Type"`
+	Content     string `position:"Body" name:"Content"`
+}
+
+// CreateContactFlowResponse is the response struct for api CreateContactFlow
+type CreateContactFlowResponse struct {
+	*responses.BaseResponse
+	RequestId      string      `json:"RequestId" xml:"RequestId"`
+	Success        bool        `json:"Success" xml:"Success"`
+	Code           string      `json:"Code" xml:"Code"`
+	Message        string      `json:"Message" xml:"Message"`
+	HttpStatusCode int         `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ContactFlow    ContactFlow `json:"ContactFlow" xml:"ContactFlow"`
+}
+
+// CreateCreateContactFlowRequest creates a request to invoke CreateContactFlow API
+func CreateCreateContactFlowRequest() (request *CreateContactFlowRequest) {
+	request = &CreateContactFlowRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateContactFlow", "", "")
+	return
+}
+
+// CreateCreateContactFlowResponse creates a response to parse from CreateContactFlow response
+func CreateCreateContactFlowResponse() (response *CreateContactFlowResponse) {
+	response = &CreateContactFlowResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 126 - 0
services/ccc/create_fault.go

@@ -0,0 +1,126 @@
+package ccc
+
+//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"
+)
+
+// CreateFault invokes the ccc.CreateFault API synchronously
+// api document: https://help.aliyun.com/api/ccc/createfault.html
+func (client *Client) CreateFault(request *CreateFaultRequest) (response *CreateFaultResponse, err error) {
+	response = CreateCreateFaultResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateFaultWithChan invokes the ccc.CreateFault API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createfault.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFaultWithChan(request *CreateFaultRequest) (<-chan *CreateFaultResponse, <-chan error) {
+	responseChan := make(chan *CreateFaultResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateFault(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateFaultWithCallback invokes the ccc.CreateFault API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createfault.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFaultWithCallback(request *CreateFaultRequest, callback func(response *CreateFaultResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateFaultResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateFault(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateFaultRequest is the request struct for api CreateFault
+type CreateFaultRequest struct {
+	*requests.RpcRequest
+	SpeakerList            string           `position:"Query" name:"SpeakerList"`
+	AgentId                requests.Integer `position:"Query" name:"AgentId"`
+	AgentOssFileName       string           `position:"Query" name:"AgentOssFileName"`
+	Description            string           `position:"Query" name:"Description"`
+	EndTime                requests.Integer `position:"Query" name:"EndTime"`
+	OperatingSystemVersion string           `position:"Query" name:"OperatingSystemVersion"`
+	StartTime              requests.Integer `position:"Query" name:"StartTime"`
+	MicrophoneList         string           `position:"Query" name:"MicrophoneList"`
+	SpeakerEquipment       string           `position:"Query" name:"SpeakerEquipment"`
+	ServicePort            string           `position:"Query" name:"ServicePort"`
+	ClientPort             string           `position:"Query" name:"ClientPort"`
+	ServiceIp              string           `position:"Query" name:"ServiceIp"`
+	InstanceId             string           `position:"Query" name:"InstanceId"`
+	CustomFilePath         string           `position:"Query" name:"CustomFilePath"`
+	ClientIp               string           `position:"Query" name:"ClientIp"`
+	AgentFilePath          string           `position:"Query" name:"AgentFilePath"`
+	ConnectId              string           `position:"Query" name:"ConnectId"`
+	CustomOssFileName      string           `position:"Query" name:"CustomOssFileName"`
+	MicrophoneEquipment    string           `position:"Query" name:"MicrophoneEquipment"`
+	BrowserVersion         string           `position:"Query" name:"BrowserVersion"`
+}
+
+// CreateFaultResponse is the response struct for api CreateFault
+type CreateFaultResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateCreateFaultRequest creates a request to invoke CreateFault API
+func CreateCreateFaultRequest() (request *CreateFaultRequest) {
+	request = &CreateFaultRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateFault", "", "")
+	return
+}
+
+// CreateCreateFaultResponse creates a response to parse from CreateFault response
+func CreateCreateFaultResponse() (response *CreateFaultResponse) {
+	response = &CreateFaultResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/ccc/create_instance.go

@@ -0,0 +1,117 @@
+package ccc
+
+//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"
+)
+
+// CreateInstance invokes the ccc.CreateInstance API synchronously
+// api document: https://help.aliyun.com/api/ccc/createinstance.html
+func (client *Client) CreateInstance(request *CreateInstanceRequest) (response *CreateInstanceResponse, err error) {
+	response = CreateCreateInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateInstanceWithChan invokes the ccc.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceWithChan(request *CreateInstanceRequest) (<-chan *CreateInstanceResponse, <-chan error) {
+	responseChan := make(chan *CreateInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateInstanceWithCallback invokes the ccc.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateInstanceWithCallback(request *CreateInstanceRequest, callback func(response *CreateInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateInstanceRequest is the request struct for api CreateInstance
+type CreateInstanceRequest struct {
+	*requests.RpcRequest
+	PhoneNumbers   *[]string        `position:"Query" name:"PhoneNumbers"  type:"Repeated"`
+	UserObject     *[]string        `position:"Query" name:"UserObject"  type:"Repeated"`
+	Name           string           `position:"Query" name:"Name"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	PhoneNumber    string           `position:"Query" name:"PhoneNumber"`
+	Description    string           `position:"Query" name:"Description"`
+	StorageMaxDays requests.Integer `position:"Query" name:"StorageMaxDays"`
+	StorageMaxSize requests.Integer `position:"Query" name:"StorageMaxSize"`
+	DirectoryId    string           `position:"Query" name:"DirectoryId"`
+	AdminRamId     *[]string        `position:"Query" name:"AdminRamId"  type:"Repeated"`
+}
+
+// CreateInstanceResponse is the response struct for api CreateInstance
+type CreateInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId      string                   `json:"RequestId" xml:"RequestId"`
+	Success        bool                     `json:"Success" xml:"Success"`
+	Code           string                   `json:"Code" xml:"Code"`
+	Message        string                   `json:"Message" xml:"Message"`
+	HttpStatusCode int                      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Instance       InstanceInCreateInstance `json:"Instance" xml:"Instance"`
+}
+
+// CreateCreateInstanceRequest creates a request to invoke CreateInstance API
+func CreateCreateInstanceRequest() (request *CreateInstanceRequest) {
+	request = &CreateInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateInstance", "", "")
+	return
+}
+
+// CreateCreateInstanceResponse creates a response to parse from CreateInstance response
+func CreateCreateInstanceResponse() (response *CreateInstanceResponse) {
+	response = &CreateInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/create_job_group.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// CreateJobGroup invokes the ccc.CreateJobGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/createjobgroup.html
+func (client *Client) CreateJobGroup(request *CreateJobGroupRequest) (response *CreateJobGroupResponse, err error) {
+	response = CreateCreateJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateJobGroupWithChan invokes the ccc.CreateJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateJobGroupWithChan(request *CreateJobGroupRequest) (<-chan *CreateJobGroupResponse, <-chan error) {
+	responseChan := make(chan *CreateJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateJobGroupWithCallback invokes the ccc.CreateJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateJobGroupWithCallback(request *CreateJobGroupRequest, callback func(response *CreateJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateJobGroupRequest is the request struct for api CreateJobGroup
+type CreateJobGroupRequest struct {
+	*requests.RpcRequest
+	CallingNumber *[]string `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	StrategyJson  string    `position:"Query" name:"StrategyJson"`
+	Name          string    `position:"Query" name:"Name"`
+	Description   string    `position:"Query" name:"Description"`
+	ScenarioId    string    `position:"Query" name:"ScenarioId"`
+}
+
+// CreateJobGroupResponse is the response struct for api CreateJobGroup
+type CreateJobGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroup       JobGroup `json:"JobGroup" xml:"JobGroup"`
+}
+
+// CreateCreateJobGroupRequest creates a request to invoke CreateJobGroup API
+func CreateCreateJobGroupRequest() (request *CreateJobGroupRequest) {
+	request = &CreateJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateJobGroup", "", "")
+	return
+}
+
+// CreateCreateJobGroupResponse creates a response to parse from CreateJobGroup response
+func CreateCreateJobGroupResponse() (response *CreateJobGroupResponse) {
+	response = &CreateJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ccc/create_media.go

@@ -0,0 +1,116 @@
+package ccc
+
+//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"
+)
+
+// CreateMedia invokes the ccc.CreateMedia API synchronously
+// api document: https://help.aliyun.com/api/ccc/createmedia.html
+func (client *Client) CreateMedia(request *CreateMediaRequest) (response *CreateMediaResponse, err error) {
+	response = CreateCreateMediaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateMediaWithChan invokes the ccc.CreateMedia API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createmedia.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateMediaWithChan(request *CreateMediaRequest) (<-chan *CreateMediaResponse, <-chan error) {
+	responseChan := make(chan *CreateMediaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateMedia(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateMediaWithCallback invokes the ccc.CreateMedia API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createmedia.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateMediaWithCallback(request *CreateMediaRequest, callback func(response *CreateMediaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateMediaResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateMedia(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateMediaRequest is the request struct for api CreateMedia
+type CreateMediaRequest struct {
+	*requests.RpcRequest
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	FileName     string `position:"Query" name:"FileName"`
+	Name         string `position:"Query" name:"Name"`
+	Description  string `position:"Query" name:"Description"`
+	OssFilePath  string `position:"Query" name:"OssFilePath"`
+	UploadResult string `position:"Query" name:"UploadResult"`
+	Type         string `position:"Query" name:"Type"`
+	Content      string `position:"Query" name:"Content"`
+	OssFileName  string `position:"Query" name:"OssFileName"`
+}
+
+// CreateMediaResponse is the response struct for api CreateMedia
+type CreateMediaResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	Success          bool             `json:"Success" xml:"Success"`
+	Code             string           `json:"Code" xml:"Code"`
+	Message          string           `json:"Message" xml:"Message"`
+	HttpStatusCode   int              `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	MediaUploadParam MediaUploadParam `json:"MediaUploadParam" xml:"MediaUploadParam"`
+}
+
+// CreateCreateMediaRequest creates a request to invoke CreateMedia API
+func CreateCreateMediaRequest() (request *CreateMediaRequest) {
+	request = &CreateMediaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateMedia", "", "")
+	return
+}
+
+// CreateCreateMediaResponse creates a response to parse from CreateMedia response
+func CreateCreateMediaResponse() (response *CreateMediaResponse) {
+	response = &CreateMediaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ccc/create_predictive_job_group.go

@@ -0,0 +1,116 @@
+package ccc
+
+//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"
+)
+
+// CreatePredictiveJobGroup invokes the ccc.CreatePredictiveJobGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobgroup.html
+func (client *Client) CreatePredictiveJobGroup(request *CreatePredictiveJobGroupRequest) (response *CreatePredictiveJobGroupResponse, err error) {
+	response = CreateCreatePredictiveJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreatePredictiveJobGroupWithChan invokes the ccc.CreatePredictiveJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePredictiveJobGroupWithChan(request *CreatePredictiveJobGroupRequest) (<-chan *CreatePredictiveJobGroupResponse, <-chan error) {
+	responseChan := make(chan *CreatePredictiveJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreatePredictiveJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreatePredictiveJobGroupWithCallback invokes the ccc.CreatePredictiveJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePredictiveJobGroupWithCallback(request *CreatePredictiveJobGroupRequest, callback func(response *CreatePredictiveJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreatePredictiveJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.CreatePredictiveJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreatePredictiveJobGroupRequest is the request struct for api CreatePredictiveJobGroup
+type CreatePredictiveJobGroupRequest struct {
+	*requests.RpcRequest
+	InstanceId     string           `position:"Query" name:"InstanceId"`
+	IsDraft        requests.Boolean `position:"Query" name:"IsDraft"`
+	SkillGroupId   string           `position:"Query" name:"SkillGroupId"`
+	StrategyJson   string           `position:"Query" name:"StrategyJson"`
+	Name           string           `position:"Query" name:"Name"`
+	Description    string           `position:"Query" name:"Description"`
+	TimingSchedule requests.Boolean `position:"Query" name:"TimingSchedule"`
+	JobsJson       *[]string        `position:"Body" name:"JobsJson"  type:"Repeated"`
+	JobFilePath    string           `position:"Query" name:"JobFilePath"`
+}
+
+// CreatePredictiveJobGroupResponse is the response struct for api CreatePredictiveJobGroup
+type CreatePredictiveJobGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroupId     string `json:"JobGroupId" xml:"JobGroupId"`
+}
+
+// CreateCreatePredictiveJobGroupRequest creates a request to invoke CreatePredictiveJobGroup API
+func CreateCreatePredictiveJobGroupRequest() (request *CreatePredictiveJobGroupRequest) {
+	request = &CreatePredictiveJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreatePredictiveJobGroup", "", "")
+	return
+}
+
+// CreateCreatePredictiveJobGroupResponse creates a response to parse from CreatePredictiveJobGroup response
+func CreateCreatePredictiveJobGroupResponse() (response *CreatePredictiveJobGroupResponse) {
+	response = &CreatePredictiveJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/create_predictive_jobs.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// CreatePredictiveJobs invokes the ccc.CreatePredictiveJobs API synchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobs.html
+func (client *Client) CreatePredictiveJobs(request *CreatePredictiveJobsRequest) (response *CreatePredictiveJobsResponse, err error) {
+	response = CreateCreatePredictiveJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreatePredictiveJobsWithChan invokes the ccc.CreatePredictiveJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePredictiveJobsWithChan(request *CreatePredictiveJobsRequest) (<-chan *CreatePredictiveJobsResponse, <-chan error) {
+	responseChan := make(chan *CreatePredictiveJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreatePredictiveJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreatePredictiveJobsWithCallback invokes the ccc.CreatePredictiveJobs API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createpredictivejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreatePredictiveJobsWithCallback(request *CreatePredictiveJobsRequest, callback func(response *CreatePredictiveJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreatePredictiveJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.CreatePredictiveJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreatePredictiveJobsRequest is the request struct for api CreatePredictiveJobs
+type CreatePredictiveJobsRequest struct {
+	*requests.RpcRequest
+	InstanceId   string    `position:"Query" name:"InstanceId"`
+	SkillGroupId string    `position:"Query" name:"SkillGroupId"`
+	StrategyJson string    `position:"Query" name:"StrategyJson"`
+	JobsJson     *[]string `position:"Query" name:"JobsJson"  type:"Repeated"`
+}
+
+// CreatePredictiveJobsResponse is the response struct for api CreatePredictiveJobs
+type CreatePredictiveJobsResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroupId     string `json:"JobGroupId" xml:"JobGroupId"`
+}
+
+// CreateCreatePredictiveJobsRequest creates a request to invoke CreatePredictiveJobs API
+func CreateCreatePredictiveJobsRequest() (request *CreatePredictiveJobsRequest) {
+	request = &CreatePredictiveJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreatePredictiveJobs", "", "")
+	return
+}
+
+// CreateCreatePredictiveJobsResponse creates a response to parse from CreatePredictiveJobs response
+func CreateCreatePredictiveJobsResponse() (response *CreatePredictiveJobsResponse) {
+	response = &CreatePredictiveJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/create_scenario.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// CreateScenario invokes the ccc.CreateScenario API synchronously
+// api document: https://help.aliyun.com/api/ccc/createscenario.html
+func (client *Client) CreateScenario(request *CreateScenarioRequest) (response *CreateScenarioResponse, err error) {
+	response = CreateCreateScenarioResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateScenarioWithChan invokes the ccc.CreateScenario API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScenarioWithChan(request *CreateScenarioRequest) (<-chan *CreateScenarioResponse, <-chan error) {
+	responseChan := make(chan *CreateScenarioResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateScenario(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateScenarioWithCallback invokes the ccc.CreateScenario API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScenarioWithCallback(request *CreateScenarioRequest, callback func(response *CreateScenarioResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateScenarioResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateScenario(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateScenarioRequest is the request struct for api CreateScenario
+type CreateScenarioRequest struct {
+	*requests.RpcRequest
+	InstanceId   string    `position:"Query" name:"InstanceId"`
+	SurveysJson  *[]string `position:"Query" name:"SurveysJson"  type:"Repeated"`
+	StrategyJson string    `position:"Query" name:"StrategyJson"`
+	Name         string    `position:"Query" name:"Name"`
+	Description  string    `position:"Query" name:"Description"`
+	Type         string    `position:"Query" name:"Type"`
+}
+
+// CreateScenarioResponse is the response struct for api CreateScenario
+type CreateScenarioResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Scenario       Scenario `json:"Scenario" xml:"Scenario"`
+}
+
+// CreateCreateScenarioRequest creates a request to invoke CreateScenario API
+func CreateCreateScenarioRequest() (request *CreateScenarioRequest) {
+	request = &CreateScenarioRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateScenario", "", "")
+	return
+}
+
+// CreateCreateScenarioResponse creates a response to parse from CreateScenario response
+func CreateCreateScenarioResponse() (response *CreateScenarioResponse) {
+	response = &CreateScenarioResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/create_scenario_from_template.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// CreateScenarioFromTemplate invokes the ccc.CreateScenarioFromTemplate API synchronously
+// api document: https://help.aliyun.com/api/ccc/createscenariofromtemplate.html
+func (client *Client) CreateScenarioFromTemplate(request *CreateScenarioFromTemplateRequest) (response *CreateScenarioFromTemplateResponse, err error) {
+	response = CreateCreateScenarioFromTemplateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateScenarioFromTemplateWithChan invokes the ccc.CreateScenarioFromTemplate API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createscenariofromtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScenarioFromTemplateWithChan(request *CreateScenarioFromTemplateRequest) (<-chan *CreateScenarioFromTemplateResponse, <-chan error) {
+	responseChan := make(chan *CreateScenarioFromTemplateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateScenarioFromTemplate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateScenarioFromTemplateWithCallback invokes the ccc.CreateScenarioFromTemplate API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createscenariofromtemplate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScenarioFromTemplateWithCallback(request *CreateScenarioFromTemplateRequest, callback func(response *CreateScenarioFromTemplateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateScenarioFromTemplateResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateScenarioFromTemplate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateScenarioFromTemplateRequest is the request struct for api CreateScenarioFromTemplate
+type CreateScenarioFromTemplateRequest struct {
+	*requests.RpcRequest
+	Variables   string `position:"Query" name:"Variables"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	Name        string `position:"Query" name:"Name"`
+	Description string `position:"Query" name:"Description"`
+	TemplateId  string `position:"Query" name:"TemplateId"`
+}
+
+// CreateScenarioFromTemplateResponse is the response struct for api CreateScenarioFromTemplate
+type CreateScenarioFromTemplateResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Scenario       Scenario `json:"Scenario" xml:"Scenario"`
+}
+
+// CreateCreateScenarioFromTemplateRequest creates a request to invoke CreateScenarioFromTemplate API
+func CreateCreateScenarioFromTemplateRequest() (request *CreateScenarioFromTemplateRequest) {
+	request = &CreateScenarioFromTemplateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateScenarioFromTemplate", "", "")
+	return
+}
+
+// CreateCreateScenarioFromTemplateResponse creates a response to parse from CreateScenarioFromTemplate response
+func CreateCreateScenarioFromTemplateResponse() (response *CreateScenarioFromTemplateResponse) {
+	response = &CreateScenarioFromTemplateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 8 - 6
services/ccc/create_skill_group.go

@@ -76,12 +76,14 @@ func (client *Client) CreateSkillGroupWithCallback(request *CreateSkillGroupRequ
 // CreateSkillGroupRequest is the request struct for api CreateSkillGroup
 type CreateSkillGroupRequest struct {
 	*requests.RpcRequest
-	InstanceId            string    `position:"Query" name:"InstanceId"`
-	Name                  string    `position:"Query" name:"Name"`
-	Description           string    `position:"Query" name:"Description"`
-	OutboundPhoneNumberId *[]string `position:"Query" name:"OutboundPhoneNumberId"  type:"Repeated"`
-	UserId                *[]string `position:"Query" name:"UserId"  type:"Repeated"`
-	SkillLevel            *[]string `position:"Query" name:"SkillLevel"  type:"Repeated"`
+	SkillLevel                 *[]string        `position:"Query" name:"SkillLevel"  type:"Repeated"`
+	InstanceId                 string           `position:"Query" name:"InstanceId"`
+	AllowPrivateOutboundNumber requests.Boolean `position:"Query" name:"AllowPrivateOutboundNumber"`
+	OutboundPhoneNumberId      *[]string        `position:"Query" name:"OutboundPhoneNumberId"  type:"Repeated"`
+	Name                       string           `position:"Query" name:"Name"`
+	Description                string           `position:"Query" name:"Description"`
+	RoutingStrategy            string           `position:"Query" name:"RoutingStrategy"`
+	UserId                     *[]string        `position:"Query" name:"UserId"  type:"Repeated"`
 }
 
 // CreateSkillGroupResponse is the response struct for api CreateSkillGroup

+ 117 - 0
services/ccc/create_survey.go

@@ -0,0 +1,117 @@
+package ccc
+
+//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"
+)
+
+// CreateSurvey invokes the ccc.CreateSurvey API synchronously
+// api document: https://help.aliyun.com/api/ccc/createsurvey.html
+func (client *Client) CreateSurvey(request *CreateSurveyRequest) (response *CreateSurveyResponse, err error) {
+	response = CreateCreateSurveyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateSurveyWithChan invokes the ccc.CreateSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createsurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSurveyWithChan(request *CreateSurveyRequest) (<-chan *CreateSurveyResponse, <-chan error) {
+	responseChan := make(chan *CreateSurveyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateSurvey(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateSurveyWithCallback invokes the ccc.CreateSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createsurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateSurveyWithCallback(request *CreateSurveyRequest, callback func(response *CreateSurveyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateSurveyResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateSurvey(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateSurveyRequest is the request struct for api CreateSurvey
+type CreateSurveyRequest struct {
+	*requests.RpcRequest
+	InstanceId              string           `position:"Query" name:"InstanceId"`
+	Role                    string           `position:"Query" name:"Role"`
+	Round                   requests.Integer `position:"Query" name:"Round"`
+	FlowJson                string           `position:"Query" name:"FlowJson"`
+	Name                    string           `position:"Query" name:"Name"`
+	GlobalQuestions         string           `position:"Query" name:"GlobalQuestions"`
+	Description             string           `position:"Query" name:"Description"`
+	Corpora                 string           `position:"Query" name:"Corpora"`
+	SpeechOptimizationParam string           `position:"Query" name:"SpeechOptimizationParam"`
+	ScenarioId              string           `position:"Query" name:"ScenarioId"`
+}
+
+// CreateSurveyResponse is the response struct for api CreateSurvey
+type CreateSurveyResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Survey         Survey `json:"Survey" xml:"Survey"`
+}
+
+// CreateCreateSurveyRequest creates a request to invoke CreateSurvey API
+func CreateCreateSurveyRequest() (request *CreateSurveyRequest) {
+	request = &CreateSurveyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateSurvey", "", "")
+	return
+}
+
+// CreateCreateSurveyResponse creates a response to parse from CreateSurvey response
+func CreateCreateSurveyResponse() (response *CreateSurveyResponse) {
+	response = &CreateSurveyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 9 - 8
services/ccc/create_user.go

@@ -76,14 +76,15 @@ func (client *Client) CreateUserWithCallback(request *CreateUserRequest, callbac
 // CreateUserRequest is the request struct for api CreateUser
 type CreateUserRequest struct {
 	*requests.RpcRequest
-	InstanceId   string    `position:"Query" name:"InstanceId"`
-	LoginName    string    `position:"Query" name:"LoginName"`
-	DisplayName  string    `position:"Query" name:"DisplayName"`
-	Phone        string    `position:"Query" name:"Phone"`
-	Email        string    `position:"Query" name:"Email"`
-	RoleId       *[]string `position:"Query" name:"RoleId"  type:"Repeated"`
-	SkillGroupId *[]string `position:"Query" name:"SkillGroupId"  type:"Repeated"`
-	SkillLevel   *[]string `position:"Query" name:"SkillLevel"  type:"Repeated"`
+	PrivateOutboundNumberId string    `position:"Query" name:"PrivateOutboundNumberId"`
+	SkillLevel              *[]string `position:"Query" name:"SkillLevel"  type:"Repeated"`
+	InstanceId              string    `position:"Query" name:"InstanceId"`
+	LoginName               string    `position:"Query" name:"LoginName"`
+	Phone                   string    `position:"Query" name:"Phone"`
+	RoleId                  *[]string `position:"Query" name:"RoleId"  type:"Repeated"`
+	DisplayName             string    `position:"Query" name:"DisplayName"`
+	SkillGroupId            *[]string `position:"Query" name:"SkillGroupId"  type:"Repeated"`
+	Email                   string    `position:"Query" name:"Email"`
 }
 
 // CreateUserResponse is the response struct for api CreateUser

+ 110 - 0
services/ccc/create_voice_appraise.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// CreateVoiceAppraise invokes the ccc.CreateVoiceAppraise API synchronously
+// api document: https://help.aliyun.com/api/ccc/createvoiceappraise.html
+func (client *Client) CreateVoiceAppraise(request *CreateVoiceAppraiseRequest) (response *CreateVoiceAppraiseResponse, err error) {
+	response = CreateCreateVoiceAppraiseResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateVoiceAppraiseWithChan invokes the ccc.CreateVoiceAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createvoiceappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateVoiceAppraiseWithChan(request *CreateVoiceAppraiseRequest) (<-chan *CreateVoiceAppraiseResponse, <-chan error) {
+	responseChan := make(chan *CreateVoiceAppraiseResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateVoiceAppraise(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateVoiceAppraiseWithCallback invokes the ccc.CreateVoiceAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/createvoiceappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateVoiceAppraiseWithCallback(request *CreateVoiceAppraiseRequest, callback func(response *CreateVoiceAppraiseResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateVoiceAppraiseResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateVoiceAppraise(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateVoiceAppraiseRequest is the request struct for api CreateVoiceAppraise
+type CreateVoiceAppraiseRequest struct {
+	*requests.RpcRequest
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	ContactFlowVersionId string           `position:"Query" name:"ContactFlowVersionId"`
+	IsAppraise           requests.Boolean `position:"Query" name:"IsAppraise"`
+	Content              string           `position:"Body" name:"Content"`
+}
+
+// CreateVoiceAppraiseResponse is the response struct for api CreateVoiceAppraise
+type CreateVoiceAppraiseResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateCreateVoiceAppraiseRequest creates a request to invoke CreateVoiceAppraise API
+func CreateCreateVoiceAppraiseRequest() (request *CreateVoiceAppraiseRequest) {
+	request = &CreateVoiceAppraiseRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "CreateVoiceAppraise", "", "")
+	return
+}
+
+// CreateCreateVoiceAppraiseResponse creates a response to parse from CreateVoiceAppraise response
+func CreateCreateVoiceAppraiseResponse() (response *CreateVoiceAppraiseResponse) {
+	response = &CreateVoiceAppraiseResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/ccc/delete_instance.go

@@ -0,0 +1,107 @@
+package ccc
+
+//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"
+)
+
+// DeleteInstance invokes the ccc.DeleteInstance API synchronously
+// api document: https://help.aliyun.com/api/ccc/deleteinstance.html
+func (client *Client) DeleteInstance(request *DeleteInstanceRequest) (response *DeleteInstanceResponse, err error) {
+	response = CreateDeleteInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteInstanceWithChan invokes the ccc.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deleteinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteInstanceWithChan(request *DeleteInstanceRequest) (<-chan *DeleteInstanceResponse, <-chan error) {
+	responseChan := make(chan *DeleteInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteInstanceWithCallback invokes the ccc.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deleteinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteInstanceWithCallback(request *DeleteInstanceRequest, callback func(response *DeleteInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteInstanceRequest is the request struct for api DeleteInstance
+type DeleteInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteInstanceResponse is the response struct for api DeleteInstance
+type DeleteInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateDeleteInstanceRequest creates a request to invoke DeleteInstance API
+func CreateDeleteInstanceRequest() (request *DeleteInstanceRequest) {
+	request = &DeleteInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DeleteInstance", "", "")
+	return
+}
+
+// CreateDeleteInstanceResponse creates a response to parse from DeleteInstance response
+func CreateDeleteInstanceResponse() (response *DeleteInstanceResponse) {
+	response = &DeleteInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/delete_job_group.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// DeleteJobGroup invokes the ccc.DeleteJobGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/deletejobgroup.html
+func (client *Client) DeleteJobGroup(request *DeleteJobGroupRequest) (response *DeleteJobGroupResponse, err error) {
+	response = CreateDeleteJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteJobGroupWithChan invokes the ccc.DeleteJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteJobGroupWithChan(request *DeleteJobGroupRequest) (<-chan *DeleteJobGroupResponse, <-chan error) {
+	responseChan := make(chan *DeleteJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteJobGroupWithCallback invokes the ccc.DeleteJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteJobGroupWithCallback(request *DeleteJobGroupRequest, callback func(response *DeleteJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteJobGroupRequest is the request struct for api DeleteJobGroup
+type DeleteJobGroupRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// DeleteJobGroupResponse is the response struct for api DeleteJobGroup
+type DeleteJobGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateDeleteJobGroupRequest creates a request to invoke DeleteJobGroup API
+func CreateDeleteJobGroupRequest() (request *DeleteJobGroupRequest) {
+	request = &DeleteJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DeleteJobGroup", "", "")
+	return
+}
+
+// CreateDeleteJobGroupResponse creates a response to parse from DeleteJobGroup response
+func CreateDeleteJobGroupResponse() (response *DeleteJobGroupResponse) {
+	response = &DeleteJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/delete_media.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// DeleteMedia invokes the ccc.DeleteMedia API synchronously
+// api document: https://help.aliyun.com/api/ccc/deletemedia.html
+func (client *Client) DeleteMedia(request *DeleteMediaRequest) (response *DeleteMediaResponse, err error) {
+	response = CreateDeleteMediaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteMediaWithChan invokes the ccc.DeleteMedia API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletemedia.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteMediaWithChan(request *DeleteMediaRequest) (<-chan *DeleteMediaResponse, <-chan error) {
+	responseChan := make(chan *DeleteMediaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteMedia(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteMediaWithCallback invokes the ccc.DeleteMedia API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletemedia.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteMediaWithCallback(request *DeleteMediaRequest, callback func(response *DeleteMediaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteMediaResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteMedia(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteMediaRequest is the request struct for api DeleteMedia
+type DeleteMediaRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	Name       string `position:"Query" name:"Name"`
+}
+
+// DeleteMediaResponse is the response struct for api DeleteMedia
+type DeleteMediaResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateDeleteMediaRequest creates a request to invoke DeleteMedia API
+func CreateDeleteMediaRequest() (request *DeleteMediaRequest) {
+	request = &DeleteMediaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DeleteMedia", "", "")
+	return
+}
+
+// CreateDeleteMediaResponse creates a response to parse from DeleteMedia response
+func CreateDeleteMediaResponse() (response *DeleteMediaResponse) {
+	response = &DeleteMediaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/delete_survey.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// DeleteSurvey invokes the ccc.DeleteSurvey API synchronously
+// api document: https://help.aliyun.com/api/ccc/deletesurvey.html
+func (client *Client) DeleteSurvey(request *DeleteSurveyRequest) (response *DeleteSurveyResponse, err error) {
+	response = CreateDeleteSurveyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteSurveyWithChan invokes the ccc.DeleteSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletesurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSurveyWithChan(request *DeleteSurveyRequest) (<-chan *DeleteSurveyResponse, <-chan error) {
+	responseChan := make(chan *DeleteSurveyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteSurvey(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteSurveyWithCallback invokes the ccc.DeleteSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/deletesurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteSurveyWithCallback(request *DeleteSurveyRequest, callback func(response *DeleteSurveyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteSurveyResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteSurvey(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteSurveyRequest is the request struct for api DeleteSurvey
+type DeleteSurveyRequest struct {
+	*requests.RpcRequest
+	SurveyId   string `position:"Query" name:"SurveyId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ScenarioId string `position:"Query" name:"ScenarioId"`
+}
+
+// DeleteSurveyResponse is the response struct for api DeleteSurvey
+type DeleteSurveyResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateDeleteSurveyRequest creates a request to invoke DeleteSurvey API
+func CreateDeleteSurveyRequest() (request *DeleteSurveyRequest) {
+	request = &DeleteSurveyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DeleteSurvey", "", "")
+	return
+}
+
+// CreateDeleteSurveyResponse creates a response to parse from DeleteSurvey response
+func CreateDeleteSurveyResponse() (response *DeleteSurveyResponse) {
+	response = &DeleteSurveyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ccc/dial_ex.go

@@ -0,0 +1,116 @@
+package ccc
+
+//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"
+)
+
+// DialEx invokes the ccc.DialEx API synchronously
+// api document: https://help.aliyun.com/api/ccc/dialex.html
+func (client *Client) DialEx(request *DialExRequest) (response *DialExResponse, err error) {
+	response = CreateDialExResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DialExWithChan invokes the ccc.DialEx API asynchronously
+// api document: https://help.aliyun.com/api/ccc/dialex.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DialExWithChan(request *DialExRequest) (<-chan *DialExResponse, <-chan error) {
+	responseChan := make(chan *DialExResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DialEx(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DialExWithCallback invokes the ccc.DialEx API asynchronously
+// api document: https://help.aliyun.com/api/ccc/dialex.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DialExWithCallback(request *DialExRequest, callback func(response *DialExResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DialExResponse
+		var err error
+		defer close(result)
+		response, err = client.DialEx(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DialExRequest is the request struct for api DialEx
+type DialExRequest struct {
+	*requests.RpcRequest
+	RoutPoint  string           `position:"Query" name:"RoutPoint"`
+	Caller     string           `position:"Query" name:"Caller"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	Provider   string           `position:"Query" name:"Provider"`
+	Callee     string           `position:"Query" name:"Callee"`
+	AnswerMode requests.Integer `position:"Query" name:"AnswerMode"`
+}
+
+// DialExResponse is the response struct for api DialEx
+type DialExResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	StatusCode     string `json:"StatusCode" xml:"StatusCode"`
+	StatusDesc     string `json:"StatusDesc" xml:"StatusDesc"`
+	TaskId         string `json:"TaskId" xml:"TaskId"`
+	TimeStamp      string `json:"TimeStamp" xml:"TimeStamp"`
+}
+
+// CreateDialExRequest creates a request to invoke DialEx API
+func CreateDialExRequest() (request *DialExRequest) {
+	request = &DialExRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DialEx", "", "")
+	return
+}
+
+// CreateDialExResponse creates a response to parse from DialEx response
+func CreateDialExResponse() (response *DialExResponse) {
+	response = &DialExResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/ccc/dialogue.go

@@ -0,0 +1,118 @@
+package ccc
+
+//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"
+)
+
+// Dialogue invokes the ccc.Dialogue API synchronously
+// api document: https://help.aliyun.com/api/ccc/dialogue.html
+func (client *Client) Dialogue(request *DialogueRequest) (response *DialogueResponse, err error) {
+	response = CreateDialogueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DialogueWithChan invokes the ccc.Dialogue API asynchronously
+// api document: https://help.aliyun.com/api/ccc/dialogue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DialogueWithChan(request *DialogueRequest) (<-chan *DialogueResponse, <-chan error) {
+	responseChan := make(chan *DialogueResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.Dialogue(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DialogueWithCallback invokes the ccc.Dialogue API asynchronously
+// api document: https://help.aliyun.com/api/ccc/dialogue.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DialogueWithCallback(request *DialogueRequest, callback func(response *DialogueResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DialogueResponse
+		var err error
+		defer close(result)
+		response, err = client.Dialogue(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DialogueRequest is the request struct for api Dialogue
+type DialogueRequest struct {
+	*requests.RpcRequest
+	CallId          string           `position:"Query" name:"CallId"`
+	CallingNumber   string           `position:"Query" name:"CallingNumber"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	CalledNumber    string           `position:"Query" name:"CalledNumber"`
+	InstanceOwnerId requests.Integer `position:"Query" name:"InstanceOwnerId"`
+	ActionKey       string           `position:"Query" name:"ActionKey"`
+	ActionParams    string           `position:"Query" name:"ActionParams"`
+	CallType        string           `position:"Query" name:"CallType"`
+	ScenarioId      string           `position:"Query" name:"ScenarioId"`
+	TaskId          string           `position:"Query" name:"TaskId"`
+	Utterance       string           `position:"Query" name:"Utterance"`
+}
+
+// DialogueResponse is the response struct for api Dialogue
+type DialogueResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Feedback       Feedback `json:"Feedback" xml:"Feedback"`
+}
+
+// CreateDialogueRequest creates a request to invoke Dialogue API
+func CreateDialogueRequest() (request *DialogueRequest) {
+	request = &DialogueRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "Dialogue", "", "")
+	return
+}
+
+// CreateDialogueResponse creates a response to parse from Dialogue response
+func CreateDialogueResponse() (response *DialogueResponse) {
+	response = &DialogueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/download_all_type_recording.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// DownloadAllTypeRecording invokes the ccc.DownloadAllTypeRecording API synchronously
+// api document: https://help.aliyun.com/api/ccc/downloadalltyperecording.html
+func (client *Client) DownloadAllTypeRecording(request *DownloadAllTypeRecordingRequest) (response *DownloadAllTypeRecordingResponse, err error) {
+	response = CreateDownloadAllTypeRecordingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadAllTypeRecordingWithChan invokes the ccc.DownloadAllTypeRecording API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadalltyperecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadAllTypeRecordingWithChan(request *DownloadAllTypeRecordingRequest) (<-chan *DownloadAllTypeRecordingResponse, <-chan error) {
+	responseChan := make(chan *DownloadAllTypeRecordingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadAllTypeRecording(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadAllTypeRecordingWithCallback invokes the ccc.DownloadAllTypeRecording API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadalltyperecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadAllTypeRecordingWithCallback(request *DownloadAllTypeRecordingRequest, callback func(response *DownloadAllTypeRecordingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadAllTypeRecordingResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadAllTypeRecording(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadAllTypeRecordingRequest is the request struct for api DownloadAllTypeRecording
+type DownloadAllTypeRecordingRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ContactId  string `position:"Query" name:"ContactId"`
+	Channel    string `position:"Query" name:"Channel"`
+}
+
+// DownloadAllTypeRecordingResponse is the response struct for api DownloadAllTypeRecording
+type DownloadAllTypeRecordingResponse struct {
+	*responses.BaseResponse
+	RequestId              string                 `json:"RequestId" xml:"RequestId"`
+	Success                bool                   `json:"Success" xml:"Success"`
+	Code                   string                 `json:"Code" xml:"Code"`
+	Message                string                 `json:"Message" xml:"Message"`
+	HttpStatusCode         int                    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	MediaDownloadParamList MediaDownloadParamList `json:"MediaDownloadParamList" xml:"MediaDownloadParamList"`
+}
+
+// CreateDownloadAllTypeRecordingRequest creates a request to invoke DownloadAllTypeRecording API
+func CreateDownloadAllTypeRecordingRequest() (request *DownloadAllTypeRecordingRequest) {
+	request = &DownloadAllTypeRecordingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DownloadAllTypeRecording", "", "")
+	return
+}
+
+// CreateDownloadAllTypeRecordingResponse creates a response to parse from DownloadAllTypeRecording response
+func CreateDownloadAllTypeRecordingResponse() (response *DownloadAllTypeRecordingResponse) {
+	response = &DownloadAllTypeRecordingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/download_cab_recording.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// DownloadCabRecording invokes the ccc.DownloadCabRecording API synchronously
+// api document: https://help.aliyun.com/api/ccc/downloadcabrecording.html
+func (client *Client) DownloadCabRecording(request *DownloadCabRecordingRequest) (response *DownloadCabRecordingResponse, err error) {
+	response = CreateDownloadCabRecordingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadCabRecordingWithChan invokes the ccc.DownloadCabRecording API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadcabrecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadCabRecordingWithChan(request *DownloadCabRecordingRequest) (<-chan *DownloadCabRecordingResponse, <-chan error) {
+	responseChan := make(chan *DownloadCabRecordingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadCabRecording(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadCabRecordingWithCallback invokes the ccc.DownloadCabRecording API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadcabrecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadCabRecordingWithCallback(request *DownloadCabRecordingRequest, callback func(response *DownloadCabRecordingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadCabRecordingResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadCabRecording(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadCabRecordingRequest is the request struct for api DownloadCabRecording
+type DownloadCabRecordingRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	TaskId     string `position:"Query" name:"TaskId"`
+}
+
+// DownloadCabRecordingResponse is the response struct for api DownloadCabRecording
+type DownloadCabRecordingResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	Success            bool               `json:"Success" xml:"Success"`
+	Code               string             `json:"Code" xml:"Code"`
+	Message            string             `json:"Message" xml:"Message"`
+	HttpStatusCode     int                `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	MediaDownloadParam MediaDownloadParam `json:"MediaDownloadParam" xml:"MediaDownloadParam"`
+}
+
+// CreateDownloadCabRecordingRequest creates a request to invoke DownloadCabRecording API
+func CreateDownloadCabRecordingRequest() (request *DownloadCabRecordingRequest) {
+	request = &DownloadCabRecordingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DownloadCabRecording", "", "")
+	return
+}
+
+// CreateDownloadCabRecordingResponse creates a response to parse from DownloadCabRecording response
+func CreateDownloadCabRecordingResponse() (response *DownloadCabRecordingResponse) {
+	response = &DownloadCabRecordingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/download_original_statistics_report.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// DownloadOriginalStatisticsReport invokes the ccc.DownloadOriginalStatisticsReport API synchronously
+// api document: https://help.aliyun.com/api/ccc/downloadoriginalstatisticsreport.html
+func (client *Client) DownloadOriginalStatisticsReport(request *DownloadOriginalStatisticsReportRequest) (response *DownloadOriginalStatisticsReportResponse, err error) {
+	response = CreateDownloadOriginalStatisticsReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadOriginalStatisticsReportWithChan invokes the ccc.DownloadOriginalStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadoriginalstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadOriginalStatisticsReportWithChan(request *DownloadOriginalStatisticsReportRequest) (<-chan *DownloadOriginalStatisticsReportResponse, <-chan error) {
+	responseChan := make(chan *DownloadOriginalStatisticsReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadOriginalStatisticsReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadOriginalStatisticsReportWithCallback invokes the ccc.DownloadOriginalStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadoriginalstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadOriginalStatisticsReportWithCallback(request *DownloadOriginalStatisticsReportRequest, callback func(response *DownloadOriginalStatisticsReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadOriginalStatisticsReportResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadOriginalStatisticsReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadOriginalStatisticsReportRequest is the request struct for api DownloadOriginalStatisticsReport
+type DownloadOriginalStatisticsReportRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// DownloadOriginalStatisticsReportResponse is the response struct for api DownloadOriginalStatisticsReport
+type DownloadOriginalStatisticsReportResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	Code           string         `json:"Code" xml:"Code"`
+	Message        string         `json:"Message" xml:"Message"`
+	HttpStatusCode int            `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DownloadParams DownloadParams `json:"DownloadParams" xml:"DownloadParams"`
+}
+
+// CreateDownloadOriginalStatisticsReportRequest creates a request to invoke DownloadOriginalStatisticsReport API
+func CreateDownloadOriginalStatisticsReportRequest() (request *DownloadOriginalStatisticsReportRequest) {
+	request = &DownloadOriginalStatisticsReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DownloadOriginalStatisticsReport", "", "")
+	return
+}
+
+// CreateDownloadOriginalStatisticsReportResponse creates a response to parse from DownloadOriginalStatisticsReport response
+func CreateDownloadOriginalStatisticsReportResponse() (response *DownloadOriginalStatisticsReportResponse) {
+	response = &DownloadOriginalStatisticsReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/download_unreachable_contacts.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// DownloadUnreachableContacts invokes the ccc.DownloadUnreachableContacts API synchronously
+// api document: https://help.aliyun.com/api/ccc/downloadunreachablecontacts.html
+func (client *Client) DownloadUnreachableContacts(request *DownloadUnreachableContactsRequest) (response *DownloadUnreachableContactsResponse, err error) {
+	response = CreateDownloadUnreachableContactsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadUnreachableContactsWithChan invokes the ccc.DownloadUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadunreachablecontacts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadUnreachableContactsWithChan(request *DownloadUnreachableContactsRequest) (<-chan *DownloadUnreachableContactsResponse, <-chan error) {
+	responseChan := make(chan *DownloadUnreachableContactsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadUnreachableContacts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadUnreachableContactsWithCallback invokes the ccc.DownloadUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/ccc/downloadunreachablecontacts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadUnreachableContactsWithCallback(request *DownloadUnreachableContactsRequest, callback func(response *DownloadUnreachableContactsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadUnreachableContactsResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadUnreachableContacts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadUnreachableContactsRequest is the request struct for api DownloadUnreachableContacts
+type DownloadUnreachableContactsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// DownloadUnreachableContactsResponse is the response struct for api DownloadUnreachableContacts
+type DownloadUnreachableContactsResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	Code           string         `json:"Code" xml:"Code"`
+	Message        string         `json:"Message" xml:"Message"`
+	HttpStatusCode int            `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DownloadParams DownloadParams `json:"DownloadParams" xml:"DownloadParams"`
+}
+
+// CreateDownloadUnreachableContactsRequest creates a request to invoke DownloadUnreachableContacts API
+func CreateDownloadUnreachableContactsRequest() (request *DownloadUnreachableContactsRequest) {
+	request = &DownloadUnreachableContactsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "DownloadUnreachableContacts", "", "")
+	return
+}
+
+// CreateDownloadUnreachableContactsResponse creates a response to parse from DownloadUnreachableContacts response
+func CreateDownloadUnreachableContactsResponse() (response *DownloadUnreachableContactsResponse) {
+	response = &DownloadUnreachableContactsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 20 - 0
services/ccc/endpoint.go

@@ -0,0 +1,20 @@
+package ccc
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 111 - 0
services/ccc/find_users.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// FindUsers invokes the ccc.FindUsers API synchronously
+// api document: https://help.aliyun.com/api/ccc/findusers.html
+func (client *Client) FindUsers(request *FindUsersRequest) (response *FindUsersResponse, err error) {
+	response = CreateFindUsersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// FindUsersWithChan invokes the ccc.FindUsers API asynchronously
+// api document: https://help.aliyun.com/api/ccc/findusers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FindUsersWithChan(request *FindUsersRequest) (<-chan *FindUsersResponse, <-chan error) {
+	responseChan := make(chan *FindUsersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.FindUsers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// FindUsersWithCallback invokes the ccc.FindUsers API asynchronously
+// api document: https://help.aliyun.com/api/ccc/findusers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) FindUsersWithCallback(request *FindUsersRequest, callback func(response *FindUsersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *FindUsersResponse
+		var err error
+		defer close(result)
+		response, err = client.FindUsers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// FindUsersRequest is the request struct for api FindUsers
+type FindUsersRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	Criteria   string           `position:"Query" name:"Criteria"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// FindUsersResponse is the response struct for api FindUsers
+type FindUsersResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Users          Users  `json:"Users" xml:"Users"`
+}
+
+// CreateFindUsersRequest creates a request to invoke FindUsers API
+func CreateFindUsersRequest() (request *FindUsersRequest) {
+	request = &FindUsersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "FindUsers", "", "")
+	return
+}
+
+// CreateFindUsersResponse creates a response to parse from FindUsers response
+func CreateFindUsersResponse() (response *FindUsersResponse) {
+	response = &FindUsersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/generate_agent_statistic_report.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// GenerateAgentStatisticReport invokes the ccc.GenerateAgentStatisticReport API synchronously
+// api document: https://help.aliyun.com/api/ccc/generateagentstatisticreport.html
+func (client *Client) GenerateAgentStatisticReport(request *GenerateAgentStatisticReportRequest) (response *GenerateAgentStatisticReportResponse, err error) {
+	response = CreateGenerateAgentStatisticReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GenerateAgentStatisticReportWithChan invokes the ccc.GenerateAgentStatisticReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/generateagentstatisticreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateAgentStatisticReportWithChan(request *GenerateAgentStatisticReportRequest) (<-chan *GenerateAgentStatisticReportResponse, <-chan error) {
+	responseChan := make(chan *GenerateAgentStatisticReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GenerateAgentStatisticReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GenerateAgentStatisticReportWithCallback invokes the ccc.GenerateAgentStatisticReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/generateagentstatisticreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateAgentStatisticReportWithCallback(request *GenerateAgentStatisticReportRequest, callback func(response *GenerateAgentStatisticReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GenerateAgentStatisticReportResponse
+		var err error
+		defer close(result)
+		response, err = client.GenerateAgentStatisticReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GenerateAgentStatisticReportRequest is the request struct for api GenerateAgentStatisticReport
+type GenerateAgentStatisticReportRequest struct {
+	*requests.RpcRequest
+	AgentId    string           `position:"Query" name:"AgentId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	EndDate    string           `position:"Query" name:"EndDate"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	StartDate  string           `position:"Query" name:"StartDate"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GenerateAgentStatisticReportResponse is the response struct for api GenerateAgentStatisticReport
+type GenerateAgentStatisticReportResponse struct {
+	*responses.BaseResponse
+	RequestId      string                                 `json:"RequestId" xml:"RequestId"`
+	Success        bool                                   `json:"Success" xml:"Success"`
+	Code           string                                 `json:"Code" xml:"Code"`
+	Message        string                                 `json:"Message" xml:"Message"`
+	HttpStatusCode int                                    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DataList       DataListInGenerateAgentStatisticReport `json:"DataList" xml:"DataList"`
+}
+
+// CreateGenerateAgentStatisticReportRequest creates a request to invoke GenerateAgentStatisticReport API
+func CreateGenerateAgentStatisticReportRequest() (request *GenerateAgentStatisticReportRequest) {
+	request = &GenerateAgentStatisticReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GenerateAgentStatisticReport", "", "")
+	return
+}
+
+// CreateGenerateAgentStatisticReportResponse creates a response to parse from GenerateAgentStatisticReport response
+func CreateGenerateAgentStatisticReportResponse() (response *GenerateAgentStatisticReportResponse) {
+	response = &GenerateAgentStatisticReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/get_agent_data.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// GetAgentData invokes the ccc.GetAgentData API synchronously
+// api document: https://help.aliyun.com/api/ccc/getagentdata.html
+func (client *Client) GetAgentData(request *GetAgentDataRequest) (response *GetAgentDataResponse, err error) {
+	response = CreateGetAgentDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAgentDataWithChan invokes the ccc.GetAgentData API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getagentdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAgentDataWithChan(request *GetAgentDataRequest) (<-chan *GetAgentDataResponse, <-chan error) {
+	responseChan := make(chan *GetAgentDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAgentData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAgentDataWithCallback invokes the ccc.GetAgentData API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getagentdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAgentDataWithCallback(request *GetAgentDataRequest, callback func(response *GetAgentDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAgentDataResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAgentData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAgentDataRequest is the request struct for api GetAgentData
+type GetAgentDataRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	StartDay   string           `position:"Query" name:"StartDay"`
+	EndDay     string           `position:"Query" name:"EndDay"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	UserId     string           `position:"Query" name:"UserId"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetAgentDataResponse is the response struct for api GetAgentData
+type GetAgentDataResponse struct {
+	*responses.BaseResponse
+	RequestId      string                 `json:"RequestId" xml:"RequestId"`
+	Success        bool                   `json:"Success" xml:"Success"`
+	Code           string                 `json:"Code" xml:"Code"`
+	Message        string                 `json:"Message" xml:"Message"`
+	HttpStatusCode int                    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DataList       DataListInGetAgentData `json:"DataList" xml:"DataList"`
+}
+
+// CreateGetAgentDataRequest creates a request to invoke GetAgentData API
+func CreateGetAgentDataRequest() (request *GetAgentDataRequest) {
+	request = &GetAgentDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetAgentData", "", "")
+	return
+}
+
+// CreateGetAgentDataResponse creates a response to parse from GetAgentData response
+func CreateGetAgentDataResponse() (response *GetAgentDataResponse) {
+	response = &GetAgentDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_agent_state.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetAgentState invokes the ccc.GetAgentState API synchronously
+// api document: https://help.aliyun.com/api/ccc/getagentstate.html
+func (client *Client) GetAgentState(request *GetAgentStateRequest) (response *GetAgentStateResponse, err error) {
+	response = CreateGetAgentStateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetAgentStateWithChan invokes the ccc.GetAgentState API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getagentstate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAgentStateWithChan(request *GetAgentStateRequest) (<-chan *GetAgentStateResponse, <-chan error) {
+	responseChan := make(chan *GetAgentStateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetAgentState(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetAgentStateWithCallback invokes the ccc.GetAgentState API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getagentstate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetAgentStateWithCallback(request *GetAgentStateRequest, callback func(response *GetAgentStateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetAgentStateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetAgentState(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetAgentStateRequest is the request struct for api GetAgentState
+type GetAgentStateRequest struct {
+	*requests.RpcRequest
+	AgentId    string `position:"Query" name:"AgentId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	Dn         string `position:"Query" name:"Dn"`
+}
+
+// GetAgentStateResponse is the response struct for api GetAgentState
+type GetAgentStateResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Data           Data   `json:"Data" xml:"Data"`
+}
+
+// CreateGetAgentStateRequest creates a request to invoke GetAgentState API
+func CreateGetAgentStateRequest() (request *GetAgentStateRequest) {
+	request = &GetAgentStateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetAgentState", "", "")
+	return
+}
+
+// CreateGetAgentStateResponse creates a response to parse from GetAgentState response
+func CreateGetAgentStateResponse() (response *GetAgentStateResponse) {
+	response = &GetAgentStateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/ccc/get_call_measure_summary_report.go

@@ -0,0 +1,114 @@
+package ccc
+
+//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"
+)
+
+// GetCallMeasureSummaryReport invokes the ccc.GetCallMeasureSummaryReport API synchronously
+// api document: https://help.aliyun.com/api/ccc/getcallmeasuresummaryreport.html
+func (client *Client) GetCallMeasureSummaryReport(request *GetCallMeasureSummaryReportRequest) (response *GetCallMeasureSummaryReportResponse, err error) {
+	response = CreateGetCallMeasureSummaryReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetCallMeasureSummaryReportWithChan invokes the ccc.GetCallMeasureSummaryReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcallmeasuresummaryreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCallMeasureSummaryReportWithChan(request *GetCallMeasureSummaryReportRequest) (<-chan *GetCallMeasureSummaryReportResponse, <-chan error) {
+	responseChan := make(chan *GetCallMeasureSummaryReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetCallMeasureSummaryReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetCallMeasureSummaryReportWithCallback invokes the ccc.GetCallMeasureSummaryReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcallmeasuresummaryreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetCallMeasureSummaryReportWithCallback(request *GetCallMeasureSummaryReportRequest, callback func(response *GetCallMeasureSummaryReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetCallMeasureSummaryReportResponse
+		var err error
+		defer close(result)
+		response, err = client.GetCallMeasureSummaryReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetCallMeasureSummaryReportRequest is the request struct for api GetCallMeasureSummaryReport
+type GetCallMeasureSummaryReportRequest struct {
+	*requests.RpcRequest
+	IntervalType string           `position:"Query" name:"IntervalType"`
+	Month        requests.Integer `position:"Query" name:"Month"`
+	Year         requests.Integer `position:"Query" name:"Year"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	Day          requests.Integer `position:"Query" name:"Day"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetCallMeasureSummaryReportResponse is the response struct for api GetCallMeasureSummaryReport
+type GetCallMeasureSummaryReportResponse struct {
+	*responses.BaseResponse
+	RequestId      string        `json:"RequestId" xml:"RequestId"`
+	Success        bool          `json:"Success" xml:"Success"`
+	Code           string        `json:"Code" xml:"Code"`
+	Message        string        `json:"Message" xml:"Message"`
+	HttpStatusCode int           `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	SummaryReport  SummaryReport `json:"SummaryReport" xml:"SummaryReport"`
+	NumberReports  NumberReports `json:"NumberReports" xml:"NumberReports"`
+}
+
+// CreateGetCallMeasureSummaryReportRequest creates a request to invoke GetCallMeasureSummaryReport API
+func CreateGetCallMeasureSummaryReportRequest() (request *GetCallMeasureSummaryReportRequest) {
+	request = &GetCallMeasureSummaryReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetCallMeasureSummaryReport", "", "")
+	return
+}
+
+// CreateGetCallMeasureSummaryReportResponse creates a response to parse from GetCallMeasureSummaryReport response
+func CreateGetCallMeasureSummaryReportResponse() (response *GetCallMeasureSummaryReportResponse) {
+	response = &GetCallMeasureSummaryReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/ccc/get_config.go

@@ -78,8 +78,8 @@ type GetConfigRequest struct {
 	*requests.RpcRequest
 	InstanceId string `position:"Query" name:"InstanceId"`
 	Name       string `position:"Query" name:"Name"`
-	ObjectId   string `position:"Query" name:"ObjectId"`
 	ObjectType string `position:"Query" name:"ObjectType"`
+	ObjectId   string `position:"Query" name:"ObjectId"`
 }
 
 // GetConfigResponse is the response struct for api GetConfig

+ 109 - 0
services/ccc/get_contact_identify_by_out_bound_task_id.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetContactIdentifyByOutBoundTaskId invokes the ccc.GetContactIdentifyByOutBoundTaskId API synchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactidentifybyoutboundtaskid.html
+func (client *Client) GetContactIdentifyByOutBoundTaskId(request *GetContactIdentifyByOutBoundTaskIdRequest) (response *GetContactIdentifyByOutBoundTaskIdResponse, err error) {
+	response = CreateGetContactIdentifyByOutBoundTaskIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetContactIdentifyByOutBoundTaskIdWithChan invokes the ccc.GetContactIdentifyByOutBoundTaskId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactidentifybyoutboundtaskid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetContactIdentifyByOutBoundTaskIdWithChan(request *GetContactIdentifyByOutBoundTaskIdRequest) (<-chan *GetContactIdentifyByOutBoundTaskIdResponse, <-chan error) {
+	responseChan := make(chan *GetContactIdentifyByOutBoundTaskIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetContactIdentifyByOutBoundTaskId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetContactIdentifyByOutBoundTaskIdWithCallback invokes the ccc.GetContactIdentifyByOutBoundTaskId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactidentifybyoutboundtaskid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetContactIdentifyByOutBoundTaskIdWithCallback(request *GetContactIdentifyByOutBoundTaskIdRequest, callback func(response *GetContactIdentifyByOutBoundTaskIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetContactIdentifyByOutBoundTaskIdResponse
+		var err error
+		defer close(result)
+		response, err = client.GetContactIdentifyByOutBoundTaskId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetContactIdentifyByOutBoundTaskIdRequest is the request struct for api GetContactIdentifyByOutBoundTaskId
+type GetContactIdentifyByOutBoundTaskIdRequest struct {
+	*requests.RpcRequest
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	OutboundTaskId string `position:"Query" name:"OutboundTaskId"`
+}
+
+// GetContactIdentifyByOutBoundTaskIdResponse is the response struct for api GetContactIdentifyByOutBoundTaskId
+type GetContactIdentifyByOutBoundTaskIdResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	Success         bool            `json:"Success" xml:"Success"`
+	Code            string          `json:"Code" xml:"Code"`
+	Message         string          `json:"Message" xml:"Message"`
+	HttpStatusCode  int             `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ContactIdentity ContactIdentity `json:"ContactIdentity" xml:"ContactIdentity"`
+}
+
+// CreateGetContactIdentifyByOutBoundTaskIdRequest creates a request to invoke GetContactIdentifyByOutBoundTaskId API
+func CreateGetContactIdentifyByOutBoundTaskIdRequest() (request *GetContactIdentifyByOutBoundTaskIdRequest) {
+	request = &GetContactIdentifyByOutBoundTaskIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetContactIdentifyByOutBoundTaskId", "", "")
+	return
+}
+
+// CreateGetContactIdentifyByOutBoundTaskIdResponse creates a response to parse from GetContactIdentifyByOutBoundTaskId response
+func CreateGetContactIdentifyByOutBoundTaskIdResponse() (response *GetContactIdentifyByOutBoundTaskIdResponse) {
+	response = &GetContactIdentifyByOutBoundTaskIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_contact_info_by_outbound_task_id.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetContactInfoByOutboundTaskId invokes the ccc.GetContactInfoByOutboundTaskId API synchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactinfobyoutboundtaskid.html
+func (client *Client) GetContactInfoByOutboundTaskId(request *GetContactInfoByOutboundTaskIdRequest) (response *GetContactInfoByOutboundTaskIdResponse, err error) {
+	response = CreateGetContactInfoByOutboundTaskIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetContactInfoByOutboundTaskIdWithChan invokes the ccc.GetContactInfoByOutboundTaskId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactinfobyoutboundtaskid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetContactInfoByOutboundTaskIdWithChan(request *GetContactInfoByOutboundTaskIdRequest) (<-chan *GetContactInfoByOutboundTaskIdResponse, <-chan error) {
+	responseChan := make(chan *GetContactInfoByOutboundTaskIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetContactInfoByOutboundTaskId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetContactInfoByOutboundTaskIdWithCallback invokes the ccc.GetContactInfoByOutboundTaskId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getcontactinfobyoutboundtaskid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetContactInfoByOutboundTaskIdWithCallback(request *GetContactInfoByOutboundTaskIdRequest, callback func(response *GetContactInfoByOutboundTaskIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetContactInfoByOutboundTaskIdResponse
+		var err error
+		defer close(result)
+		response, err = client.GetContactInfoByOutboundTaskId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetContactInfoByOutboundTaskIdRequest is the request struct for api GetContactInfoByOutboundTaskId
+type GetContactInfoByOutboundTaskIdRequest struct {
+	*requests.RpcRequest
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	OutboundTaskId string `position:"Query" name:"OutboundTaskId"`
+	SkillGroupId   string `position:"Query" name:"SkillGroupId"`
+}
+
+// GetContactInfoByOutboundTaskIdResponse is the response struct for api GetContactInfoByOutboundTaskId
+type GetContactInfoByOutboundTaskIdResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	Success         bool            `json:"Success" xml:"Success"`
+	Code            string          `json:"Code" xml:"Code"`
+	Message         string          `json:"Message" xml:"Message"`
+	HttpStatusCode  int             `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ContactIdentity ContactIdentity `json:"ContactIdentity" xml:"ContactIdentity"`
+}
+
+// CreateGetContactInfoByOutboundTaskIdRequest creates a request to invoke GetContactInfoByOutboundTaskId API
+func CreateGetContactInfoByOutboundTaskIdRequest() (request *GetContactInfoByOutboundTaskIdRequest) {
+	request = &GetContactInfoByOutboundTaskIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetContactInfoByOutboundTaskId", "", "")
+	return
+}
+
+// CreateGetContactInfoByOutboundTaskIdResponse creates a response to parse from GetContactInfoByOutboundTaskId response
+func CreateGetContactInfoByOutboundTaskIdResponse() (response *GetContactInfoByOutboundTaskIdResponse) {
+	response = &GetContactInfoByOutboundTaskIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/get_conversation_detail_by_contact_id.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// GetConversationDetailByContactId invokes the ccc.GetConversationDetailByContactId API synchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationdetailbycontactid.html
+func (client *Client) GetConversationDetailByContactId(request *GetConversationDetailByContactIdRequest) (response *GetConversationDetailByContactIdResponse, err error) {
+	response = CreateGetConversationDetailByContactIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetConversationDetailByContactIdWithChan invokes the ccc.GetConversationDetailByContactId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationdetailbycontactid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetConversationDetailByContactIdWithChan(request *GetConversationDetailByContactIdRequest) (<-chan *GetConversationDetailByContactIdResponse, <-chan error) {
+	responseChan := make(chan *GetConversationDetailByContactIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetConversationDetailByContactId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetConversationDetailByContactIdWithCallback invokes the ccc.GetConversationDetailByContactId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationdetailbycontactid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetConversationDetailByContactIdWithCallback(request *GetConversationDetailByContactIdRequest, callback func(response *GetConversationDetailByContactIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetConversationDetailByContactIdResponse
+		var err error
+		defer close(result)
+		response, err = client.GetConversationDetailByContactId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetConversationDetailByContactIdRequest is the request struct for api GetConversationDetailByContactId
+type GetConversationDetailByContactIdRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	ContactId  string           `position:"Query" name:"ContactId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetConversationDetailByContactIdResponse is the response struct for api GetConversationDetailByContactId
+type GetConversationDetailByContactIdResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DataList       DataList `json:"DataList" xml:"DataList"`
+}
+
+// CreateGetConversationDetailByContactIdRequest creates a request to invoke GetConversationDetailByContactId API
+func CreateGetConversationDetailByContactIdRequest() (request *GetConversationDetailByContactIdRequest) {
+	request = &GetConversationDetailByContactIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetConversationDetailByContactId", "", "")
+	return
+}
+
+// CreateGetConversationDetailByContactIdResponse creates a response to parse from GetConversationDetailByContactId response
+func CreateGetConversationDetailByContactIdResponse() (response *GetConversationDetailByContactIdResponse) {
+	response = &GetConversationDetailByContactIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_conversation_list.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetConversationList invokes the ccc.GetConversationList API synchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationlist.html
+func (client *Client) GetConversationList(request *GetConversationListRequest) (response *GetConversationListResponse, err error) {
+	response = CreateGetConversationListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetConversationListWithChan invokes the ccc.GetConversationList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetConversationListWithChan(request *GetConversationListRequest) (<-chan *GetConversationListResponse, <-chan error) {
+	responseChan := make(chan *GetConversationListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetConversationList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetConversationListWithCallback invokes the ccc.GetConversationList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getconversationlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetConversationListWithCallback(request *GetConversationListRequest, callback func(response *GetConversationListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetConversationListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetConversationList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetConversationListRequest is the request struct for api GetConversationList
+type GetConversationListRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	TaskId     string `position:"Query" name:"TaskId"`
+}
+
+// GetConversationListResponse is the response struct for api GetConversationList
+type GetConversationListResponse struct {
+	*responses.BaseResponse
+	RequestId      string               `json:"RequestId" xml:"RequestId"`
+	Success        bool                 `json:"Success" xml:"Success"`
+	Code           string               `json:"Code" xml:"Code"`
+	Message        string               `json:"Message" xml:"Message"`
+	HttpStatusCode int                  `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Conversations  []ConversationDetail `json:"Conversations" xml:"Conversations"`
+}
+
+// CreateGetConversationListRequest creates a request to invoke GetConversationList API
+func CreateGetConversationListRequest() (request *GetConversationListRequest) {
+	request = &GetConversationListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetConversationList", "", "")
+	return
+}
+
+// CreateGetConversationListResponse creates a response to parse from GetConversationList response
+func CreateGetConversationListResponse() (response *GetConversationListResponse) {
+	response = &GetConversationListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/get_instance.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// GetInstance invokes the ccc.GetInstance API synchronously
+// api document: https://help.aliyun.com/api/ccc/getinstance.html
+func (client *Client) GetInstance(request *GetInstanceRequest) (response *GetInstanceResponse, err error) {
+	response = CreateGetInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceWithChan invokes the ccc.GetInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceWithChan(request *GetInstanceRequest) (<-chan *GetInstanceResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceWithCallback invokes the ccc.GetInstance API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceWithCallback(request *GetInstanceRequest, callback func(response *GetInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceRequest is the request struct for api GetInstance
+type GetInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetInstanceResponse is the response struct for api GetInstance
+type GetInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Instance       Instance `json:"Instance" xml:"Instance"`
+}
+
+// CreateGetInstanceRequest creates a request to invoke GetInstance API
+func CreateGetInstanceRequest() (request *GetInstanceRequest) {
+	request = &GetInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetInstance", "", "")
+	return
+}
+
+// CreateGetInstanceResponse creates a response to parse from GetInstance response
+func CreateGetInstanceResponse() (response *GetInstanceResponse) {
+	response = &GetInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/get_instance_state.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// GetInstanceState invokes the ccc.GetInstanceState API synchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancestate.html
+func (client *Client) GetInstanceState(request *GetInstanceStateRequest) (response *GetInstanceStateResponse, err error) {
+	response = CreateGetInstanceStateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceStateWithChan invokes the ccc.GetInstanceState API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancestate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceStateWithChan(request *GetInstanceStateRequest) (<-chan *GetInstanceStateResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceStateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceState(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceStateWithCallback invokes the ccc.GetInstanceState API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancestate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceStateWithCallback(request *GetInstanceStateRequest, callback func(response *GetInstanceStateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceStateResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceState(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceStateRequest is the request struct for api GetInstanceState
+type GetInstanceStateRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetInstanceStateResponse is the response struct for api GetInstanceState
+type GetInstanceStateResponse struct {
+	*responses.BaseResponse
+	RequestId             string                `json:"RequestId" xml:"RequestId"`
+	Success               bool                  `json:"Success" xml:"Success"`
+	Code                  string                `json:"Code" xml:"Code"`
+	Message               string                `json:"Message" xml:"Message"`
+	HttpStatusCode        int                   `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	RealTimeInstanceState RealTimeInstanceState `json:"RealTimeInstanceState" xml:"RealTimeInstanceState"`
+}
+
+// CreateGetInstanceStateRequest creates a request to invoke GetInstanceState API
+func CreateGetInstanceStateRequest() (request *GetInstanceStateRequest) {
+	request = &GetInstanceStateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetInstanceState", "", "")
+	return
+}
+
+// CreateGetInstanceStateResponse creates a response to parse from GetInstanceState response
+func CreateGetInstanceStateResponse() (response *GetInstanceStateResponse) {
+	response = &GetInstanceStateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/get_instance_summary_report.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// GetInstanceSummaryReport invokes the ccc.GetInstanceSummaryReport API synchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreport.html
+func (client *Client) GetInstanceSummaryReport(request *GetInstanceSummaryReportRequest) (response *GetInstanceSummaryReportResponse, err error) {
+	response = CreateGetInstanceSummaryReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceSummaryReportWithChan invokes the ccc.GetInstanceSummaryReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportWithChan(request *GetInstanceSummaryReportRequest) (<-chan *GetInstanceSummaryReportResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceSummaryReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceSummaryReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceSummaryReportWithCallback invokes the ccc.GetInstanceSummaryReport API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportWithCallback(request *GetInstanceSummaryReportRequest, callback func(response *GetInstanceSummaryReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceSummaryReportResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceSummaryReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceSummaryReportRequest is the request struct for api GetInstanceSummaryReport
+type GetInstanceSummaryReportRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	StartTime  string           `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetInstanceSummaryReportResponse is the response struct for api GetInstanceSummaryReport
+type GetInstanceSummaryReportResponse struct {
+	*responses.BaseResponse
+	RequestId             string                `json:"RequestId" xml:"RequestId"`
+	Success               bool                  `json:"Success" xml:"Success"`
+	Code                  string                `json:"Code" xml:"Code"`
+	Message               string                `json:"Message" xml:"Message"`
+	HttpStatusCode        int                   `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	InstanceSummaryReport InstanceSummaryReport `json:"InstanceSummaryReport" xml:"InstanceSummaryReport"`
+}
+
+// CreateGetInstanceSummaryReportRequest creates a request to invoke GetInstanceSummaryReport API
+func CreateGetInstanceSummaryReportRequest() (request *GetInstanceSummaryReportRequest) {
+	request = &GetInstanceSummaryReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetInstanceSummaryReport", "", "")
+	return
+}
+
+// CreateGetInstanceSummaryReportResponse creates a response to parse from GetInstanceSummaryReport response
+func CreateGetInstanceSummaryReportResponse() (response *GetInstanceSummaryReportResponse) {
+	response = &GetInstanceSummaryReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/get_instance_summary_report_by_interval.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// GetInstanceSummaryReportByInterval invokes the ccc.GetInstanceSummaryReportByInterval API synchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportbyinterval.html
+func (client *Client) GetInstanceSummaryReportByInterval(request *GetInstanceSummaryReportByIntervalRequest) (response *GetInstanceSummaryReportByIntervalResponse, err error) {
+	response = CreateGetInstanceSummaryReportByIntervalResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceSummaryReportByIntervalWithChan invokes the ccc.GetInstanceSummaryReportByInterval API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportbyinterval.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportByIntervalWithChan(request *GetInstanceSummaryReportByIntervalRequest) (<-chan *GetInstanceSummaryReportByIntervalResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceSummaryReportByIntervalResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceSummaryReportByInterval(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceSummaryReportByIntervalWithCallback invokes the ccc.GetInstanceSummaryReportByInterval API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportbyinterval.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportByIntervalWithCallback(request *GetInstanceSummaryReportByIntervalRequest, callback func(response *GetInstanceSummaryReportByIntervalResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceSummaryReportByIntervalResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceSummaryReportByInterval(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceSummaryReportByIntervalRequest is the request struct for api GetInstanceSummaryReportByInterval
+type GetInstanceSummaryReportByIntervalRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	Interval   string           `position:"Query" name:"Interval"`
+	StartTime  string           `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetInstanceSummaryReportByIntervalResponse is the response struct for api GetInstanceSummaryReportByInterval
+type GetInstanceSummaryReportByIntervalResponse struct {
+	*responses.BaseResponse
+	RequestId                  string                     `json:"RequestId" xml:"RequestId"`
+	Success                    bool                       `json:"Success" xml:"Success"`
+	Code                       string                     `json:"Code" xml:"Code"`
+	Message                    string                     `json:"Message" xml:"Message"`
+	HttpStatusCode             int                        `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	InstanceTimeIntervalReport InstanceTimeIntervalReport `json:"InstanceTimeIntervalReport" xml:"InstanceTimeIntervalReport"`
+}
+
+// CreateGetInstanceSummaryReportByIntervalRequest creates a request to invoke GetInstanceSummaryReportByInterval API
+func CreateGetInstanceSummaryReportByIntervalRequest() (request *GetInstanceSummaryReportByIntervalRequest) {
+	request = &GetInstanceSummaryReportByIntervalRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetInstanceSummaryReportByInterval", "", "")
+	return
+}
+
+// CreateGetInstanceSummaryReportByIntervalResponse creates a response to parse from GetInstanceSummaryReportByInterval response
+func CreateGetInstanceSummaryReportByIntervalResponse() (response *GetInstanceSummaryReportByIntervalResponse) {
+	response = &GetInstanceSummaryReportByIntervalResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_instance_summary_report_since_midnight.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetInstanceSummaryReportSinceMidnight invokes the ccc.GetInstanceSummaryReportSinceMidnight API synchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportsincemidnight.html
+func (client *Client) GetInstanceSummaryReportSinceMidnight(request *GetInstanceSummaryReportSinceMidnightRequest) (response *GetInstanceSummaryReportSinceMidnightResponse, err error) {
+	response = CreateGetInstanceSummaryReportSinceMidnightResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetInstanceSummaryReportSinceMidnightWithChan invokes the ccc.GetInstanceSummaryReportSinceMidnight API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportsincemidnight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportSinceMidnightWithChan(request *GetInstanceSummaryReportSinceMidnightRequest) (<-chan *GetInstanceSummaryReportSinceMidnightResponse, <-chan error) {
+	responseChan := make(chan *GetInstanceSummaryReportSinceMidnightResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetInstanceSummaryReportSinceMidnight(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetInstanceSummaryReportSinceMidnightWithCallback invokes the ccc.GetInstanceSummaryReportSinceMidnight API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getinstancesummaryreportsincemidnight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetInstanceSummaryReportSinceMidnightWithCallback(request *GetInstanceSummaryReportSinceMidnightRequest, callback func(response *GetInstanceSummaryReportSinceMidnightResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetInstanceSummaryReportSinceMidnightResponse
+		var err error
+		defer close(result)
+		response, err = client.GetInstanceSummaryReportSinceMidnight(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetInstanceSummaryReportSinceMidnightRequest is the request struct for api GetInstanceSummaryReportSinceMidnight
+type GetInstanceSummaryReportSinceMidnightRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// GetInstanceSummaryReportSinceMidnightResponse is the response struct for api GetInstanceSummaryReportSinceMidnight
+type GetInstanceSummaryReportSinceMidnightResponse struct {
+	*responses.BaseResponse
+	RequestId             string                `json:"RequestId" xml:"RequestId"`
+	Success               bool                  `json:"Success" xml:"Success"`
+	Code                  string                `json:"Code" xml:"Code"`
+	Message               string                `json:"Message" xml:"Message"`
+	HttpStatusCode        int                   `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	InstanceSummaryReport InstanceSummaryReport `json:"InstanceSummaryReport" xml:"InstanceSummaryReport"`
+}
+
+// CreateGetInstanceSummaryReportSinceMidnightRequest creates a request to invoke GetInstanceSummaryReportSinceMidnight API
+func CreateGetInstanceSummaryReportSinceMidnightRequest() (request *GetInstanceSummaryReportSinceMidnightRequest) {
+	request = &GetInstanceSummaryReportSinceMidnightRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetInstanceSummaryReportSinceMidnight", "", "")
+	return
+}
+
+// CreateGetInstanceSummaryReportSinceMidnightResponse creates a response to parse from GetInstanceSummaryReportSinceMidnight response
+func CreateGetInstanceSummaryReportSinceMidnightResponse() (response *GetInstanceSummaryReportSinceMidnightResponse) {
+	response = &GetInstanceSummaryReportSinceMidnightResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_job.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetJob invokes the ccc.GetJob API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjob.html
+func (client *Client) GetJob(request *GetJobRequest) (response *GetJobResponse, err error) {
+	response = CreateGetJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobWithChan invokes the ccc.GetJob API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobWithChan(request *GetJobRequest) (<-chan *GetJobResponse, <-chan error) {
+	responseChan := make(chan *GetJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobWithCallback invokes the ccc.GetJob API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobWithCallback(request *GetJobRequest, callback func(response *GetJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobRequest is the request struct for api GetJob
+type GetJobRequest struct {
+	*requests.RpcRequest
+	JobId      string `position:"Query" name:"JobId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetJobResponse is the response struct for api GetJob
+type GetJobResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Job            Job    `json:"Job" xml:"Job"`
+}
+
+// CreateGetJobRequest creates a request to invoke GetJob API
+func CreateGetJobRequest() (request *GetJobRequest) {
+	request = &GetJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJob", "", "")
+	return
+}
+
+// CreateGetJobResponse creates a response to parse from GetJob response
+func CreateGetJobResponse() (response *GetJobResponse) {
+	response = &GetJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_job_data_upload_params.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetJobDataUploadParams invokes the ccc.GetJobDataUploadParams API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobdatauploadparams.html
+func (client *Client) GetJobDataUploadParams(request *GetJobDataUploadParamsRequest) (response *GetJobDataUploadParamsResponse, err error) {
+	response = CreateGetJobDataUploadParamsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobDataUploadParamsWithChan invokes the ccc.GetJobDataUploadParams API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobdatauploadparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobDataUploadParamsWithChan(request *GetJobDataUploadParamsRequest) (<-chan *GetJobDataUploadParamsResponse, <-chan error) {
+	responseChan := make(chan *GetJobDataUploadParamsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobDataUploadParams(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobDataUploadParamsWithCallback invokes the ccc.GetJobDataUploadParams API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobdatauploadparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobDataUploadParamsWithCallback(request *GetJobDataUploadParamsRequest, callback func(response *GetJobDataUploadParamsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobDataUploadParamsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobDataUploadParams(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobDataUploadParamsRequest is the request struct for api GetJobDataUploadParams
+type GetJobDataUploadParamsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	FileName   string `position:"Query" name:"FileName"`
+}
+
+// GetJobDataUploadParamsResponse is the response struct for api GetJobDataUploadParams
+type GetJobDataUploadParamsResponse struct {
+	*responses.BaseResponse
+	RequestId      string       `json:"RequestId" xml:"RequestId"`
+	Success        bool         `json:"Success" xml:"Success"`
+	Code           string       `json:"Code" xml:"Code"`
+	Message        string       `json:"Message" xml:"Message"`
+	HttpStatusCode int          `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	UploadParams   UploadParams `json:"UploadParams" xml:"UploadParams"`
+}
+
+// CreateGetJobDataUploadParamsRequest creates a request to invoke GetJobDataUploadParams API
+func CreateGetJobDataUploadParamsRequest() (request *GetJobDataUploadParamsRequest) {
+	request = &GetJobDataUploadParamsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobDataUploadParams", "", "")
+	return
+}
+
+// CreateGetJobDataUploadParamsResponse creates a response to parse from GetJobDataUploadParams response
+func CreateGetJobDataUploadParamsResponse() (response *GetJobDataUploadParamsResponse) {
+	response = &GetJobDataUploadParamsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_job_file_upload_url.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetJobFileUploadUrl invokes the ccc.GetJobFileUploadUrl API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobfileuploadurl.html
+func (client *Client) GetJobFileUploadUrl(request *GetJobFileUploadUrlRequest) (response *GetJobFileUploadUrlResponse, err error) {
+	response = CreateGetJobFileUploadUrlResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobFileUploadUrlWithChan invokes the ccc.GetJobFileUploadUrl API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobfileuploadurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobFileUploadUrlWithChan(request *GetJobFileUploadUrlRequest) (<-chan *GetJobFileUploadUrlResponse, <-chan error) {
+	responseChan := make(chan *GetJobFileUploadUrlResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobFileUploadUrl(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobFileUploadUrlWithCallback invokes the ccc.GetJobFileUploadUrl API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobfileuploadurl.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobFileUploadUrlWithCallback(request *GetJobFileUploadUrlRequest, callback func(response *GetJobFileUploadUrlResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobFileUploadUrlResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobFileUploadUrl(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobFileUploadUrlRequest is the request struct for api GetJobFileUploadUrl
+type GetJobFileUploadUrlRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	FileName   string `position:"Query" name:"FileName"`
+}
+
+// GetJobFileUploadUrlResponse is the response struct for api GetJobFileUploadUrl
+type GetJobFileUploadUrlResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	FilePath       string `json:"FilePath" xml:"FilePath"`
+	UploadUrl      string `json:"UploadUrl" xml:"UploadUrl"`
+}
+
+// CreateGetJobFileUploadUrlRequest creates a request to invoke GetJobFileUploadUrl API
+func CreateGetJobFileUploadUrlRequest() (request *GetJobFileUploadUrlRequest) {
+	request = &GetJobFileUploadUrlRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobFileUploadUrl", "", "")
+	return
+}
+
+// CreateGetJobFileUploadUrlResponse creates a response to parse from GetJobFileUploadUrl response
+func CreateGetJobFileUploadUrlResponse() (response *GetJobFileUploadUrlResponse) {
+	response = &GetJobFileUploadUrlResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_job_group.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetJobGroup invokes the ccc.GetJobGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobgroup.html
+func (client *Client) GetJobGroup(request *GetJobGroupRequest) (response *GetJobGroupResponse, err error) {
+	response = CreateGetJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobGroupWithChan invokes the ccc.GetJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobGroupWithChan(request *GetJobGroupRequest) (<-chan *GetJobGroupResponse, <-chan error) {
+	responseChan := make(chan *GetJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobGroupWithCallback invokes the ccc.GetJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobGroupWithCallback(request *GetJobGroupRequest, callback func(response *GetJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobGroupRequest is the request struct for api GetJobGroup
+type GetJobGroupRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// GetJobGroupResponse is the response struct for api GetJobGroup
+type GetJobGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroup       JobGroup `json:"JobGroup" xml:"JobGroup"`
+}
+
+// CreateGetJobGroupRequest creates a request to invoke GetJobGroup API
+func CreateGetJobGroupRequest() (request *GetJobGroupRequest) {
+	request = &GetJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobGroup", "", "")
+	return
+}
+
+// CreateGetJobGroupResponse creates a response to parse from GetJobGroup response
+func CreateGetJobGroupResponse() (response *GetJobGroupResponse) {
+	response = &GetJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/get_job_list.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// GetJobList invokes the ccc.GetJobList API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjoblist.html
+func (client *Client) GetJobList(request *GetJobListRequest) (response *GetJobListResponse, err error) {
+	response = CreateGetJobListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobListWithChan invokes the ccc.GetJobList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjoblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobListWithChan(request *GetJobListRequest) (<-chan *GetJobListResponse, <-chan error) {
+	responseChan := make(chan *GetJobListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobListWithCallback invokes the ccc.GetJobList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjoblist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobListWithCallback(request *GetJobListRequest, callback func(response *GetJobListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobListRequest is the request struct for api GetJobList
+type GetJobListRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	Status     requests.Integer `position:"Query" name:"Status"`
+	QueryAll   requests.Boolean `position:"Query" name:"QueryAll"`
+}
+
+// GetJobListResponse is the response struct for api GetJobList
+type GetJobListResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Jobs           Jobs   `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateGetJobListRequest creates a request to invoke GetJobList API
+func CreateGetJobListRequest() (request *GetJobListRequest) {
+	request = &GetJobListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobList", "", "")
+	return
+}
+
+// CreateGetJobListResponse creates a response to parse from GetJobList response
+func CreateGetJobListResponse() (response *GetJobListResponse) {
+	response = &GetJobListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_job_status_by_call_id.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetJobStatusByCallId invokes the ccc.GetJobStatusByCallId API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobstatusbycallid.html
+func (client *Client) GetJobStatusByCallId(request *GetJobStatusByCallIdRequest) (response *GetJobStatusByCallIdResponse, err error) {
+	response = CreateGetJobStatusByCallIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobStatusByCallIdWithChan invokes the ccc.GetJobStatusByCallId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobstatusbycallid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobStatusByCallIdWithChan(request *GetJobStatusByCallIdRequest) (<-chan *GetJobStatusByCallIdResponse, <-chan error) {
+	responseChan := make(chan *GetJobStatusByCallIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobStatusByCallId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobStatusByCallIdWithCallback invokes the ccc.GetJobStatusByCallId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobstatusbycallid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobStatusByCallIdWithCallback(request *GetJobStatusByCallIdRequest, callback func(response *GetJobStatusByCallIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobStatusByCallIdResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobStatusByCallId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobStatusByCallIdRequest is the request struct for api GetJobStatusByCallId
+type GetJobStatusByCallIdRequest struct {
+	*requests.RpcRequest
+	CallId     string `position:"Query" name:"CallId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetJobStatusByCallIdResponse is the response struct for api GetJobStatusByCallId
+type GetJobStatusByCallIdResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Job            Job    `json:"Job" xml:"Job"`
+}
+
+// CreateGetJobStatusByCallIdRequest creates a request to invoke GetJobStatusByCallId API
+func CreateGetJobStatusByCallIdRequest() (request *GetJobStatusByCallIdRequest) {
+	request = &GetJobStatusByCallIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobStatusByCallId", "", "")
+	return
+}
+
+// CreateGetJobStatusByCallIdResponse creates a response to parse from GetJobStatusByCallId response
+func CreateGetJobStatusByCallIdResponse() (response *GetJobStatusByCallIdResponse) {
+	response = &GetJobStatusByCallIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_job_template_download_params.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetJobTemplateDownloadParams invokes the ccc.GetJobTemplateDownloadParams API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobtemplatedownloadparams.html
+func (client *Client) GetJobTemplateDownloadParams(request *GetJobTemplateDownloadParamsRequest) (response *GetJobTemplateDownloadParamsResponse, err error) {
+	response = CreateGetJobTemplateDownloadParamsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobTemplateDownloadParamsWithChan invokes the ccc.GetJobTemplateDownloadParams API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobtemplatedownloadparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobTemplateDownloadParamsWithChan(request *GetJobTemplateDownloadParamsRequest) (<-chan *GetJobTemplateDownloadParamsResponse, <-chan error) {
+	responseChan := make(chan *GetJobTemplateDownloadParamsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobTemplateDownloadParams(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobTemplateDownloadParamsWithCallback invokes the ccc.GetJobTemplateDownloadParams API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobtemplatedownloadparams.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobTemplateDownloadParamsWithCallback(request *GetJobTemplateDownloadParamsRequest, callback func(response *GetJobTemplateDownloadParamsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobTemplateDownloadParamsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobTemplateDownloadParams(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobTemplateDownloadParamsRequest is the request struct for api GetJobTemplateDownloadParams
+type GetJobTemplateDownloadParamsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ScenarioId string `position:"Query" name:"ScenarioId"`
+}
+
+// GetJobTemplateDownloadParamsResponse is the response struct for api GetJobTemplateDownloadParams
+type GetJobTemplateDownloadParamsResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	Code           string         `json:"Code" xml:"Code"`
+	Message        string         `json:"Message" xml:"Message"`
+	HttpStatusCode int            `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	DownloadParams DownloadParams `json:"DownloadParams" xml:"DownloadParams"`
+}
+
+// CreateGetJobTemplateDownloadParamsRequest creates a request to invoke GetJobTemplateDownloadParams API
+func CreateGetJobTemplateDownloadParamsRequest() (request *GetJobTemplateDownloadParamsRequest) {
+	request = &GetJobTemplateDownloadParamsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobTemplateDownloadParams", "", "")
+	return
+}
+
+// CreateGetJobTemplateDownloadParamsResponse creates a response to parse from GetJobTemplateDownloadParams response
+func CreateGetJobTemplateDownloadParamsResponse() (response *GetJobTemplateDownloadParamsResponse) {
+	response = &GetJobTemplateDownloadParamsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_jobs_progress.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetJobsProgress invokes the ccc.GetJobsProgress API synchronously
+// api document: https://help.aliyun.com/api/ccc/getjobsprogress.html
+func (client *Client) GetJobsProgress(request *GetJobsProgressRequest) (response *GetJobsProgressResponse, err error) {
+	response = CreateGetJobsProgressResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobsProgressWithChan invokes the ccc.GetJobsProgress API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobsprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobsProgressWithChan(request *GetJobsProgressRequest) (<-chan *GetJobsProgressResponse, <-chan error) {
+	responseChan := make(chan *GetJobsProgressResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobsProgress(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobsProgressWithCallback invokes the ccc.GetJobsProgress API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getjobsprogress.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobsProgressWithCallback(request *GetJobsProgressRequest, callback func(response *GetJobsProgressResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobsProgressResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobsProgress(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobsProgressRequest is the request struct for api GetJobsProgress
+type GetJobsProgressRequest struct {
+	*requests.RpcRequest
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	SkillGroupId string `position:"Query" name:"SkillGroupId"`
+	JobGroupId   string `position:"Query" name:"JobGroupId"`
+}
+
+// GetJobsProgressResponse is the response struct for api GetJobsProgress
+type GetJobsProgressResponse struct {
+	*responses.BaseResponse
+	RequestId      string       `json:"RequestId" xml:"RequestId"`
+	Success        bool         `json:"Success" xml:"Success"`
+	Code           string       `json:"Code" xml:"Code"`
+	Message        string       `json:"Message" xml:"Message"`
+	HttpStatusCode int          `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobsProgress   JobsProgress `json:"JobsProgress" xml:"JobsProgress"`
+}
+
+// CreateGetJobsProgressRequest creates a request to invoke GetJobsProgress API
+func CreateGetJobsProgressRequest() (request *GetJobsProgressRequest) {
+	request = &GetJobsProgressRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetJobsProgress", "", "")
+	return
+}
+
+// CreateGetJobsProgressResponse creates a response to parse from GetJobsProgress response
+func CreateGetJobsProgressResponse() (response *GetJobsProgressResponse) {
+	response = &GetJobsProgressResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/get_number_region_info.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// GetNumberRegionInfo invokes the ccc.GetNumberRegionInfo API synchronously
+// api document: https://help.aliyun.com/api/ccc/getnumberregioninfo.html
+func (client *Client) GetNumberRegionInfo(request *GetNumberRegionInfoRequest) (response *GetNumberRegionInfoResponse, err error) {
+	response = CreateGetNumberRegionInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetNumberRegionInfoWithChan invokes the ccc.GetNumberRegionInfo API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getnumberregioninfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNumberRegionInfoWithChan(request *GetNumberRegionInfoRequest) (<-chan *GetNumberRegionInfoResponse, <-chan error) {
+	responseChan := make(chan *GetNumberRegionInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetNumberRegionInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetNumberRegionInfoWithCallback invokes the ccc.GetNumberRegionInfo API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getnumberregioninfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetNumberRegionInfoWithCallback(request *GetNumberRegionInfoRequest, callback func(response *GetNumberRegionInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetNumberRegionInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.GetNumberRegionInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetNumberRegionInfoRequest is the request struct for api GetNumberRegionInfo
+type GetNumberRegionInfoRequest struct {
+	*requests.RpcRequest
+	Number     string `position:"Query" name:"Number"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetNumberRegionInfoResponse is the response struct for api GetNumberRegionInfo
+type GetNumberRegionInfoResponse struct {
+	*responses.BaseResponse
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Success     bool        `json:"Success" xml:"Success"`
+	Code        string      `json:"Code" xml:"Code"`
+	Message     string      `json:"Message" xml:"Message"`
+	PhoneNumber PhoneNumber `json:"PhoneNumber" xml:"PhoneNumber"`
+}
+
+// CreateGetNumberRegionInfoRequest creates a request to invoke GetNumberRegionInfo API
+func CreateGetNumberRegionInfoRequest() (request *GetNumberRegionInfoRequest) {
+	request = &GetNumberRegionInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetNumberRegionInfo", "", "")
+	return
+}
+
+// CreateGetNumberRegionInfoResponse creates a response to parse from GetNumberRegionInfo response
+func CreateGetNumberRegionInfoResponse() (response *GetNumberRegionInfoResponse) {
+	response = &GetNumberRegionInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_predictive_job.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetPredictiveJob invokes the ccc.GetPredictiveJob API synchronously
+// api document: https://help.aliyun.com/api/ccc/getpredictivejob.html
+func (client *Client) GetPredictiveJob(request *GetPredictiveJobRequest) (response *GetPredictiveJobResponse, err error) {
+	response = CreateGetPredictiveJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetPredictiveJobWithChan invokes the ccc.GetPredictiveJob API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getpredictivejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPredictiveJobWithChan(request *GetPredictiveJobRequest) (<-chan *GetPredictiveJobResponse, <-chan error) {
+	responseChan := make(chan *GetPredictiveJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetPredictiveJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetPredictiveJobWithCallback invokes the ccc.GetPredictiveJob API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getpredictivejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetPredictiveJobWithCallback(request *GetPredictiveJobRequest, callback func(response *GetPredictiveJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetPredictiveJobResponse
+		var err error
+		defer close(result)
+		response, err = client.GetPredictiveJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetPredictiveJobRequest is the request struct for api GetPredictiveJob
+type GetPredictiveJobRequest struct {
+	*requests.RpcRequest
+	JobId      string `position:"Query" name:"JobId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetPredictiveJobResponse is the response struct for api GetPredictiveJob
+type GetPredictiveJobResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Job            Job    `json:"Job" xml:"Job"`
+}
+
+// CreateGetPredictiveJobRequest creates a request to invoke GetPredictiveJob API
+func CreateGetPredictiveJobRequest() (request *GetPredictiveJobRequest) {
+	request = &GetPredictiveJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetPredictiveJob", "", "")
+	return
+}
+
+// CreateGetPredictiveJobResponse creates a response to parse from GetPredictiveJob response
+func CreateGetPredictiveJobResponse() (response *GetPredictiveJobResponse) {
+	response = &GetPredictiveJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/get_record_oss_upload_param.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// GetRecordOssUploadParam invokes the ccc.GetRecordOssUploadParam API synchronously
+// api document: https://help.aliyun.com/api/ccc/getrecordossuploadparam.html
+func (client *Client) GetRecordOssUploadParam(request *GetRecordOssUploadParamRequest) (response *GetRecordOssUploadParamResponse, err error) {
+	response = CreateGetRecordOssUploadParamResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetRecordOssUploadParamWithChan invokes the ccc.GetRecordOssUploadParam API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getrecordossuploadparam.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRecordOssUploadParamWithChan(request *GetRecordOssUploadParamRequest) (<-chan *GetRecordOssUploadParamResponse, <-chan error) {
+	responseChan := make(chan *GetRecordOssUploadParamResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetRecordOssUploadParam(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetRecordOssUploadParamWithCallback invokes the ccc.GetRecordOssUploadParam API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getrecordossuploadparam.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetRecordOssUploadParamWithCallback(request *GetRecordOssUploadParamRequest, callback func(response *GetRecordOssUploadParamResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetRecordOssUploadParamResponse
+		var err error
+		defer close(result)
+		response, err = client.GetRecordOssUploadParam(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetRecordOssUploadParamRequest is the request struct for api GetRecordOssUploadParam
+type GetRecordOssUploadParamRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	FileName   string `position:"Query" name:"FileName"`
+}
+
+// GetRecordOssUploadParamResponse is the response struct for api GetRecordOssUploadParam
+type GetRecordOssUploadParamResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	OssAccessKeyId string `json:"OssAccessKeyId" xml:"OssAccessKeyId"`
+	Policy         string `json:"Policy" xml:"Policy"`
+	Signature      string `json:"Signature" xml:"Signature"`
+	Expires        string `json:"Expires" xml:"Expires"`
+	Dir            string `json:"Dir" xml:"Dir"`
+	Host           string `json:"Host" xml:"Host"`
+	OssFileName    string `json:"OssFileName" xml:"OssFileName"`
+}
+
+// CreateGetRecordOssUploadParamRequest creates a request to invoke GetRecordOssUploadParam API
+func CreateGetRecordOssUploadParamRequest() (request *GetRecordOssUploadParamRequest) {
+	request = &GetRecordOssUploadParamRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetRecordOssUploadParam", "", "")
+	return
+}
+
+// CreateGetRecordOssUploadParamResponse creates a response to parse from GetRecordOssUploadParam response
+func CreateGetRecordOssUploadParamResponse() (response *GetRecordOssUploadParamResponse) {
+	response = &GetRecordOssUploadParamResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_scenario.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetScenario invokes the ccc.GetScenario API synchronously
+// api document: https://help.aliyun.com/api/ccc/getscenario.html
+func (client *Client) GetScenario(request *GetScenarioRequest) (response *GetScenarioResponse, err error) {
+	response = CreateGetScenarioResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetScenarioWithChan invokes the ccc.GetScenario API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScenarioWithChan(request *GetScenarioRequest) (<-chan *GetScenarioResponse, <-chan error) {
+	responseChan := make(chan *GetScenarioResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetScenario(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetScenarioWithCallback invokes the ccc.GetScenario API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetScenarioWithCallback(request *GetScenarioRequest, callback func(response *GetScenarioResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetScenarioResponse
+		var err error
+		defer close(result)
+		response, err = client.GetScenario(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetScenarioRequest is the request struct for api GetScenario
+type GetScenarioRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ScenarioId string `position:"Query" name:"ScenarioId"`
+}
+
+// GetScenarioResponse is the response struct for api GetScenario
+type GetScenarioResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Scenario       Scenario `json:"Scenario" xml:"Scenario"`
+}
+
+// CreateGetScenarioRequest creates a request to invoke GetScenario API
+func CreateGetScenarioRequest() (request *GetScenarioRequest) {
+	request = &GetScenarioRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetScenario", "", "")
+	return
+}
+
+// CreateGetScenarioResponse creates a response to parse from GetScenario response
+func CreateGetScenarioResponse() (response *GetScenarioResponse) {
+	response = &GetScenarioResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/ccc/get_service_extensions.go

@@ -76,8 +76,8 @@ func (client *Client) GetServiceExtensionsWithCallback(request *GetServiceExtens
 // GetServiceExtensionsRequest is the request struct for api GetServiceExtensions
 type GetServiceExtensionsRequest struct {
 	*requests.RpcRequest
-	InstanceId  string `position:"Query" name:"InstanceId"`
 	ServiceType string `position:"Query" name:"ServiceType"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
 }
 
 // GetServiceExtensionsResponse is the response struct for api GetServiceExtensions

+ 109 - 0
services/ccc/get_sms_config.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetSmsConfig invokes the ccc.GetSmsConfig API synchronously
+// api document: https://help.aliyun.com/api/ccc/getsmsconfig.html
+func (client *Client) GetSmsConfig(request *GetSmsConfigRequest) (response *GetSmsConfigResponse, err error) {
+	response = CreateGetSmsConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSmsConfigWithChan invokes the ccc.GetSmsConfig API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getsmsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSmsConfigWithChan(request *GetSmsConfigRequest) (<-chan *GetSmsConfigResponse, <-chan error) {
+	responseChan := make(chan *GetSmsConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSmsConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSmsConfigWithCallback invokes the ccc.GetSmsConfig API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getsmsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSmsConfigWithCallback(request *GetSmsConfigRequest, callback func(response *GetSmsConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSmsConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSmsConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSmsConfigRequest is the request struct for api GetSmsConfig
+type GetSmsConfigRequest struct {
+	*requests.RpcRequest
+	InstanceId string    `position:"Query" name:"InstanceId"`
+	Scenario   *[]string `position:"Query" name:"Scenario"  type:"Repeated"`
+}
+
+// GetSmsConfigResponse is the response struct for api GetSmsConfig
+type GetSmsConfigResponse struct {
+	*responses.BaseResponse
+	RequestId      string     `json:"RequestId" xml:"RequestId"`
+	Success        bool       `json:"Success" xml:"Success"`
+	Code           string     `json:"Code" xml:"Code"`
+	Message        string     `json:"Message" xml:"Message"`
+	HttpStatusCode int        `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	SmsConfigs     SmsConfigs `json:"SmsConfigs" xml:"SmsConfigs"`
+}
+
+// CreateGetSmsConfigRequest creates a request to invoke GetSmsConfig API
+func CreateGetSmsConfigRequest() (request *GetSmsConfigRequest) {
+	request = &GetSmsConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetSmsConfig", "", "")
+	return
+}
+
+// CreateGetSmsConfigResponse creates a response to parse from GetSmsConfig response
+func CreateGetSmsConfigResponse() (response *GetSmsConfigResponse) {
+	response = &GetSmsConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_survey.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetSurvey invokes the ccc.GetSurvey API synchronously
+// api document: https://help.aliyun.com/api/ccc/getsurvey.html
+func (client *Client) GetSurvey(request *GetSurveyRequest) (response *GetSurveyResponse, err error) {
+	response = CreateGetSurveyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetSurveyWithChan invokes the ccc.GetSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getsurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSurveyWithChan(request *GetSurveyRequest) (<-chan *GetSurveyResponse, <-chan error) {
+	responseChan := make(chan *GetSurveyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetSurvey(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetSurveyWithCallback invokes the ccc.GetSurvey API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getsurvey.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetSurveyWithCallback(request *GetSurveyRequest, callback func(response *GetSurveyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetSurveyResponse
+		var err error
+		defer close(result)
+		response, err = client.GetSurvey(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetSurveyRequest is the request struct for api GetSurvey
+type GetSurveyRequest struct {
+	*requests.RpcRequest
+	SurveyId   string `position:"Query" name:"SurveyId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ScenarioId string `position:"Query" name:"ScenarioId"`
+}
+
+// GetSurveyResponse is the response struct for api GetSurvey
+type GetSurveyResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Survey         Survey `json:"Survey" xml:"Survey"`
+}
+
+// CreateGetSurveyRequest creates a request to invoke GetSurvey API
+func CreateGetSurveyRequest() (request *GetSurveyRequest) {
+	request = &GetSurveyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetSurvey", "", "")
+	return
+}
+
+// CreateGetSurveyResponse creates a response to parse from GetSurvey response
+func CreateGetSurveyResponse() (response *GetSurveyResponse) {
+	response = &GetSurveyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/get_task_list.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// GetTaskList invokes the ccc.GetTaskList API synchronously
+// api document: https://help.aliyun.com/api/ccc/gettasklist.html
+func (client *Client) GetTaskList(request *GetTaskListRequest) (response *GetTaskListResponse, err error) {
+	response = CreateGetTaskListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetTaskListWithChan invokes the ccc.GetTaskList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/gettasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTaskListWithChan(request *GetTaskListRequest) (<-chan *GetTaskListResponse, <-chan error) {
+	responseChan := make(chan *GetTaskListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetTaskList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetTaskListWithCallback invokes the ccc.GetTaskList API asynchronously
+// api document: https://help.aliyun.com/api/ccc/gettasklist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTaskListWithCallback(request *GetTaskListRequest, callback func(response *GetTaskListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetTaskListResponse
+		var err error
+		defer close(result)
+		response, err = client.GetTaskList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetTaskListRequest is the request struct for api GetTaskList
+type GetTaskListRequest struct {
+	*requests.RpcRequest
+	JobId      string `position:"Query" name:"JobId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// GetTaskListResponse is the response struct for api GetTaskList
+type GetTaskListResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Tasks          []Task `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateGetTaskListRequest creates a request to invoke GetTaskList API
+func CreateGetTaskListRequest() (request *GetTaskListRequest) {
+	request = &GetTaskListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetTaskList", "", "")
+	return
+}
+
+// CreateGetTaskListResponse creates a response to parse from GetTaskList response
+func CreateGetTaskListResponse() (response *GetTaskListResponse) {
+	response = &GetTaskListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/ccc/get_turn_credentials.go

@@ -0,0 +1,110 @@
+package ccc
+
+//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"
+)
+
+// GetTURNCredentials invokes the ccc.GetTURNCredentials API synchronously
+// api document: https://help.aliyun.com/api/ccc/getturncredentials.html
+func (client *Client) GetTURNCredentials(request *GetTURNCredentialsRequest) (response *GetTURNCredentialsResponse, err error) {
+	response = CreateGetTURNCredentialsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetTURNCredentialsWithChan invokes the ccc.GetTURNCredentials API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getturncredentials.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTURNCredentialsWithChan(request *GetTURNCredentialsRequest) (<-chan *GetTURNCredentialsResponse, <-chan error) {
+	responseChan := make(chan *GetTURNCredentialsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetTURNCredentials(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetTURNCredentialsWithCallback invokes the ccc.GetTURNCredentials API asynchronously
+// api document: https://help.aliyun.com/api/ccc/getturncredentials.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTURNCredentialsWithCallback(request *GetTURNCredentialsRequest, callback func(response *GetTURNCredentialsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetTURNCredentialsResponse
+		var err error
+		defer close(result)
+		response, err = client.GetTURNCredentials(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetTURNCredentialsRequest is the request struct for api GetTURNCredentials
+type GetTURNCredentialsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	UserName   string `position:"Query" name:"UserName"`
+}
+
+// GetTURNCredentialsResponse is the response struct for api GetTURNCredentials
+type GetTURNCredentialsResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Username       string `json:"Username" xml:"Username"`
+	Password       string `json:"Password" xml:"Password"`
+}
+
+// CreateGetTURNCredentialsRequest creates a request to invoke GetTURNCredentials API
+func CreateGetTURNCredentialsRequest() (request *GetTURNCredentialsRequest) {
+	request = &GetTURNCredentialsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "GetTURNCredentials", "", "")
+	return
+}
+
+// CreateGetTURNCredentialsResponse creates a response to parse from GetTURNCredentials response
+func CreateGetTURNCredentialsResponse() (response *GetTURNCredentialsResponse) {
+	response = &GetTURNCredentialsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/launch_appraise.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// LaunchAppraise invokes the ccc.LaunchAppraise API synchronously
+// api document: https://help.aliyun.com/api/ccc/launchappraise.html
+func (client *Client) LaunchAppraise(request *LaunchAppraiseRequest) (response *LaunchAppraiseResponse, err error) {
+	response = CreateLaunchAppraiseResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// LaunchAppraiseWithChan invokes the ccc.LaunchAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/launchappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LaunchAppraiseWithChan(request *LaunchAppraiseRequest) (<-chan *LaunchAppraiseResponse, <-chan error) {
+	responseChan := make(chan *LaunchAppraiseResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.LaunchAppraise(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// LaunchAppraiseWithCallback invokes the ccc.LaunchAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/launchappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LaunchAppraiseWithCallback(request *LaunchAppraiseRequest, callback func(response *LaunchAppraiseResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *LaunchAppraiseResponse
+		var err error
+		defer close(result)
+		response, err = client.LaunchAppraise(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// LaunchAppraiseRequest is the request struct for api LaunchAppraise
+type LaunchAppraiseRequest struct {
+	*requests.RpcRequest
+	Acid       string `position:"Query" name:"Acid"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// LaunchAppraiseResponse is the response struct for api LaunchAppraise
+type LaunchAppraiseResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateLaunchAppraiseRequest creates a request to invoke LaunchAppraise API
+func CreateLaunchAppraiseRequest() (request *LaunchAppraiseRequest) {
+	request = &LaunchAppraiseRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "LaunchAppraise", "", "")
+	return
+}
+
+// CreateLaunchAppraiseResponse creates a response to parse from LaunchAppraise response
+func CreateLaunchAppraiseResponse() (response *LaunchAppraiseResponse) {
+	response = &LaunchAppraiseResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/launch_short_message_appraise.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// LaunchShortMessageAppraise invokes the ccc.LaunchShortMessageAppraise API synchronously
+// api document: https://help.aliyun.com/api/ccc/launchshortmessageappraise.html
+func (client *Client) LaunchShortMessageAppraise(request *LaunchShortMessageAppraiseRequest) (response *LaunchShortMessageAppraiseResponse, err error) {
+	response = CreateLaunchShortMessageAppraiseResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// LaunchShortMessageAppraiseWithChan invokes the ccc.LaunchShortMessageAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/launchshortmessageappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LaunchShortMessageAppraiseWithChan(request *LaunchShortMessageAppraiseRequest) (<-chan *LaunchShortMessageAppraiseResponse, <-chan error) {
+	responseChan := make(chan *LaunchShortMessageAppraiseResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.LaunchShortMessageAppraise(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// LaunchShortMessageAppraiseWithCallback invokes the ccc.LaunchShortMessageAppraise API asynchronously
+// api document: https://help.aliyun.com/api/ccc/launchshortmessageappraise.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LaunchShortMessageAppraiseWithCallback(request *LaunchShortMessageAppraiseRequest, callback func(response *LaunchShortMessageAppraiseResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *LaunchShortMessageAppraiseResponse
+		var err error
+		defer close(result)
+		response, err = client.LaunchShortMessageAppraise(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// LaunchShortMessageAppraiseRequest is the request struct for api LaunchShortMessageAppraise
+type LaunchShortMessageAppraiseRequest struct {
+	*requests.RpcRequest
+	Acid         string           `position:"Query" name:"Acid"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	ContactType  requests.Integer `position:"Query" name:"ContactType"`
+	PhoneNumbers string           `position:"Query" name:"PhoneNumbers"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+}
+
+// LaunchShortMessageAppraiseResponse is the response struct for api LaunchShortMessageAppraise
+type LaunchShortMessageAppraiseResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+}
+
+// CreateLaunchShortMessageAppraiseRequest creates a request to invoke LaunchShortMessageAppraise API
+func CreateLaunchShortMessageAppraiseRequest() (request *LaunchShortMessageAppraiseRequest) {
+	request = &LaunchShortMessageAppraiseRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "LaunchShortMessageAppraise", "", "")
+	return
+}
+
+// CreateLaunchShortMessageAppraiseResponse creates a response to parse from LaunchShortMessageAppraise response
+func CreateLaunchShortMessageAppraiseResponse() (response *LaunchShortMessageAppraiseResponse) {
+	response = &LaunchShortMessageAppraiseResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/list_agent_devices.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// ListAgentDevices invokes the ccc.ListAgentDevices API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentdevices.html
+func (client *Client) ListAgentDevices(request *ListAgentDevicesRequest) (response *ListAgentDevicesResponse, err error) {
+	response = CreateListAgentDevicesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentDevicesWithChan invokes the ccc.ListAgentDevices API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentdevices.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentDevicesWithChan(request *ListAgentDevicesRequest) (<-chan *ListAgentDevicesResponse, <-chan error) {
+	responseChan := make(chan *ListAgentDevicesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentDevices(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentDevicesWithCallback invokes the ccc.ListAgentDevices API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentdevices.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentDevicesWithCallback(request *ListAgentDevicesRequest, callback func(response *ListAgentDevicesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentDevicesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentDevices(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentDevicesRequest is the request struct for api ListAgentDevices
+type ListAgentDevicesRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	RamIds     string           `position:"Query" name:"RamIds"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	StopTime   requests.Integer `position:"Query" name:"StopTime"`
+}
+
+// ListAgentDevicesResponse is the response struct for api ListAgentDevices
+type ListAgentDevicesResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	Success         bool            `json:"Success" xml:"Success"`
+	Code            string          `json:"Code" xml:"Code"`
+	Message         string          `json:"Message" xml:"Message"`
+	HttpStatusCode  int             `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	AgentDeviceList AgentDeviceList `json:"AgentDeviceList" xml:"AgentDeviceList"`
+}
+
+// CreateListAgentDevicesRequest creates a request to invoke ListAgentDevices API
+func CreateListAgentDevicesRequest() (request *ListAgentDevicesRequest) {
+	request = &ListAgentDevicesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentDevices", "", "")
+	return
+}
+
+// CreateListAgentDevicesResponse creates a response to parse from ListAgentDevices response
+func CreateListAgentDevicesResponse() (response *ListAgentDevicesResponse) {
+	response = &ListAgentDevicesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/list_agent_events.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// ListAgentEvents invokes the ccc.ListAgentEvents API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentevents.html
+func (client *Client) ListAgentEvents(request *ListAgentEventsRequest) (response *ListAgentEventsResponse, err error) {
+	response = CreateListAgentEventsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentEventsWithChan invokes the ccc.ListAgentEvents API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentevents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentEventsWithChan(request *ListAgentEventsRequest) (<-chan *ListAgentEventsResponse, <-chan error) {
+	responseChan := make(chan *ListAgentEventsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentEvents(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentEventsWithCallback invokes the ccc.ListAgentEvents API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentevents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentEventsWithCallback(request *ListAgentEventsRequest, callback func(response *ListAgentEventsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentEventsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentEvents(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentEventsRequest is the request struct for api ListAgentEvents
+type ListAgentEventsRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	StopTime   requests.Integer `position:"Query" name:"StopTime"`
+	Event      *[]string        `position:"Query" name:"Event"  type:"Repeated"`
+	RamId      *[]string        `position:"Query" name:"RamId"  type:"Repeated"`
+}
+
+// ListAgentEventsResponse is the response struct for api ListAgentEvents
+type ListAgentEventsResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	Success        bool           `json:"Success" xml:"Success"`
+	Code           string         `json:"Code" xml:"Code"`
+	Message        string         `json:"Message" xml:"Message"`
+	HttpStatusCode int            `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	AgentEventList AgentEventList `json:"AgentEventList" xml:"AgentEventList"`
+}
+
+// CreateListAgentEventsRequest creates a request to invoke ListAgentEvents API
+func CreateListAgentEventsRequest() (request *ListAgentEventsRequest) {
+	request = &ListAgentEventsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentEvents", "", "")
+	return
+}
+
+// CreateListAgentEventsResponse creates a response to parse from ListAgentEvents response
+func CreateListAgentEventsResponse() (response *ListAgentEventsResponse) {
+	response = &ListAgentEventsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/list_agent_states.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// ListAgentStates invokes the ccc.ListAgentStates API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentstates.html
+func (client *Client) ListAgentStates(request *ListAgentStatesRequest) (response *ListAgentStatesResponse, err error) {
+	response = CreateListAgentStatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentStatesWithChan invokes the ccc.ListAgentStates API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentstates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentStatesWithChan(request *ListAgentStatesRequest) (<-chan *ListAgentStatesResponse, <-chan error) {
+	responseChan := make(chan *ListAgentStatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentStates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentStatesWithCallback invokes the ccc.ListAgentStates API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentstates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentStatesWithCallback(request *ListAgentStatesRequest, callback func(response *ListAgentStatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentStatesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentStates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentStatesRequest is the request struct for api ListAgentStates
+type ListAgentStatesRequest struct {
+	*requests.RpcRequest
+	AgentIds     string           `position:"Query" name:"AgentIds"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	State        string           `position:"Query" name:"State"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListAgentStatesResponse is the response struct for api ListAgentStates
+type ListAgentStatesResponse struct {
+	*responses.BaseResponse
+	RequestId      string                `json:"RequestId" xml:"RequestId"`
+	Success        bool                  `json:"Success" xml:"Success"`
+	Code           string                `json:"Code" xml:"Code"`
+	Message        string                `json:"Message" xml:"Message"`
+	HttpStatusCode int                   `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Data           DataInListAgentStates `json:"Data" xml:"Data"`
+}
+
+// CreateListAgentStatesRequest creates a request to invoke ListAgentStates API
+func CreateListAgentStatesRequest() (request *ListAgentStatesRequest) {
+	request = &ListAgentStatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentStates", "", "")
+	return
+}
+
+// CreateListAgentStatesResponse creates a response to parse from ListAgentStates response
+func CreateListAgentStatesResponse() (response *ListAgentStatesResponse) {
+	response = &ListAgentStatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/ccc/list_agent_summary_reports.go

@@ -0,0 +1,114 @@
+package ccc
+
+//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"
+)
+
+// ListAgentSummaryReports invokes the ccc.ListAgentSummaryReports API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreports.html
+func (client *Client) ListAgentSummaryReports(request *ListAgentSummaryReportsRequest) (response *ListAgentSummaryReportsResponse, err error) {
+	response = CreateListAgentSummaryReportsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentSummaryReportsWithChan invokes the ccc.ListAgentSummaryReports API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreports.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsWithChan(request *ListAgentSummaryReportsRequest) (<-chan *ListAgentSummaryReportsResponse, <-chan error) {
+	responseChan := make(chan *ListAgentSummaryReportsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentSummaryReports(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentSummaryReportsWithCallback invokes the ccc.ListAgentSummaryReports API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreports.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsWithCallback(request *ListAgentSummaryReportsRequest, callback func(response *ListAgentSummaryReportsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentSummaryReportsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentSummaryReports(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentSummaryReportsRequest is the request struct for api ListAgentSummaryReports
+type ListAgentSummaryReportsRequest struct {
+	*requests.RpcRequest
+	AgentIds     string           `position:"Query" name:"AgentIds"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	EndTime      string           `position:"Query" name:"EndTime"`
+	StartTime    string           `position:"Query" name:"StartTime"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListAgentSummaryReportsResponse is the response struct for api ListAgentSummaryReports
+type ListAgentSummaryReportsResponse struct {
+	*responses.BaseResponse
+	RequestId               string                  `json:"RequestId" xml:"RequestId"`
+	Success                 bool                    `json:"Success" xml:"Success"`
+	Code                    string                  `json:"Code" xml:"Code"`
+	Message                 string                  `json:"Message" xml:"Message"`
+	HttpStatusCode          int                     `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	PagedAgentSummaryReport PagedAgentSummaryReport `json:"PagedAgentSummaryReport" xml:"PagedAgentSummaryReport"`
+}
+
+// CreateListAgentSummaryReportsRequest creates a request to invoke ListAgentSummaryReports API
+func CreateListAgentSummaryReportsRequest() (request *ListAgentSummaryReportsRequest) {
+	request = &ListAgentSummaryReportsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentSummaryReports", "", "")
+	return
+}
+
+// CreateListAgentSummaryReportsResponse creates a response to parse from ListAgentSummaryReports response
+func CreateListAgentSummaryReportsResponse() (response *ListAgentSummaryReportsResponse) {
+	response = &ListAgentSummaryReportsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/list_agent_summary_reports_by_interval.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// ListAgentSummaryReportsByInterval invokes the ccc.ListAgentSummaryReportsByInterval API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportsbyinterval.html
+func (client *Client) ListAgentSummaryReportsByInterval(request *ListAgentSummaryReportsByIntervalRequest) (response *ListAgentSummaryReportsByIntervalResponse, err error) {
+	response = CreateListAgentSummaryReportsByIntervalResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentSummaryReportsByIntervalWithChan invokes the ccc.ListAgentSummaryReportsByInterval API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportsbyinterval.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsByIntervalWithChan(request *ListAgentSummaryReportsByIntervalRequest) (<-chan *ListAgentSummaryReportsByIntervalResponse, <-chan error) {
+	responseChan := make(chan *ListAgentSummaryReportsByIntervalResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentSummaryReportsByInterval(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentSummaryReportsByIntervalWithCallback invokes the ccc.ListAgentSummaryReportsByInterval API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportsbyinterval.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsByIntervalWithCallback(request *ListAgentSummaryReportsByIntervalRequest, callback func(response *ListAgentSummaryReportsByIntervalResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentSummaryReportsByIntervalResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentSummaryReportsByInterval(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentSummaryReportsByIntervalRequest is the request struct for api ListAgentSummaryReportsByInterval
+type ListAgentSummaryReportsByIntervalRequest struct {
+	*requests.RpcRequest
+	AgentIds     string           `position:"Query" name:"AgentIds"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	EndTime      string           `position:"Query" name:"EndTime"`
+	Interval     string           `position:"Query" name:"Interval"`
+	StartTime    string           `position:"Query" name:"StartTime"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListAgentSummaryReportsByIntervalResponse is the response struct for api ListAgentSummaryReportsByInterval
+type ListAgentSummaryReportsByIntervalResponse struct {
+	*responses.BaseResponse
+	RequestId               string                                                     `json:"RequestId" xml:"RequestId"`
+	Success                 bool                                                       `json:"Success" xml:"Success"`
+	Code                    string                                                     `json:"Code" xml:"Code"`
+	Message                 string                                                     `json:"Message" xml:"Message"`
+	HttpStatusCode          int                                                        `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	PagedAgentSummaryReport PagedAgentSummaryReportInListAgentSummaryReportsByInterval `json:"PagedAgentSummaryReport" xml:"PagedAgentSummaryReport"`
+}
+
+// CreateListAgentSummaryReportsByIntervalRequest creates a request to invoke ListAgentSummaryReportsByInterval API
+func CreateListAgentSummaryReportsByIntervalRequest() (request *ListAgentSummaryReportsByIntervalRequest) {
+	request = &ListAgentSummaryReportsByIntervalRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentSummaryReportsByInterval", "", "")
+	return
+}
+
+// CreateListAgentSummaryReportsByIntervalResponse creates a response to parse from ListAgentSummaryReportsByInterval response
+func CreateListAgentSummaryReportsByIntervalResponse() (response *ListAgentSummaryReportsByIntervalResponse) {
+	response = &ListAgentSummaryReportsByIntervalResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/list_agent_summary_reports_since_midnight.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// ListAgentSummaryReportsSinceMidnight invokes the ccc.ListAgentSummaryReportsSinceMidnight API synchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportssincemidnight.html
+func (client *Client) ListAgentSummaryReportsSinceMidnight(request *ListAgentSummaryReportsSinceMidnightRequest) (response *ListAgentSummaryReportsSinceMidnightResponse, err error) {
+	response = CreateListAgentSummaryReportsSinceMidnightResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListAgentSummaryReportsSinceMidnightWithChan invokes the ccc.ListAgentSummaryReportsSinceMidnight API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportssincemidnight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsSinceMidnightWithChan(request *ListAgentSummaryReportsSinceMidnightRequest) (<-chan *ListAgentSummaryReportsSinceMidnightResponse, <-chan error) {
+	responseChan := make(chan *ListAgentSummaryReportsSinceMidnightResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListAgentSummaryReportsSinceMidnight(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListAgentSummaryReportsSinceMidnightWithCallback invokes the ccc.ListAgentSummaryReportsSinceMidnight API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listagentsummaryreportssincemidnight.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListAgentSummaryReportsSinceMidnightWithCallback(request *ListAgentSummaryReportsSinceMidnightRequest, callback func(response *ListAgentSummaryReportsSinceMidnightResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListAgentSummaryReportsSinceMidnightResponse
+		var err error
+		defer close(result)
+		response, err = client.ListAgentSummaryReportsSinceMidnight(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListAgentSummaryReportsSinceMidnightRequest is the request struct for api ListAgentSummaryReportsSinceMidnight
+type ListAgentSummaryReportsSinceMidnightRequest struct {
+	*requests.RpcRequest
+	AgentIds     string           `position:"Query" name:"AgentIds"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListAgentSummaryReportsSinceMidnightResponse is the response struct for api ListAgentSummaryReportsSinceMidnight
+type ListAgentSummaryReportsSinceMidnightResponse struct {
+	*responses.BaseResponse
+	RequestId               string                  `json:"RequestId" xml:"RequestId"`
+	Success                 bool                    `json:"Success" xml:"Success"`
+	Code                    string                  `json:"Code" xml:"Code"`
+	Message                 string                  `json:"Message" xml:"Message"`
+	HttpStatusCode          int                     `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	PagedAgentSummaryReport PagedAgentSummaryReport `json:"PagedAgentSummaryReport" xml:"PagedAgentSummaryReport"`
+}
+
+// CreateListAgentSummaryReportsSinceMidnightRequest creates a request to invoke ListAgentSummaryReportsSinceMidnight API
+func CreateListAgentSummaryReportsSinceMidnightRequest() (request *ListAgentSummaryReportsSinceMidnightRequest) {
+	request = &ListAgentSummaryReportsSinceMidnightRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListAgentSummaryReportsSinceMidnight", "", "")
+	return
+}
+
+// CreateListAgentSummaryReportsSinceMidnightResponse creates a response to parse from ListAgentSummaryReportsSinceMidnight response
+func CreateListAgentSummaryReportsSinceMidnightResponse() (response *ListAgentSummaryReportsSinceMidnightResponse) {
+	response = &ListAgentSummaryReportsSinceMidnightResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/list_basic_statistics_report_sub_items.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// ListBasicStatisticsReportSubItems invokes the ccc.ListBasicStatisticsReportSubItems API synchronously
+// api document: https://help.aliyun.com/api/ccc/listbasicstatisticsreportsubitems.html
+func (client *Client) ListBasicStatisticsReportSubItems(request *ListBasicStatisticsReportSubItemsRequest) (response *ListBasicStatisticsReportSubItemsResponse, err error) {
+	response = CreateListBasicStatisticsReportSubItemsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListBasicStatisticsReportSubItemsWithChan invokes the ccc.ListBasicStatisticsReportSubItems API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listbasicstatisticsreportsubitems.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListBasicStatisticsReportSubItemsWithChan(request *ListBasicStatisticsReportSubItemsRequest) (<-chan *ListBasicStatisticsReportSubItemsResponse, <-chan error) {
+	responseChan := make(chan *ListBasicStatisticsReportSubItemsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListBasicStatisticsReportSubItems(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListBasicStatisticsReportSubItemsWithCallback invokes the ccc.ListBasicStatisticsReportSubItems API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listbasicstatisticsreportsubitems.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListBasicStatisticsReportSubItemsWithCallback(request *ListBasicStatisticsReportSubItemsRequest, callback func(response *ListBasicStatisticsReportSubItemsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListBasicStatisticsReportSubItemsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListBasicStatisticsReportSubItems(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListBasicStatisticsReportSubItemsRequest is the request struct for api ListBasicStatisticsReportSubItems
+type ListBasicStatisticsReportSubItemsRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	Title      string           `position:"Query" name:"Title"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListBasicStatisticsReportSubItemsResponse is the response struct for api ListBasicStatisticsReportSubItems
+type ListBasicStatisticsReportSubItemsResponse struct {
+	*responses.BaseResponse
+	RequestId      string   `json:"RequestId" xml:"RequestId"`
+	Success        bool     `json:"Success" xml:"Success"`
+	Code           string   `json:"Code" xml:"Code"`
+	Message        string   `json:"Message" xml:"Message"`
+	HttpStatusCode int      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	SubItems       SubItems `json:"SubItems" xml:"SubItems"`
+}
+
+// CreateListBasicStatisticsReportSubItemsRequest creates a request to invoke ListBasicStatisticsReportSubItems API
+func CreateListBasicStatisticsReportSubItemsRequest() (request *ListBasicStatisticsReportSubItemsRequest) {
+	request = &ListBasicStatisticsReportSubItemsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListBasicStatisticsReportSubItems", "", "")
+	return
+}
+
+// CreateListBasicStatisticsReportSubItemsResponse creates a response to parse from ListBasicStatisticsReportSubItems response
+func CreateListBasicStatisticsReportSubItemsResponse() (response *ListBasicStatisticsReportSubItemsResponse) {
+	response = &ListBasicStatisticsReportSubItemsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 7 - 5
services/ccc/list_call_detail_records.go

@@ -76,16 +76,18 @@ func (client *Client) ListCallDetailRecordsWithCallback(request *ListCallDetailR
 // ListCallDetailRecordsRequest is the request struct for api ListCallDetailRecords
 type ListCallDetailRecordsRequest struct {
 	*requests.RpcRequest
-	InstanceId         string           `position:"Query" name:"InstanceId"`
+	ContactType        string           `position:"Query" name:"ContactType"`
+	ContactId          string           `position:"Query" name:"ContactId"`
+	Criteria           string           `position:"Query" name:"Criteria"`
 	PhoneNumber        string           `position:"Query" name:"PhoneNumber"`
+	OrderBy            string           `position:"Query" name:"OrderBy"`
 	StartTime          requests.Integer `position:"Query" name:"StartTime"`
 	StopTime           requests.Integer `position:"Query" name:"StopTime"`
-	Criteria           string           `position:"Query" name:"Criteria"`
-	ContactType        string           `position:"Query" name:"ContactType"`
-	ContactDisposition string           `position:"Query" name:"ContactDisposition"`
-	WithRecording      requests.Boolean `position:"Query" name:"WithRecording"`
 	PageNumber         requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId         string           `position:"Query" name:"InstanceId"`
+	ContactDisposition string           `position:"Query" name:"ContactDisposition"`
 	PageSize           requests.Integer `position:"Query" name:"PageSize"`
+	WithRecording      requests.Boolean `position:"Query" name:"WithRecording"`
 }
 
 // ListCallDetailRecordsResponse is the response struct for api ListCallDetailRecords

+ 109 - 0
services/ccc/list_call_event_detail_by_contact_id.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// ListCallEventDetailByContactId invokes the ccc.ListCallEventDetailByContactId API synchronously
+// api document: https://help.aliyun.com/api/ccc/listcalleventdetailbycontactid.html
+func (client *Client) ListCallEventDetailByContactId(request *ListCallEventDetailByContactIdRequest) (response *ListCallEventDetailByContactIdResponse, err error) {
+	response = CreateListCallEventDetailByContactIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListCallEventDetailByContactIdWithChan invokes the ccc.ListCallEventDetailByContactId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listcalleventdetailbycontactid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListCallEventDetailByContactIdWithChan(request *ListCallEventDetailByContactIdRequest) (<-chan *ListCallEventDetailByContactIdResponse, <-chan error) {
+	responseChan := make(chan *ListCallEventDetailByContactIdResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListCallEventDetailByContactId(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListCallEventDetailByContactIdWithCallback invokes the ccc.ListCallEventDetailByContactId API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listcalleventdetailbycontactid.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListCallEventDetailByContactIdWithCallback(request *ListCallEventDetailByContactIdRequest, callback func(response *ListCallEventDetailByContactIdResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListCallEventDetailByContactIdResponse
+		var err error
+		defer close(result)
+		response, err = client.ListCallEventDetailByContactId(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListCallEventDetailByContactIdRequest is the request struct for api ListCallEventDetailByContactId
+type ListCallEventDetailByContactIdRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	ContactId  string `position:"Query" name:"ContactId"`
+}
+
+// ListCallEventDetailByContactIdResponse is the response struct for api ListCallEventDetailByContactId
+type ListCallEventDetailByContactIdResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Data           Data   `json:"Data" xml:"Data"`
+}
+
+// CreateListCallEventDetailByContactIdRequest creates a request to invoke ListCallEventDetailByContactId API
+func CreateListCallEventDetailByContactIdRequest() (request *ListCallEventDetailByContactIdRequest) {
+	request = &ListCallEventDetailByContactIdRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListCallEventDetailByContactId", "", "")
+	return
+}
+
+// CreateListCallEventDetailByContactIdResponse creates a response to parse from ListCallEventDetailByContactId response
+func CreateListCallEventDetailByContactIdResponse() (response *ListCallEventDetailByContactIdResponse) {
+	response = &ListCallEventDetailByContactIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/list_call_measure_summary_reports.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// ListCallMeasureSummaryReports invokes the ccc.ListCallMeasureSummaryReports API synchronously
+// api document: https://help.aliyun.com/api/ccc/listcallmeasuresummaryreports.html
+func (client *Client) ListCallMeasureSummaryReports(request *ListCallMeasureSummaryReportsRequest) (response *ListCallMeasureSummaryReportsResponse, err error) {
+	response = CreateListCallMeasureSummaryReportsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListCallMeasureSummaryReportsWithChan invokes the ccc.ListCallMeasureSummaryReports API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listcallmeasuresummaryreports.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListCallMeasureSummaryReportsWithChan(request *ListCallMeasureSummaryReportsRequest) (<-chan *ListCallMeasureSummaryReportsResponse, <-chan error) {
+	responseChan := make(chan *ListCallMeasureSummaryReportsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListCallMeasureSummaryReports(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListCallMeasureSummaryReportsWithCallback invokes the ccc.ListCallMeasureSummaryReports API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listcallmeasuresummaryreports.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListCallMeasureSummaryReportsWithCallback(request *ListCallMeasureSummaryReportsRequest, callback func(response *ListCallMeasureSummaryReportsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListCallMeasureSummaryReportsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListCallMeasureSummaryReports(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListCallMeasureSummaryReportsRequest is the request struct for api ListCallMeasureSummaryReports
+type ListCallMeasureSummaryReportsRequest struct {
+	*requests.RpcRequest
+	IntervalType string `position:"Query" name:"IntervalType"`
+}
+
+// ListCallMeasureSummaryReportsResponse is the response struct for api ListCallMeasureSummaryReports
+type ListCallMeasureSummaryReportsResponse struct {
+	*responses.BaseResponse
+	RequestId                    string                       `json:"RequestId" xml:"RequestId"`
+	Success                      bool                         `json:"Success" xml:"Success"`
+	Code                         string                       `json:"Code" xml:"Code"`
+	Message                      string                       `json:"Message" xml:"Message"`
+	HttpStatusCode               int                          `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	CallMeasureSummaryReportList CallMeasureSummaryReportList `json:"CallMeasureSummaryReportList" xml:"CallMeasureSummaryReportList"`
+}
+
+// CreateListCallMeasureSummaryReportsRequest creates a request to invoke ListCallMeasureSummaryReports API
+func CreateListCallMeasureSummaryReportsRequest() (request *ListCallMeasureSummaryReportsRequest) {
+	request = &ListCallMeasureSummaryReportsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListCallMeasureSummaryReports", "", "")
+	return
+}
+
+// CreateListCallMeasureSummaryReportsResponse creates a response to parse from ListCallMeasureSummaryReports response
+func CreateListCallMeasureSummaryReportsResponse() (response *ListCallMeasureSummaryReportsResponse) {
+	response = &ListCallMeasureSummaryReportsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/list_config.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// ListConfig invokes the ccc.ListConfig API synchronously
+// api document: https://help.aliyun.com/api/ccc/listconfig.html
+func (client *Client) ListConfig(request *ListConfigRequest) (response *ListConfigResponse, err error) {
+	response = CreateListConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListConfigWithChan invokes the ccc.ListConfig API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListConfigWithChan(request *ListConfigRequest) (<-chan *ListConfigResponse, <-chan error) {
+	responseChan := make(chan *ListConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListConfigWithCallback invokes the ccc.ListConfig API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListConfigWithCallback(request *ListConfigRequest, callback func(response *ListConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ListConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListConfigRequest is the request struct for api ListConfig
+type ListConfigRequest struct {
+	*requests.RpcRequest
+	InstanceId string    `position:"Query" name:"InstanceId"`
+	ConfigItem *[]string `position:"Query" name:"ConfigItem"  type:"Repeated"`
+}
+
+// ListConfigResponse is the response struct for api ListConfig
+type ListConfigResponse struct {
+	*responses.BaseResponse
+	RequestId      string      `json:"RequestId" xml:"RequestId"`
+	Success        bool        `json:"Success" xml:"Success"`
+	Code           string      `json:"Code" xml:"Code"`
+	Message        string      `json:"Message" xml:"Message"`
+	HttpStatusCode int         `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	ConfigItems    ConfigItems `json:"ConfigItems" xml:"ConfigItems"`
+}
+
+// CreateListConfigRequest creates a request to invoke ListConfig API
+func CreateListConfigRequest() (request *ListConfigRequest) {
+	request = &ListConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListConfig", "", "")
+	return
+}
+
+// CreateListConfigResponse creates a response to parse from ListConfig response
+func CreateListConfigResponse() (response *ListConfigResponse) {
+	response = &ListConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/ccc/list_instances_of_user.go

@@ -0,0 +1,107 @@
+package ccc
+
+//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"
+)
+
+// ListInstancesOfUser invokes the ccc.ListInstancesOfUser API synchronously
+// api document: https://help.aliyun.com/api/ccc/listinstancesofuser.html
+func (client *Client) ListInstancesOfUser(request *ListInstancesOfUserRequest) (response *ListInstancesOfUserResponse, err error) {
+	response = CreateListInstancesOfUserResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListInstancesOfUserWithChan invokes the ccc.ListInstancesOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listinstancesofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstancesOfUserWithChan(request *ListInstancesOfUserRequest) (<-chan *ListInstancesOfUserResponse, <-chan error) {
+	responseChan := make(chan *ListInstancesOfUserResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListInstancesOfUser(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListInstancesOfUserWithCallback invokes the ccc.ListInstancesOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listinstancesofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstancesOfUserWithCallback(request *ListInstancesOfUserRequest, callback func(response *ListInstancesOfUserResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListInstancesOfUserResponse
+		var err error
+		defer close(result)
+		response, err = client.ListInstancesOfUser(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListInstancesOfUserRequest is the request struct for api ListInstancesOfUser
+type ListInstancesOfUserRequest struct {
+	*requests.RpcRequest
+}
+
+// ListInstancesOfUserResponse is the response struct for api ListInstancesOfUser
+type ListInstancesOfUserResponse struct {
+	*responses.BaseResponse
+	RequestId      string    `json:"RequestId" xml:"RequestId"`
+	Success        bool      `json:"Success" xml:"Success"`
+	Code           string    `json:"Code" xml:"Code"`
+	Message        string    `json:"Message" xml:"Message"`
+	HttpStatusCode int       `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Instances      Instances `json:"Instances" xml:"Instances"`
+}
+
+// CreateListInstancesOfUserRequest creates a request to invoke ListInstancesOfUser API
+func CreateListInstancesOfUserRequest() (request *ListInstancesOfUserRequest) {
+	request = &ListInstancesOfUserRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListInstancesOfUser", "", "")
+	return
+}
+
+// CreateListInstancesOfUserResponse creates a response to parse from ListInstancesOfUser response
+func CreateListInstancesOfUserResponse() (response *ListInstancesOfUserResponse) {
+	response = &ListInstancesOfUserResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/list_ivr_tracking_detail.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// ListIvrTrackingDetail invokes the ccc.ListIvrTrackingDetail API synchronously
+// api document: https://help.aliyun.com/api/ccc/listivrtrackingdetail.html
+func (client *Client) ListIvrTrackingDetail(request *ListIvrTrackingDetailRequest) (response *ListIvrTrackingDetailResponse, err error) {
+	response = CreateListIvrTrackingDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListIvrTrackingDetailWithChan invokes the ccc.ListIvrTrackingDetail API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listivrtrackingdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListIvrTrackingDetailWithChan(request *ListIvrTrackingDetailRequest) (<-chan *ListIvrTrackingDetailResponse, <-chan error) {
+	responseChan := make(chan *ListIvrTrackingDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListIvrTrackingDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListIvrTrackingDetailWithCallback invokes the ccc.ListIvrTrackingDetail API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listivrtrackingdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListIvrTrackingDetailWithCallback(request *ListIvrTrackingDetailRequest, callback func(response *ListIvrTrackingDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListIvrTrackingDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.ListIvrTrackingDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListIvrTrackingDetailRequest is the request struct for api ListIvrTrackingDetail
+type ListIvrTrackingDetailRequest struct {
+	*requests.RpcRequest
+	CallingNumber string           `position:"Query" name:"CallingNumber"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	ContactId     string           `position:"Query" name:"ContactId"`
+	CalledNumber  string           `position:"Query" name:"CalledNumber"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	StopTime      requests.Integer `position:"Query" name:"StopTime"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListIvrTrackingDetailResponse is the response struct for api ListIvrTrackingDetail
+type ListIvrTrackingDetailResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	Success            bool               `json:"Success" xml:"Success"`
+	Code               string             `json:"Code" xml:"Code"`
+	Message            string             `json:"Message" xml:"Message"`
+	HttpStatusCode     int                `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	IvrTrackingDetails IvrTrackingDetails `json:"IvrTrackingDetails" xml:"IvrTrackingDetails"`
+}
+
+// CreateListIvrTrackingDetailRequest creates a request to invoke ListIvrTrackingDetail API
+func CreateListIvrTrackingDetailRequest() (request *ListIvrTrackingDetailRequest) {
+	request = &ListIvrTrackingDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListIvrTrackingDetail", "", "")
+	return
+}
+
+// CreateListIvrTrackingDetailResponse creates a response to parse from ListIvrTrackingDetail response
+func CreateListIvrTrackingDetailResponse() (response *ListIvrTrackingDetailResponse) {
+	response = &ListIvrTrackingDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/ccc/list_job_groups.go

@@ -0,0 +1,112 @@
+package ccc
+
+//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"
+)
+
+// ListJobGroups invokes the ccc.ListJobGroups API synchronously
+// api document: https://help.aliyun.com/api/ccc/listjobgroups.html
+func (client *Client) ListJobGroups(request *ListJobGroupsRequest) (response *ListJobGroupsResponse, err error) {
+	response = CreateListJobGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobGroupsWithChan invokes the ccc.ListJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobGroupsWithChan(request *ListJobGroupsRequest) (<-chan *ListJobGroupsResponse, <-chan error) {
+	responseChan := make(chan *ListJobGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobGroupsWithCallback invokes the ccc.ListJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobGroupsWithCallback(request *ListJobGroupsRequest, callback func(response *ListJobGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobGroupsRequest is the request struct for api ListJobGroups
+type ListJobGroupsRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	EndTime    requests.Integer `position:"Query" name:"EndTime"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListJobGroupsResponse is the response struct for api ListJobGroups
+type ListJobGroupsResponse struct {
+	*responses.BaseResponse
+	RequestId      string    `json:"RequestId" xml:"RequestId"`
+	Success        bool      `json:"Success" xml:"Success"`
+	Code           string    `json:"Code" xml:"Code"`
+	Message        string    `json:"Message" xml:"Message"`
+	HttpStatusCode int       `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroups      JobGroups `json:"JobGroups" xml:"JobGroups"`
+}
+
+// CreateListJobGroupsRequest creates a request to invoke ListJobGroups API
+func CreateListJobGroupsRequest() (request *ListJobGroupsRequest) {
+	request = &ListJobGroupsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListJobGroups", "", "")
+	return
+}
+
+// CreateListJobGroupsResponse creates a response to parse from ListJobGroups response
+func CreateListJobGroupsResponse() (response *ListJobGroupsResponse) {
+	response = &ListJobGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/ccc/list_job_status.go

@@ -0,0 +1,117 @@
+package ccc
+
+//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"
+)
+
+// ListJobStatus invokes the ccc.ListJobStatus API synchronously
+// api document: https://help.aliyun.com/api/ccc/listjobstatus.html
+func (client *Client) ListJobStatus(request *ListJobStatusRequest) (response *ListJobStatusResponse, err error) {
+	response = CreateListJobStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobStatusWithChan invokes the ccc.ListJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobStatusWithChan(request *ListJobStatusRequest) (<-chan *ListJobStatusResponse, <-chan error) {
+	responseChan := make(chan *ListJobStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobStatusWithCallback invokes the ccc.ListJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobStatusWithCallback(request *ListJobStatusRequest, callback func(response *ListJobStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobStatusRequest is the request struct for api ListJobStatus
+type ListJobStatusRequest struct {
+	*requests.RpcRequest
+	ContactName   string           `position:"Query" name:"ContactName"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	TimeAlignment string           `position:"Query" name:"TimeAlignment"`
+	GroupId       string           `position:"Query" name:"GroupId"`
+	PhoneNumber   string           `position:"Query" name:"PhoneNumber"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	ScenarioId    string           `position:"Query" name:"ScenarioId"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListJobStatusResponse is the response struct for api ListJobStatus
+type ListJobStatusResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Jobs           Jobs   `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateListJobStatusRequest creates a request to invoke ListJobStatus API
+func CreateListJobStatusRequest() (request *ListJobStatusRequest) {
+	request = &ListJobStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListJobStatus", "", "")
+	return
+}
+
+// CreateListJobStatusResponse creates a response to parse from ListJobStatus response
+func CreateListJobStatusResponse() (response *ListJobStatusResponse) {
+	response = &ListJobStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/list_jobs_by_group.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// ListJobsByGroup invokes the ccc.ListJobsByGroup API synchronously
+// api document: https://help.aliyun.com/api/ccc/listjobsbygroup.html
+func (client *Client) ListJobsByGroup(request *ListJobsByGroupRequest) (response *ListJobsByGroupResponse, err error) {
+	response = CreateListJobsByGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobsByGroupWithChan invokes the ccc.ListJobsByGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobsbygroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobsByGroupWithChan(request *ListJobsByGroupRequest) (<-chan *ListJobsByGroupResponse, <-chan error) {
+	responseChan := make(chan *ListJobsByGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobsByGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobsByGroupWithCallback invokes the ccc.ListJobsByGroup API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listjobsbygroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobsByGroupWithCallback(request *ListJobsByGroupRequest, callback func(response *ListJobsByGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobsByGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobsByGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobsByGroupRequest is the request struct for api ListJobsByGroup
+type ListJobsByGroupRequest struct {
+	*requests.RpcRequest
+	InstanceId       string           `position:"Query" name:"InstanceId"`
+	JobFailureReason string           `position:"Query" name:"JobFailureReason"`
+	JobStatus        string           `position:"Query" name:"JobStatus"`
+	JobGroupId       string           `position:"Query" name:"JobGroupId"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+	PageNumber       requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListJobsByGroupResponse is the response struct for api ListJobsByGroup
+type ListJobsByGroupResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Jobs           Jobs   `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateListJobsByGroupRequest creates a request to invoke ListJobsByGroup API
+func CreateListJobsByGroupRequest() (request *ListJobsByGroupRequest) {
+	request = &ListJobsByGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListJobsByGroup", "", "")
+	return
+}
+
+// CreateListJobsByGroupResponse creates a response to parse from ListJobsByGroup response
+func CreateListJobsByGroupResponse() (response *ListJobsByGroupResponse) {
+	response = &ListJobsByGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ccc/list_medias.go

@@ -0,0 +1,111 @@
+package ccc
+
+//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"
+)
+
+// ListMedias invokes the ccc.ListMedias API synchronously
+// api document: https://help.aliyun.com/api/ccc/listmedias.html
+func (client *Client) ListMedias(request *ListMediasRequest) (response *ListMediasResponse, err error) {
+	response = CreateListMediasResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListMediasWithChan invokes the ccc.ListMedias API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listmedias.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListMediasWithChan(request *ListMediasRequest) (<-chan *ListMediasResponse, <-chan error) {
+	responseChan := make(chan *ListMediasResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListMedias(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListMediasWithCallback invokes the ccc.ListMedias API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listmedias.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListMediasWithCallback(request *ListMediasRequest, callback func(response *ListMediasResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListMediasResponse
+		var err error
+		defer close(result)
+		response, err = client.ListMedias(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListMediasRequest is the request struct for api ListMedias
+type ListMediasRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	NamePrefix string           `position:"Query" name:"NamePrefix"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListMediasResponse is the response struct for api ListMedias
+type ListMediasResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Medias         Medias `json:"Medias" xml:"Medias"`
+}
+
+// CreateListMediasRequest creates a request to invoke ListMedias API
+func CreateListMediasRequest() (request *ListMediasRequest) {
+	request = &ListMediasRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListMedias", "", "")
+	return
+}
+
+// CreateListMediasResponse creates a response to parse from ListMedias response
+func CreateListMediasResponse() (response *ListMediasResponse) {
+	response = &ListMediasResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/list_outbound_phone_number_of_user.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// ListOutboundPhoneNumberOfUser invokes the ccc.ListOutboundPhoneNumberOfUser API synchronously
+// api document: https://help.aliyun.com/api/ccc/listoutboundphonenumberofuser.html
+func (client *Client) ListOutboundPhoneNumberOfUser(request *ListOutboundPhoneNumberOfUserRequest) (response *ListOutboundPhoneNumberOfUserResponse, err error) {
+	response = CreateListOutboundPhoneNumberOfUserResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListOutboundPhoneNumberOfUserWithChan invokes the ccc.ListOutboundPhoneNumberOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listoutboundphonenumberofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOutboundPhoneNumberOfUserWithChan(request *ListOutboundPhoneNumberOfUserRequest) (<-chan *ListOutboundPhoneNumberOfUserResponse, <-chan error) {
+	responseChan := make(chan *ListOutboundPhoneNumberOfUserResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListOutboundPhoneNumberOfUser(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListOutboundPhoneNumberOfUserWithCallback invokes the ccc.ListOutboundPhoneNumberOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listoutboundphonenumberofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOutboundPhoneNumberOfUserWithCallback(request *ListOutboundPhoneNumberOfUserRequest, callback func(response *ListOutboundPhoneNumberOfUserResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListOutboundPhoneNumberOfUserResponse
+		var err error
+		defer close(result)
+		response, err = client.ListOutboundPhoneNumberOfUser(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListOutboundPhoneNumberOfUserRequest is the request struct for api ListOutboundPhoneNumberOfUser
+type ListOutboundPhoneNumberOfUserRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	UserId     string `position:"Query" name:"UserId"`
+}
+
+// ListOutboundPhoneNumberOfUserResponse is the response struct for api ListOutboundPhoneNumberOfUser
+type ListOutboundPhoneNumberOfUserResponse struct {
+	*responses.BaseResponse
+	RequestId            string                                              `json:"RequestId" xml:"RequestId"`
+	Success              bool                                                `json:"Success" xml:"Success"`
+	Code                 string                                              `json:"Code" xml:"Code"`
+	Message              string                                              `json:"Message" xml:"Message"`
+	HttpStatusCode       int                                                 `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	OutboundPhoneNumbers OutboundPhoneNumbersInListOutboundPhoneNumberOfUser `json:"OutboundPhoneNumbers" xml:"OutboundPhoneNumbers"`
+}
+
+// CreateListOutboundPhoneNumberOfUserRequest creates a request to invoke ListOutboundPhoneNumberOfUser API
+func CreateListOutboundPhoneNumberOfUserRequest() (request *ListOutboundPhoneNumberOfUserRequest) {
+	request = &ListOutboundPhoneNumberOfUserRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListOutboundPhoneNumberOfUser", "", "")
+	return
+}
+
+// CreateListOutboundPhoneNumberOfUserResponse creates a response to parse from ListOutboundPhoneNumberOfUser response
+func CreateListOutboundPhoneNumberOfUserResponse() (response *ListOutboundPhoneNumberOfUserResponse) {
+	response = &ListOutboundPhoneNumberOfUserResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/ccc/list_phone_numbers.go

@@ -76,8 +76,8 @@ func (client *Client) ListPhoneNumbersWithCallback(request *ListPhoneNumbersRequ
 // ListPhoneNumbersRequest is the request struct for api ListPhoneNumbers
 type ListPhoneNumbersRequest struct {
 	*requests.RpcRequest
-	InstanceId   string           `position:"Query" name:"InstanceId"`
 	OutboundOnly requests.Boolean `position:"Query" name:"OutboundOnly"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
 }
 
 // ListPhoneNumbersResponse is the response struct for api ListPhoneNumbers

+ 115 - 0
services/ccc/list_predictive_job_groups.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// ListPredictiveJobGroups invokes the ccc.ListPredictiveJobGroups API synchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobgroups.html
+func (client *Client) ListPredictiveJobGroups(request *ListPredictiveJobGroupsRequest) (response *ListPredictiveJobGroupsResponse, err error) {
+	response = CreateListPredictiveJobGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPredictiveJobGroupsWithChan invokes the ccc.ListPredictiveJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPredictiveJobGroupsWithChan(request *ListPredictiveJobGroupsRequest) (<-chan *ListPredictiveJobGroupsResponse, <-chan error) {
+	responseChan := make(chan *ListPredictiveJobGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPredictiveJobGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPredictiveJobGroupsWithCallback invokes the ccc.ListPredictiveJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobgroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPredictiveJobGroupsWithCallback(request *ListPredictiveJobGroupsRequest, callback func(response *ListPredictiveJobGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPredictiveJobGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPredictiveJobGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPredictiveJobGroupsRequest is the request struct for api ListPredictiveJobGroups
+type ListPredictiveJobGroupsRequest struct {
+	*requests.RpcRequest
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	Criteria     string           `position:"Query" name:"Criteria"`
+	SkillGroupId string           `position:"Query" name:"SkillGroupId"`
+	Name         string           `position:"Query" name:"Name"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	EndTime      requests.Integer `position:"Query" name:"EndTime"`
+	StartTime    requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListPredictiveJobGroupsResponse is the response struct for api ListPredictiveJobGroups
+type ListPredictiveJobGroupsResponse struct {
+	*responses.BaseResponse
+	RequestId      string    `json:"RequestId" xml:"RequestId"`
+	Success        bool      `json:"Success" xml:"Success"`
+	Code           string    `json:"Code" xml:"Code"`
+	Message        string    `json:"Message" xml:"Message"`
+	HttpStatusCode int       `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	JobGroups      JobGroups `json:"JobGroups" xml:"JobGroups"`
+}
+
+// CreateListPredictiveJobGroupsRequest creates a request to invoke ListPredictiveJobGroups API
+func CreateListPredictiveJobGroupsRequest() (request *ListPredictiveJobGroupsRequest) {
+	request = &ListPredictiveJobGroupsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListPredictiveJobGroups", "", "")
+	return
+}
+
+// CreateListPredictiveJobGroupsResponse creates a response to parse from ListPredictiveJobGroups response
+func CreateListPredictiveJobGroupsResponse() (response *ListPredictiveJobGroupsResponse) {
+	response = &ListPredictiveJobGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ccc/list_predictive_job_status.go

@@ -0,0 +1,116 @@
+package ccc
+
+//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"
+)
+
+// ListPredictiveJobStatus invokes the ccc.ListPredictiveJobStatus API synchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobstatus.html
+func (client *Client) ListPredictiveJobStatus(request *ListPredictiveJobStatusRequest) (response *ListPredictiveJobStatusResponse, err error) {
+	response = CreateListPredictiveJobStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPredictiveJobStatusWithChan invokes the ccc.ListPredictiveJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPredictiveJobStatusWithChan(request *ListPredictiveJobStatusRequest) (<-chan *ListPredictiveJobStatusResponse, <-chan error) {
+	responseChan := make(chan *ListPredictiveJobStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPredictiveJobStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPredictiveJobStatusWithCallback invokes the ccc.ListPredictiveJobStatus API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listpredictivejobstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPredictiveJobStatusWithCallback(request *ListPredictiveJobStatusRequest, callback func(response *ListPredictiveJobStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPredictiveJobStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPredictiveJobStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPredictiveJobStatusRequest is the request struct for api ListPredictiveJobStatus
+type ListPredictiveJobStatusRequest struct {
+	*requests.RpcRequest
+	ContactName   string           `position:"Query" name:"ContactName"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	TimeAlignment string           `position:"Query" name:"TimeAlignment"`
+	JobGroupId    string           `position:"Query" name:"JobGroupId"`
+	PhoneNumber   string           `position:"Query" name:"PhoneNumber"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListPredictiveJobStatusResponse is the response struct for api ListPredictiveJobStatus
+type ListPredictiveJobStatusResponse struct {
+	*responses.BaseResponse
+	RequestId      string `json:"RequestId" xml:"RequestId"`
+	Success        bool   `json:"Success" xml:"Success"`
+	Code           string `json:"Code" xml:"Code"`
+	Message        string `json:"Message" xml:"Message"`
+	HttpStatusCode int    `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Jobs           Jobs   `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateListPredictiveJobStatusRequest creates a request to invoke ListPredictiveJobStatus API
+func CreateListPredictiveJobStatusRequest() (request *ListPredictiveJobStatusRequest) {
+	request = &ListPredictiveJobStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListPredictiveJobStatus", "", "")
+	return
+}
+
+// CreateListPredictiveJobStatusResponse creates a response to parse from ListPredictiveJobStatus response
+func CreateListPredictiveJobStatusResponse() (response *ListPredictiveJobStatusResponse) {
+	response = &ListPredictiveJobStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ccc/list_privacy_number_call_details.go

@@ -0,0 +1,115 @@
+package ccc
+
+//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"
+)
+
+// ListPrivacyNumberCallDetails invokes the ccc.ListPrivacyNumberCallDetails API synchronously
+// api document: https://help.aliyun.com/api/ccc/listprivacynumbercalldetails.html
+func (client *Client) ListPrivacyNumberCallDetails(request *ListPrivacyNumberCallDetailsRequest) (response *ListPrivacyNumberCallDetailsResponse, err error) {
+	response = CreateListPrivacyNumberCallDetailsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPrivacyNumberCallDetailsWithChan invokes the ccc.ListPrivacyNumberCallDetails API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listprivacynumbercalldetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPrivacyNumberCallDetailsWithChan(request *ListPrivacyNumberCallDetailsRequest) (<-chan *ListPrivacyNumberCallDetailsResponse, <-chan error) {
+	responseChan := make(chan *ListPrivacyNumberCallDetailsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPrivacyNumberCallDetails(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPrivacyNumberCallDetailsWithCallback invokes the ccc.ListPrivacyNumberCallDetails API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listprivacynumbercalldetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPrivacyNumberCallDetailsWithCallback(request *ListPrivacyNumberCallDetailsRequest, callback func(response *ListPrivacyNumberCallDetailsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPrivacyNumberCallDetailsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPrivacyNumberCallDetails(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPrivacyNumberCallDetailsRequest is the request struct for api ListPrivacyNumberCallDetails
+type ListPrivacyNumberCallDetailsRequest struct {
+	*requests.RpcRequest
+	AgentId    string           `position:"Query" name:"AgentId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	ContactId  string           `position:"Query" name:"ContactId"`
+	AgentName  string           `position:"Query" name:"AgentName"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	EndTime    requests.Integer `position:"Query" name:"EndTime"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListPrivacyNumberCallDetailsResponse is the response struct for api ListPrivacyNumberCallDetails
+type ListPrivacyNumberCallDetailsResponse struct {
+	*responses.BaseResponse
+	RequestId                string                   `json:"RequestId" xml:"RequestId"`
+	Success                  bool                     `json:"Success" xml:"Success"`
+	Code                     string                   `json:"Code" xml:"Code"`
+	Message                  string                   `json:"Message" xml:"Message"`
+	HttpStatusCode           int                      `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	PrivacyNumberCallDetails PrivacyNumberCallDetails `json:"PrivacyNumberCallDetails" xml:"PrivacyNumberCallDetails"`
+}
+
+// CreateListPrivacyNumberCallDetailsRequest creates a request to invoke ListPrivacyNumberCallDetails API
+func CreateListPrivacyNumberCallDetailsRequest() (request *ListPrivacyNumberCallDetailsRequest) {
+	request = &ListPrivacyNumberCallDetailsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListPrivacyNumberCallDetails", "", "")
+	return
+}
+
+// CreateListPrivacyNumberCallDetailsResponse creates a response to parse from ListPrivacyNumberCallDetails response
+func CreateListPrivacyNumberCallDetailsResponse() (response *ListPrivacyNumberCallDetailsResponse) {
+	response = &ListPrivacyNumberCallDetailsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/ccc/list_privileges_of_user.go

@@ -0,0 +1,109 @@
+package ccc
+
+//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"
+)
+
+// ListPrivilegesOfUser invokes the ccc.ListPrivilegesOfUser API synchronously
+// api document: https://help.aliyun.com/api/ccc/listprivilegesofuser.html
+func (client *Client) ListPrivilegesOfUser(request *ListPrivilegesOfUserRequest) (response *ListPrivilegesOfUserResponse, err error) {
+	response = CreateListPrivilegesOfUserResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListPrivilegesOfUserWithChan invokes the ccc.ListPrivilegesOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listprivilegesofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPrivilegesOfUserWithChan(request *ListPrivilegesOfUserRequest) (<-chan *ListPrivilegesOfUserResponse, <-chan error) {
+	responseChan := make(chan *ListPrivilegesOfUserResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListPrivilegesOfUser(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListPrivilegesOfUserWithCallback invokes the ccc.ListPrivilegesOfUser API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listprivilegesofuser.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListPrivilegesOfUserWithCallback(request *ListPrivilegesOfUserRequest, callback func(response *ListPrivilegesOfUserResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListPrivilegesOfUserResponse
+		var err error
+		defer close(result)
+		response, err = client.ListPrivilegesOfUser(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListPrivilegesOfUserRequest is the request struct for api ListPrivilegesOfUser
+type ListPrivilegesOfUserRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	UserId     string `position:"Query" name:"UserId"`
+}
+
+// ListPrivilegesOfUserResponse is the response struct for api ListPrivilegesOfUser
+type ListPrivilegesOfUserResponse struct {
+	*responses.BaseResponse
+	RequestId      string                           `json:"RequestId" xml:"RequestId"`
+	Success        bool                             `json:"Success" xml:"Success"`
+	Code           string                           `json:"Code" xml:"Code"`
+	Message        string                           `json:"Message" xml:"Message"`
+	HttpStatusCode int                              `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Privileges     PrivilegesInListPrivilegesOfUser `json:"Privileges" xml:"Privileges"`
+}
+
+// CreateListPrivilegesOfUserRequest creates a request to invoke ListPrivilegesOfUser API
+func CreateListPrivilegesOfUserRequest() (request *ListPrivilegesOfUserRequest) {
+	request = &ListPrivilegesOfUserRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListPrivilegesOfUser", "", "")
+	return
+}
+
+// CreateListPrivilegesOfUserResponse creates a response to parse from ListPrivilegesOfUser response
+func CreateListPrivilegesOfUserResponse() (response *ListPrivilegesOfUserResponse) {
+	response = &ListPrivilegesOfUserResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/ccc/list_real_time_agent.go

@@ -0,0 +1,108 @@
+package ccc
+
+//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"
+)
+
+// ListRealTimeAgent invokes the ccc.ListRealTimeAgent API synchronously
+// api document: https://help.aliyun.com/api/ccc/listrealtimeagent.html
+func (client *Client) ListRealTimeAgent(request *ListRealTimeAgentRequest) (response *ListRealTimeAgentResponse, err error) {
+	response = CreateListRealTimeAgentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListRealTimeAgentWithChan invokes the ccc.ListRealTimeAgent API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrealtimeagent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRealTimeAgentWithChan(request *ListRealTimeAgentRequest) (<-chan *ListRealTimeAgentResponse, <-chan error) {
+	responseChan := make(chan *ListRealTimeAgentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListRealTimeAgent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListRealTimeAgentWithCallback invokes the ccc.ListRealTimeAgent API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrealtimeagent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRealTimeAgentWithCallback(request *ListRealTimeAgentRequest, callback func(response *ListRealTimeAgentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListRealTimeAgentResponse
+		var err error
+		defer close(result)
+		response, err = client.ListRealTimeAgent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListRealTimeAgentRequest is the request struct for api ListRealTimeAgent
+type ListRealTimeAgentRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// ListRealTimeAgentResponse is the response struct for api ListRealTimeAgent
+type ListRealTimeAgentResponse struct {
+	*responses.BaseResponse
+	RequestId      string                  `json:"RequestId" xml:"RequestId"`
+	Success        bool                    `json:"Success" xml:"Success"`
+	Code           string                  `json:"Code" xml:"Code"`
+	Message        string                  `json:"Message" xml:"Message"`
+	HttpStatusCode int                     `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Data           DataInListRealTimeAgent `json:"Data" xml:"Data"`
+}
+
+// CreateListRealTimeAgentRequest creates a request to invoke ListRealTimeAgent API
+func CreateListRealTimeAgentRequest() (request *ListRealTimeAgentRequest) {
+	request = &ListRealTimeAgentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListRealTimeAgent", "", "")
+	return
+}
+
+// CreateListRealTimeAgentResponse creates a response to parse from ListRealTimeAgent response
+func CreateListRealTimeAgentResponse() (response *ListRealTimeAgentResponse) {
+	response = &ListRealTimeAgentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ccc/list_recent_call_records.go

@@ -0,0 +1,113 @@
+package ccc
+
+//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"
+)
+
+// ListRecentCallRecords invokes the ccc.ListRecentCallRecords API synchronously
+// api document: https://help.aliyun.com/api/ccc/listrecentcallrecords.html
+func (client *Client) ListRecentCallRecords(request *ListRecentCallRecordsRequest) (response *ListRecentCallRecordsResponse, err error) {
+	response = CreateListRecentCallRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListRecentCallRecordsWithChan invokes the ccc.ListRecentCallRecords API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrecentcallrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRecentCallRecordsWithChan(request *ListRecentCallRecordsRequest) (<-chan *ListRecentCallRecordsResponse, <-chan error) {
+	responseChan := make(chan *ListRecentCallRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListRecentCallRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListRecentCallRecordsWithCallback invokes the ccc.ListRecentCallRecords API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrecentcallrecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRecentCallRecordsWithCallback(request *ListRecentCallRecordsRequest, callback func(response *ListRecentCallRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListRecentCallRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListRecentCallRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListRecentCallRecordsRequest is the request struct for api ListRecentCallRecords
+type ListRecentCallRecordsRequest struct {
+	*requests.RpcRequest
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	Criteria   string           `position:"Query" name:"Criteria"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	StopTime   requests.Integer `position:"Query" name:"StopTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListRecentCallRecordsResponse is the response struct for api ListRecentCallRecords
+type ListRecentCallRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId         string            `json:"RequestId" xml:"RequestId"`
+	Success           bool              `json:"Success" xml:"Success"`
+	Code              string            `json:"Code" xml:"Code"`
+	Message           string            `json:"Message" xml:"Message"`
+	HttpStatusCode    int               `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	CallDetailRecords CallDetailRecords `json:"CallDetailRecords" xml:"CallDetailRecords"`
+}
+
+// CreateListRecentCallRecordsRequest creates a request to invoke ListRecentCallRecords API
+func CreateListRecentCallRecordsRequest() (request *ListRecentCallRecordsRequest) {
+	request = &ListRecentCallRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListRecentCallRecords", "", "")
+	return
+}
+
+// CreateListRecentCallRecordsResponse creates a response to parse from ListRecentCallRecords response
+func CreateListRecentCallRecordsResponse() (response *ListRecentCallRecordsResponse) {
+	response = &ListRecentCallRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ccc/list_recording_of_dual_track.go

@@ -0,0 +1,116 @@
+package ccc
+
+//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"
+)
+
+// ListRecordingOfDualTrack invokes the ccc.ListRecordingOfDualTrack API synchronously
+// api document: https://help.aliyun.com/api/ccc/listrecordingofdualtrack.html
+func (client *Client) ListRecordingOfDualTrack(request *ListRecordingOfDualTrackRequest) (response *ListRecordingOfDualTrackResponse, err error) {
+	response = CreateListRecordingOfDualTrackResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListRecordingOfDualTrackWithChan invokes the ccc.ListRecordingOfDualTrack API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrecordingofdualtrack.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRecordingOfDualTrackWithChan(request *ListRecordingOfDualTrackRequest) (<-chan *ListRecordingOfDualTrackResponse, <-chan error) {
+	responseChan := make(chan *ListRecordingOfDualTrackResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListRecordingOfDualTrack(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListRecordingOfDualTrackWithCallback invokes the ccc.ListRecordingOfDualTrack API asynchronously
+// api document: https://help.aliyun.com/api/ccc/listrecordingofdualtrack.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListRecordingOfDualTrackWithCallback(request *ListRecordingOfDualTrackRequest, callback func(response *ListRecordingOfDualTrackResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListRecordingOfDualTrackResponse
+		var err error
+		defer close(result)
+		response, err = client.ListRecordingOfDualTrack(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListRecordingOfDualTrackRequest is the request struct for api ListRecordingOfDualTrack
+type ListRecordingOfDualTrackRequest struct {
+	*requests.RpcRequest
+	CallingNumber string           `position:"Query" name:"CallingNumber"`
+	AgentId       string           `position:"Query" name:"AgentId"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	CalledNumber  string           `position:"Query" name:"CalledNumber"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	StopTime      requests.Integer `position:"Query" name:"StopTime"`
+	ConnectId     string           `position:"Query" name:"ConnectId"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// ListRecordingOfDualTrackResponse is the response struct for api ListRecordingOfDualTrack
+type ListRecordingOfDualTrackResponse struct {
+	*responses.BaseResponse
+	RequestId      string     `json:"RequestId" xml:"RequestId"`
+	Success        bool       `json:"Success" xml:"Success"`
+	Code           string     `json:"Code" xml:"Code"`
+	Message        string     `json:"Message" xml:"Message"`
+	HttpStatusCode int        `json:"HttpStatusCode" xml:"HttpStatusCode"`
+	Recordings     Recordings `json:"Recordings" xml:"Recordings"`
+}
+
+// CreateListRecordingOfDualTrackRequest creates a request to invoke ListRecordingOfDualTrack API
+func CreateListRecordingOfDualTrackRequest() (request *ListRecordingOfDualTrackRequest) {
+	request = &ListRecordingOfDualTrackRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("CCC", "2017-07-05", "ListRecordingOfDualTrack", "", "")
+	return
+}
+
+// CreateListRecordingOfDualTrackResponse creates a response to parse from ListRecordingOfDualTrack response
+func CreateListRecordingOfDualTrackResponse() (response *ListRecordingOfDualTrackResponse) {
+	response = &ListRecordingOfDualTrackResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 5 - 5
services/ccc/list_recordings.go

@@ -76,14 +76,14 @@ func (client *Client) ListRecordingsWithCallback(request *ListRecordingsRequest,
 // ListRecordingsRequest is the request struct for api ListRecordings
 type ListRecordingsRequest struct {
 	*requests.RpcRequest
-	InstanceId  string           `position:"Query" name:"InstanceId"`
-	StartTime   requests.Integer `position:"Query" name:"StartTime"`
-	StopTime    requests.Integer `position:"Query" name:"StopTime"`
-	PhoneNumber string           `position:"Query" name:"PhoneNumber"`
 	AgentId     string           `position:"Query" name:"AgentId"`
+	InstanceId  string           `position:"Query" name:"InstanceId"`
 	Criteria    string           `position:"Query" name:"Criteria"`
-	PageNumber  requests.Integer `position:"Query" name:"PageNumber"`
+	PhoneNumber string           `position:"Query" name:"PhoneNumber"`
 	PageSize    requests.Integer `position:"Query" name:"PageSize"`
+	StopTime    requests.Integer `position:"Query" name:"StopTime"`
+	StartTime   requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber  requests.Integer `position:"Query" name:"PageNumber"`
 }
 
 // ListRecordingsResponse is the response struct for api ListRecordings

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels