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

Generated 2019-12-26 for OutboundBot.

sdk-team 6 лет назад
Родитель
Сommit
42ba4356f2
100 измененных файлов с 9310 добавлено и 0 удалено
  1. 4 0
      ChangeLog.txt
  2. 112 0
      services/outboundbot/assign_jobs.go
  3. 112 0
      services/outboundbot/cancel_jobs.go
  4. 129 0
      services/outboundbot/client.go
  5. 116 0
      services/outboundbot/create_batch_jobs.go
  6. 111 0
      services/outboundbot/create_dialogue_flow.go
  7. 113 0
      services/outboundbot/create_global_question.go
  8. 111 0
      services/outboundbot/create_instance.go
  9. 113 0
      services/outboundbot/create_intent.go
  10. 114 0
      services/outboundbot/create_job_group.go
  11. 111 0
      services/outboundbot/create_outbound_call_number.go
  12. 112 0
      services/outboundbot/create_script.go
  13. 112 0
      services/outboundbot/create_script_waveform.go
  14. 111 0
      services/outboundbot/create_tag.go
  15. 109 0
      services/outboundbot/delete_dialogue_flow.go
  16. 109 0
      services/outboundbot/delete_global_question.go
  17. 107 0
      services/outboundbot/delete_instance.go
  18. 109 0
      services/outboundbot/delete_intent.go
  19. 108 0
      services/outboundbot/delete_job_group.go
  20. 108 0
      services/outboundbot/delete_outbound_call_number.go
  21. 108 0
      services/outboundbot/delete_script.go
  22. 109 0
      services/outboundbot/delete_script_waveform.go
  23. 110 0
      services/outboundbot/describe_global_question.go
  24. 108 0
      services/outboundbot/describe_instance.go
  25. 110 0
      services/outboundbot/describe_intent.go
  26. 109 0
      services/outboundbot/describe_job.go
  27. 110 0
      services/outboundbot/describe_job_group.go
  28. 109 0
      services/outboundbot/describe_script.go
  29. 110 0
      services/outboundbot/describe_script_voice_config.go
  30. 109 0
      services/outboundbot/describe_tts_config.go
  31. 118 0
      services/outboundbot/dialogue.go
  32. 109 0
      services/outboundbot/download_basic_statistics_report.go
  33. 109 0
      services/outboundbot/download_conversation_details.go
  34. 109 0
      services/outboundbot/download_recording.go
  35. 109 0
      services/outboundbot/download_unreachable_contacts.go
  36. 110 0
      services/outboundbot/duplicate_script.go
  37. 20 0
      services/outboundbot/endpoint.go
  38. 109 0
      services/outboundbot/export_script.go
  39. 109 0
      services/outboundbot/generate_basic_statistics_report.go
  40. 109 0
      services/outboundbot/generate_overall_statistics_report.go
  41. 110 0
      services/outboundbot/get_job_by_phone_number.go
  42. 109 0
      services/outboundbot/get_job_status_by_call_id.go
  43. 110 0
      services/outboundbot/get_tag_hits_summary.go
  44. 109 0
      services/outboundbot/import_script.go
  45. 112 0
      services/outboundbot/list_basic_statistics_report_sub_items.go
  46. 110 0
      services/outboundbot/list_conversations_with_unrecognized_intents.go
  47. 109 0
      services/outboundbot/list_dialogue_flows.go
  48. 111 0
      services/outboundbot/list_global_questions.go
  49. 107 0
      services/outboundbot/list_instances.go
  50. 112 0
      services/outboundbot/list_intents.go
  51. 112 0
      services/outboundbot/list_job_groups.go
  52. 112 0
      services/outboundbot/list_job_groups_with_scenario.go
  53. 109 0
      services/outboundbot/list_jobs.go
  54. 113 0
      services/outboundbot/list_jobs_by_group.go
  55. 114 0
      services/outboundbot/list_medias.go
  56. 110 0
      services/outboundbot/list_outbound_call_numbers.go
  57. 111 0
      services/outboundbot/list_script_publish_histories.go
  58. 111 0
      services/outboundbot/list_script_voice_configs.go
  59. 110 0
      services/outboundbot/list_scripts.go
  60. 110 0
      services/outboundbot/list_tags.go
  61. 111 0
      services/outboundbot/list_unreachable_contacts.go
  62. 111 0
      services/outboundbot/list_unrecognized_intents.go
  63. 117 0
      services/outboundbot/modify_batch_jobs.go
  64. 112 0
      services/outboundbot/modify_dialogue_flow.go
  65. 114 0
      services/outboundbot/modify_global_question.go
  66. 112 0
      services/outboundbot/modify_instance.go
  67. 114 0
      services/outboundbot/modify_intent.go
  68. 115 0
      services/outboundbot/modify_job_group.go
  69. 112 0
      services/outboundbot/modify_outbound_call_number.go
  70. 113 0
      services/outboundbot/modify_script.go
  71. 112 0
      services/outboundbot/modify_script_voice_config.go
  72. 112 0
      services/outboundbot/modify_tag_groups.go
  73. 112 0
      services/outboundbot/modify_tts_config.go
  74. 109 0
      services/outboundbot/publish_script.go
  75. 108 0
      services/outboundbot/publish_script_for_debug.go
  76. 117 0
      services/outboundbot/query_jobs.go
  77. 110 0
      services/outboundbot/query_script_waveforms.go
  78. 111 0
      services/outboundbot/query_scripts_by_status.go
  79. 113 0
      services/outboundbot/record_failure.go
  80. 112 0
      services/outboundbot/resume_jobs.go
  81. 109 0
      services/outboundbot/rollback_script.go
  82. 113 0
      services/outboundbot/start_job.go
  83. 21 0
      services/outboundbot/struct_basic_statistics_report.go
  84. 24 0
      services/outboundbot/struct_basic_statistics_report_item.go
  85. 26 0
      services/outboundbot/struct_basic_statistics_report_sub_item.go
  86. 24 0
      services/outboundbot/struct_basic_statistics_report_sub_items.go
  87. 28 0
      services/outboundbot/struct_batch_job.go
  88. 21 0
      services/outboundbot/struct_briefs_in_describe_job_group.go
  89. 21 0
      services/outboundbot/struct_briefs_in_generate_overall_statistics_report.go
  90. 21 0
      services/outboundbot/struct_calling_numbers_in_create_batch_jobs.go
  91. 21 0
      services/outboundbot/struct_calling_numbers_in_create_job_group.go
  92. 21 0
      services/outboundbot/struct_calling_numbers_in_describe_job.go
  93. 21 0
      services/outboundbot/struct_calling_numbers_in_describe_job_group.go
  94. 21 0
      services/outboundbot/struct_calling_numbers_in_get_job_by_phone_number.go
  95. 21 0
      services/outboundbot/struct_calling_numbers_in_get_job_status_by_call_id.go
  96. 21 0
      services/outboundbot/struct_calling_numbers_in_list_job_groups_with_scenario.go
  97. 21 0
      services/outboundbot/struct_calling_numbers_in_list_jobs.go
  98. 21 0
      services/outboundbot/struct_calling_numbers_in_list_jobs_by_group.go
  99. 21 0
      services/outboundbot/struct_calling_numbers_in_modify_batch_jobs.go
  100. 21 0
      services/outboundbot/struct_calling_numbers_in_modify_job_group.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2020-02-24 Version: v1.60.388
+- Generated 2019-12-26 for `OutboundBot`.
+
+
 2020-02-21 Version: v1.60.387
 - Generated 2019-09-10 for `waf-openapi`.
 

+ 112 - 0
services/outboundbot/assign_jobs.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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 outboundbot.AssignJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/assignjobs.html
+func (client *Client) AssignJobs(request *AssignJobsRequest) (response *AssignJobsResponse, err error) {
+	response = CreateAssignJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AssignJobsWithChan invokes the outboundbot.AssignJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.AssignJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	JobsJson      *[]string `position:"Query" name:"JobsJson"  type:"Repeated"`
+	CallingNumber *[]string `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	StrategyJson  string    `position:"Query" name:"StrategyJson"`
+	JobGroupId    string    `position:"Query" name:"JobGroupId"`
+}
+
+// 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"`
+	JobGroupId     string `json:"JobGroupId" xml:"JobGroupId"`
+}
+
+// CreateAssignJobsRequest creates a request to invoke AssignJobs API
+func CreateAssignJobsRequest() (request *AssignJobsRequest) {
+	request = &AssignJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "AssignJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateAssignJobsResponse creates a response to parse from AssignJobs response
+func CreateAssignJobsResponse() (response *AssignJobsResponse) {
+	response = &AssignJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/cancel_jobs.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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 outboundbot.CancelJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/canceljobs.html
+func (client *Client) CancelJobs(request *CancelJobsRequest) (response *CancelJobsResponse, err error) {
+	response = CreateCancelJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelJobsWithChan invokes the outboundbot.CancelJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.CancelJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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"`
+	JobReferenceId *[]string        `position:"Query" name:"JobReferenceId"  type:"Repeated"`
+	JobId          *[]string        `position:"Query" name:"JobId"  type:"Repeated"`
+	InstanceId     string           `position:"Query" name:"InstanceId"`
+	JobGroupId     string           `position:"Query" name:"JobGroupId"`
+	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("OutboundBot", "2019-12-26", "CancelJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCancelJobsResponse creates a response to parse from CancelJobs response
+func CreateCancelJobsResponse() (response *CancelJobsResponse) {
+	response = &CancelJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 129 - 0
services/outboundbot/client.go

@@ -0,0 +1,129 @@
+package outboundbot
+
+//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 (
+	"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
+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
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// 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://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://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://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
+// 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
+}

+ 116 - 0
services/outboundbot/create_batch_jobs.go

@@ -0,0 +1,116 @@
+package outboundbot
+
+//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 outboundbot.CreateBatchJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createbatchjobs.html
+func (client *Client) CreateBatchJobs(request *CreateBatchJobsRequest) (response *CreateBatchJobsResponse, err error) {
+	response = CreateCreateBatchJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateBatchJobsWithChan invokes the outboundbot.CreateBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.CreateBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	JobFilePath         string           `position:"Query" name:"JobFilePath"`
+	ScriptId            string           `position:"Query" name:"ScriptId"`
+	CallingNumber       *[]string        `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId          string           `position:"Query" name:"InstanceId"`
+	Submitted           requests.Boolean `position:"Query" name:"Submitted"`
+	BatchJobName        string           `position:"Query" name:"BatchJobName"`
+	StrategyJson        string           `position:"Query" name:"StrategyJson"`
+	BatchJobDescription string           `position:"Query" name:"BatchJobDescription"`
+	ScenarioId          string           `position:"Query" name:"ScenarioId"`
+}
+
+// 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"`
+	BatchJob       BatchJob `json:"BatchJob" xml:"BatchJob"`
+}
+
+// CreateCreateBatchJobsRequest creates a request to invoke CreateBatchJobs API
+func CreateCreateBatchJobsRequest() (request *CreateBatchJobsRequest) {
+	request = &CreateBatchJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateBatchJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateBatchJobsResponse creates a response to parse from CreateBatchJobs response
+func CreateCreateBatchJobsResponse() (response *CreateBatchJobsResponse) {
+	response = &CreateBatchJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/create_dialogue_flow.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// CreateDialogueFlow invokes the outboundbot.CreateDialogueFlow API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createdialogueflow.html
+func (client *Client) CreateDialogueFlow(request *CreateDialogueFlowRequest) (response *CreateDialogueFlowResponse, err error) {
+	response = CreateCreateDialogueFlowResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDialogueFlowWithChan invokes the outboundbot.CreateDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createdialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDialogueFlowWithChan(request *CreateDialogueFlowRequest) (<-chan *CreateDialogueFlowResponse, <-chan error) {
+	responseChan := make(chan *CreateDialogueFlowResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDialogueFlow(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDialogueFlowWithCallback invokes the outboundbot.CreateDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createdialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDialogueFlowWithCallback(request *CreateDialogueFlowRequest, callback func(response *CreateDialogueFlowResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDialogueFlowResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDialogueFlow(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDialogueFlowRequest is the request struct for api CreateDialogueFlow
+type CreateDialogueFlowRequest struct {
+	*requests.RpcRequest
+	DialogueFlowType string `position:"Query" name:"DialogueFlowType"`
+	DialogueName     string `position:"Query" name:"DialogueName"`
+	ScriptId         string `position:"Query" name:"ScriptId"`
+	InstanceId       string `position:"Query" name:"InstanceId"`
+}
+
+// CreateDialogueFlowResponse is the response struct for api CreateDialogueFlow
+type CreateDialogueFlowResponse 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"`
+	DialogueFlowId string `json:"DialogueFlowId" xml:"DialogueFlowId"`
+}
+
+// CreateCreateDialogueFlowRequest creates a request to invoke CreateDialogueFlow API
+func CreateCreateDialogueFlowRequest() (request *CreateDialogueFlowRequest) {
+	request = &CreateDialogueFlowRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateDialogueFlow", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateDialogueFlowResponse creates a response to parse from CreateDialogueFlow response
+func CreateCreateDialogueFlowResponse() (response *CreateDialogueFlowResponse) {
+	response = &CreateDialogueFlowResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/create_global_question.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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"
+)
+
+// CreateGlobalQuestion invokes the outboundbot.CreateGlobalQuestion API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createglobalquestion.html
+func (client *Client) CreateGlobalQuestion(request *CreateGlobalQuestionRequest) (response *CreateGlobalQuestionResponse, err error) {
+	response = CreateCreateGlobalQuestionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateGlobalQuestionWithChan invokes the outboundbot.CreateGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateGlobalQuestionWithChan(request *CreateGlobalQuestionRequest) (<-chan *CreateGlobalQuestionResponse, <-chan error) {
+	responseChan := make(chan *CreateGlobalQuestionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateGlobalQuestion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateGlobalQuestionWithCallback invokes the outboundbot.CreateGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateGlobalQuestionWithCallback(request *CreateGlobalQuestionRequest, callback func(response *CreateGlobalQuestionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateGlobalQuestionResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateGlobalQuestion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateGlobalQuestionRequest is the request struct for api CreateGlobalQuestion
+type CreateGlobalQuestionRequest struct {
+	*requests.RpcRequest
+	GlobalQuestionName string `position:"Query" name:"GlobalQuestionName"`
+	Questions          string `position:"Query" name:"Questions"`
+	Answers            string `position:"Query" name:"Answers"`
+	ScriptId           string `position:"Query" name:"ScriptId"`
+	InstanceId         string `position:"Query" name:"InstanceId"`
+	GlobalQuestionType string `position:"Query" name:"GlobalQuestionType"`
+}
+
+// CreateGlobalQuestionResponse is the response struct for api CreateGlobalQuestion
+type CreateGlobalQuestionResponse 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"`
+	GlobalQuestionId string `json:"GlobalQuestionId" xml:"GlobalQuestionId"`
+}
+
+// CreateCreateGlobalQuestionRequest creates a request to invoke CreateGlobalQuestion API
+func CreateCreateGlobalQuestionRequest() (request *CreateGlobalQuestionRequest) {
+	request = &CreateGlobalQuestionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateGlobalQuestion", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateGlobalQuestionResponse creates a response to parse from CreateGlobalQuestion response
+func CreateCreateGlobalQuestionResponse() (response *CreateGlobalQuestionResponse) {
+	response = &CreateGlobalQuestionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/create_instance.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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 outboundbot.CreateInstance API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createinstance.html
+func (client *Client) CreateInstance(request *CreateInstanceRequest) (response *CreateInstanceResponse, err error) {
+	response = CreateCreateInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateInstanceWithChan invokes the outboundbot.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.CreateInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	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"`
+}
+
+// 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       Instance `json:"Instance" xml:"Instance"`
+}
+
+// CreateCreateInstanceRequest creates a request to invoke CreateInstance API
+func CreateCreateInstanceRequest() (request *CreateInstanceRequest) {
+	request = &CreateInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateInstance", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateInstanceResponse creates a response to parse from CreateInstance response
+func CreateCreateInstanceResponse() (response *CreateInstanceResponse) {
+	response = &CreateInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/create_intent.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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"
+)
+
+// CreateIntent invokes the outboundbot.CreateIntent API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createintent.html
+func (client *Client) CreateIntent(request *CreateIntentRequest) (response *CreateIntentResponse, err error) {
+	response = CreateCreateIntentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateIntentWithChan invokes the outboundbot.CreateIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateIntentWithChan(request *CreateIntentRequest) (<-chan *CreateIntentResponse, <-chan error) {
+	responseChan := make(chan *CreateIntentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateIntent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateIntentWithCallback invokes the outboundbot.CreateIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateIntentWithCallback(request *CreateIntentRequest, callback func(response *CreateIntentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateIntentResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateIntent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateIntentRequest is the request struct for api CreateIntent
+type CreateIntentRequest struct {
+	*requests.RpcRequest
+	Utterances        string `position:"Query" name:"Utterances"`
+	Keywords          string `position:"Query" name:"Keywords"`
+	IntentDescription string `position:"Query" name:"IntentDescription"`
+	ScriptId          string `position:"Query" name:"ScriptId"`
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	IntentName        string `position:"Query" name:"IntentName"`
+}
+
+// CreateIntentResponse is the response struct for api CreateIntent
+type CreateIntentResponse 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"`
+	IntentId       string `json:"IntentId" xml:"IntentId"`
+}
+
+// CreateCreateIntentRequest creates a request to invoke CreateIntent API
+func CreateCreateIntentRequest() (request *CreateIntentRequest) {
+	request = &CreateIntentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateIntent", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateIntentResponse creates a response to parse from CreateIntent response
+func CreateCreateIntentResponse() (response *CreateIntentResponse) {
+	response = &CreateIntentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/outboundbot/create_job_group.go

@@ -0,0 +1,114 @@
+package outboundbot
+
+//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 outboundbot.CreateJobGroup API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createjobgroup.html
+func (client *Client) CreateJobGroup(request *CreateJobGroupRequest) (response *CreateJobGroupResponse, err error) {
+	response = CreateCreateJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateJobGroupWithChan invokes the outboundbot.CreateJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.CreateJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	JobGroupDescription string    `position:"Query" name:"JobGroupDescription"`
+	JobGroupName        string    `position:"Query" name:"JobGroupName"`
+	ScriptId            string    `position:"Query" name:"ScriptId"`
+	CallingNumber       *[]string `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId          string    `position:"Query" name:"InstanceId"`
+	StrategyJson        string    `position:"Query" name:"StrategyJson"`
+	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("OutboundBot", "2019-12-26", "CreateJobGroup", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateJobGroupResponse creates a response to parse from CreateJobGroup response
+func CreateCreateJobGroupResponse() (response *CreateJobGroupResponse) {
+	response = &CreateJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/create_outbound_call_number.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// CreateOutboundCallNumber invokes the outboundbot.CreateOutboundCallNumber API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createoutboundcallnumber.html
+func (client *Client) CreateOutboundCallNumber(request *CreateOutboundCallNumberRequest) (response *CreateOutboundCallNumberResponse, err error) {
+	response = CreateCreateOutboundCallNumberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateOutboundCallNumberWithChan invokes the outboundbot.CreateOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateOutboundCallNumberWithChan(request *CreateOutboundCallNumberRequest) (<-chan *CreateOutboundCallNumberResponse, <-chan error) {
+	responseChan := make(chan *CreateOutboundCallNumberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateOutboundCallNumber(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateOutboundCallNumberWithCallback invokes the outboundbot.CreateOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateOutboundCallNumberWithCallback(request *CreateOutboundCallNumberRequest, callback func(response *CreateOutboundCallNumberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateOutboundCallNumberResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateOutboundCallNumber(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateOutboundCallNumberRequest is the request struct for api CreateOutboundCallNumber
+type CreateOutboundCallNumberRequest struct {
+	*requests.RpcRequest
+	RateLimitCount  requests.Integer `position:"Query" name:"RateLimitCount"`
+	Number          string           `position:"Query" name:"Number"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	RateLimitPeriod requests.Integer `position:"Query" name:"RateLimitPeriod"`
+}
+
+// CreateOutboundCallNumberResponse is the response struct for api CreateOutboundCallNumber
+type CreateOutboundCallNumberResponse 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"`
+	OutboundCallNumberId string `json:"OutboundCallNumberId" xml:"OutboundCallNumberId"`
+}
+
+// CreateCreateOutboundCallNumberRequest creates a request to invoke CreateOutboundCallNumber API
+func CreateCreateOutboundCallNumberRequest() (request *CreateOutboundCallNumberRequest) {
+	request = &CreateOutboundCallNumberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateOutboundCallNumber", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateOutboundCallNumberResponse creates a response to parse from CreateOutboundCallNumber response
+func CreateCreateOutboundCallNumberResponse() (response *CreateOutboundCallNumberResponse) {
+	response = &CreateOutboundCallNumberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/create_script.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// CreateScript invokes the outboundbot.CreateScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscript.html
+func (client *Client) CreateScript(request *CreateScriptRequest) (response *CreateScriptResponse, err error) {
+	response = CreateCreateScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateScriptWithChan invokes the outboundbot.CreateScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScriptWithChan(request *CreateScriptRequest) (<-chan *CreateScriptResponse, <-chan error) {
+	responseChan := make(chan *CreateScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateScriptWithCallback invokes the outboundbot.CreateScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScriptWithCallback(request *CreateScriptRequest, callback func(response *CreateScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateScriptRequest is the request struct for api CreateScript
+type CreateScriptRequest struct {
+	*requests.RpcRequest
+	Industry          string `position:"Query" name:"Industry"`
+	ScriptName        string `position:"Query" name:"ScriptName"`
+	Scene             string `position:"Query" name:"Scene"`
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	ScriptDescription string `position:"Query" name:"ScriptDescription"`
+}
+
+// CreateScriptResponse is the response struct for api CreateScript
+type CreateScriptResponse 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"`
+	Script         Script `json:"Script" xml:"Script"`
+}
+
+// CreateCreateScriptRequest creates a request to invoke CreateScript API
+func CreateCreateScriptRequest() (request *CreateScriptRequest) {
+	request = &CreateScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateScriptResponse creates a response to parse from CreateScript response
+func CreateCreateScriptResponse() (response *CreateScriptResponse) {
+	response = &CreateScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/create_script_waveform.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// CreateScriptWaveform invokes the outboundbot.CreateScriptWaveform API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscriptwaveform.html
+func (client *Client) CreateScriptWaveform(request *CreateScriptWaveformRequest) (response *CreateScriptWaveformResponse, err error) {
+	response = CreateCreateScriptWaveformResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateScriptWaveformWithChan invokes the outboundbot.CreateScriptWaveform API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscriptwaveform.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScriptWaveformWithChan(request *CreateScriptWaveformRequest) (<-chan *CreateScriptWaveformResponse, <-chan error) {
+	responseChan := make(chan *CreateScriptWaveformResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateScriptWaveform(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateScriptWaveformWithCallback invokes the outboundbot.CreateScriptWaveform API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createscriptwaveform.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateScriptWaveformWithCallback(request *CreateScriptWaveformRequest, callback func(response *CreateScriptWaveformResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateScriptWaveformResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateScriptWaveform(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateScriptWaveformRequest is the request struct for api CreateScriptWaveform
+type CreateScriptWaveformRequest struct {
+	*requests.RpcRequest
+	ScriptId      string `position:"Query" name:"ScriptId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	FileName      string `position:"Query" name:"FileName"`
+	ScriptContent string `position:"Query" name:"ScriptContent"`
+	FileId        string `position:"Query" name:"FileId"`
+}
+
+// CreateScriptWaveformResponse is the response struct for api CreateScriptWaveform
+type CreateScriptWaveformResponse 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"`
+	ScriptWaveformId string `json:"ScriptWaveformId" xml:"ScriptWaveformId"`
+}
+
+// CreateCreateScriptWaveformRequest creates a request to invoke CreateScriptWaveform API
+func CreateCreateScriptWaveformRequest() (request *CreateScriptWaveformRequest) {
+	request = &CreateScriptWaveformRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateScriptWaveform", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateScriptWaveformResponse creates a response to parse from CreateScriptWaveform response
+func CreateCreateScriptWaveformResponse() (response *CreateScriptWaveformResponse) {
+	response = &CreateScriptWaveformResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/create_tag.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// CreateTag invokes the outboundbot.CreateTag API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/createtag.html
+func (client *Client) CreateTag(request *CreateTagRequest) (response *CreateTagResponse, err error) {
+	response = CreateCreateTagResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateTagWithChan invokes the outboundbot.CreateTag API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createtag.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTagWithChan(request *CreateTagRequest) (<-chan *CreateTagResponse, <-chan error) {
+	responseChan := make(chan *CreateTagResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateTag(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateTagWithCallback invokes the outboundbot.CreateTag API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/createtag.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateTagWithCallback(request *CreateTagRequest, callback func(response *CreateTagResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateTagResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateTag(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateTagRequest is the request struct for api CreateTag
+type CreateTagRequest struct {
+	*requests.RpcRequest
+	TagGroup   string `position:"Query" name:"TagGroup"`
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	TagName    string `position:"Query" name:"TagName"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// CreateTagResponse is the response struct for api CreateTag
+type CreateTagResponse 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"`
+	TagId          string `json:"TagId" xml:"TagId"`
+}
+
+// CreateCreateTagRequest creates a request to invoke CreateTag API
+func CreateCreateTagRequest() (request *CreateTagRequest) {
+	request = &CreateTagRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "CreateTag", "outboundbot", "openAPI")
+	return
+}
+
+// CreateCreateTagResponse creates a response to parse from CreateTag response
+func CreateCreateTagResponse() (response *CreateTagResponse) {
+	response = &CreateTagResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/delete_dialogue_flow.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteDialogueFlow invokes the outboundbot.DeleteDialogueFlow API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletedialogueflow.html
+func (client *Client) DeleteDialogueFlow(request *DeleteDialogueFlowRequest) (response *DeleteDialogueFlowResponse, err error) {
+	response = CreateDeleteDialogueFlowResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteDialogueFlowWithChan invokes the outboundbot.DeleteDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletedialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDialogueFlowWithChan(request *DeleteDialogueFlowRequest) (<-chan *DeleteDialogueFlowResponse, <-chan error) {
+	responseChan := make(chan *DeleteDialogueFlowResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteDialogueFlow(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteDialogueFlowWithCallback invokes the outboundbot.DeleteDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletedialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDialogueFlowWithCallback(request *DeleteDialogueFlowRequest, callback func(response *DeleteDialogueFlowResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteDialogueFlowResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteDialogueFlow(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteDialogueFlowRequest is the request struct for api DeleteDialogueFlow
+type DeleteDialogueFlowRequest struct {
+	*requests.RpcRequest
+	ScriptId       string `position:"Query" name:"ScriptId"`
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	DialogueFlowId string `position:"Query" name:"DialogueFlowId"`
+}
+
+// DeleteDialogueFlowResponse is the response struct for api DeleteDialogueFlow
+type DeleteDialogueFlowResponse 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"`
+}
+
+// CreateDeleteDialogueFlowRequest creates a request to invoke DeleteDialogueFlow API
+func CreateDeleteDialogueFlowRequest() (request *DeleteDialogueFlowRequest) {
+	request = &DeleteDialogueFlowRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteDialogueFlow", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteDialogueFlowResponse creates a response to parse from DeleteDialogueFlow response
+func CreateDeleteDialogueFlowResponse() (response *DeleteDialogueFlowResponse) {
+	response = &DeleteDialogueFlowResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/delete_global_question.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteGlobalQuestion invokes the outboundbot.DeleteGlobalQuestion API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteglobalquestion.html
+func (client *Client) DeleteGlobalQuestion(request *DeleteGlobalQuestionRequest) (response *DeleteGlobalQuestionResponse, err error) {
+	response = CreateDeleteGlobalQuestionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteGlobalQuestionWithChan invokes the outboundbot.DeleteGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteGlobalQuestionWithChan(request *DeleteGlobalQuestionRequest) (<-chan *DeleteGlobalQuestionResponse, <-chan error) {
+	responseChan := make(chan *DeleteGlobalQuestionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteGlobalQuestion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteGlobalQuestionWithCallback invokes the outboundbot.DeleteGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteGlobalQuestionWithCallback(request *DeleteGlobalQuestionRequest, callback func(response *DeleteGlobalQuestionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteGlobalQuestionResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteGlobalQuestion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteGlobalQuestionRequest is the request struct for api DeleteGlobalQuestion
+type DeleteGlobalQuestionRequest struct {
+	*requests.RpcRequest
+	GlobalQuestionId string `position:"Query" name:"GlobalQuestionId"`
+	ScriptId         string `position:"Query" name:"ScriptId"`
+	InstanceId       string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteGlobalQuestionResponse is the response struct for api DeleteGlobalQuestion
+type DeleteGlobalQuestionResponse 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"`
+}
+
+// CreateDeleteGlobalQuestionRequest creates a request to invoke DeleteGlobalQuestion API
+func CreateDeleteGlobalQuestionRequest() (request *DeleteGlobalQuestionRequest) {
+	request = &DeleteGlobalQuestionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteGlobalQuestion", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteGlobalQuestionResponse creates a response to parse from DeleteGlobalQuestion response
+func CreateDeleteGlobalQuestionResponse() (response *DeleteGlobalQuestionResponse) {
+	response = &DeleteGlobalQuestionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/outboundbot/delete_instance.go

@@ -0,0 +1,107 @@
+package outboundbot
+
+//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 outboundbot.DeleteInstance API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteinstance.html
+func (client *Client) DeleteInstance(request *DeleteInstanceRequest) (response *DeleteInstanceResponse, err error) {
+	response = CreateDeleteInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteInstanceWithChan invokes the outboundbot.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.DeleteInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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("OutboundBot", "2019-12-26", "DeleteInstance", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteInstanceResponse creates a response to parse from DeleteInstance response
+func CreateDeleteInstanceResponse() (response *DeleteInstanceResponse) {
+	response = &DeleteInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/delete_intent.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteIntent invokes the outboundbot.DeleteIntent API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteintent.html
+func (client *Client) DeleteIntent(request *DeleteIntentRequest) (response *DeleteIntentResponse, err error) {
+	response = CreateDeleteIntentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteIntentWithChan invokes the outboundbot.DeleteIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteIntentWithChan(request *DeleteIntentRequest) (<-chan *DeleteIntentResponse, <-chan error) {
+	responseChan := make(chan *DeleteIntentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteIntent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteIntentWithCallback invokes the outboundbot.DeleteIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteIntentWithCallback(request *DeleteIntentRequest, callback func(response *DeleteIntentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteIntentResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteIntent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteIntentRequest is the request struct for api DeleteIntent
+type DeleteIntentRequest struct {
+	*requests.RpcRequest
+	IntentId   string `position:"Query" name:"IntentId"`
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteIntentResponse is the response struct for api DeleteIntent
+type DeleteIntentResponse 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"`
+}
+
+// CreateDeleteIntentRequest creates a request to invoke DeleteIntent API
+func CreateDeleteIntentRequest() (request *DeleteIntentRequest) {
+	request = &DeleteIntentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteIntent", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteIntentResponse creates a response to parse from DeleteIntent response
+func CreateDeleteIntentResponse() (response *DeleteIntentResponse) {
+	response = &DeleteIntentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/outboundbot/delete_job_group.go

@@ -0,0 +1,108 @@
+package outboundbot
+
+//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 outboundbot.DeleteJobGroup API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletejobgroup.html
+func (client *Client) DeleteJobGroup(request *DeleteJobGroupRequest) (response *DeleteJobGroupResponse, err error) {
+	response = CreateDeleteJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteJobGroupWithChan invokes the outboundbot.DeleteJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.DeleteJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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("OutboundBot", "2019-12-26", "DeleteJobGroup", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteJobGroupResponse creates a response to parse from DeleteJobGroup response
+func CreateDeleteJobGroupResponse() (response *DeleteJobGroupResponse) {
+	response = &DeleteJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/outboundbot/delete_outbound_call_number.go

@@ -0,0 +1,108 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteOutboundCallNumber invokes the outboundbot.DeleteOutboundCallNumber API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteoutboundcallnumber.html
+func (client *Client) DeleteOutboundCallNumber(request *DeleteOutboundCallNumberRequest) (response *DeleteOutboundCallNumberResponse, err error) {
+	response = CreateDeleteOutboundCallNumberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteOutboundCallNumberWithChan invokes the outboundbot.DeleteOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteOutboundCallNumberWithChan(request *DeleteOutboundCallNumberRequest) (<-chan *DeleteOutboundCallNumberResponse, <-chan error) {
+	responseChan := make(chan *DeleteOutboundCallNumberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteOutboundCallNumber(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteOutboundCallNumberWithCallback invokes the outboundbot.DeleteOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deleteoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteOutboundCallNumberWithCallback(request *DeleteOutboundCallNumberRequest, callback func(response *DeleteOutboundCallNumberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteOutboundCallNumberResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteOutboundCallNumber(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteOutboundCallNumberRequest is the request struct for api DeleteOutboundCallNumber
+type DeleteOutboundCallNumberRequest struct {
+	*requests.RpcRequest
+	OutboundCallNumberId string `position:"Query" name:"OutboundCallNumberId"`
+	InstanceId           string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteOutboundCallNumberResponse is the response struct for api DeleteOutboundCallNumber
+type DeleteOutboundCallNumberResponse 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"`
+}
+
+// CreateDeleteOutboundCallNumberRequest creates a request to invoke DeleteOutboundCallNumber API
+func CreateDeleteOutboundCallNumberRequest() (request *DeleteOutboundCallNumberRequest) {
+	request = &DeleteOutboundCallNumberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteOutboundCallNumber", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteOutboundCallNumberResponse creates a response to parse from DeleteOutboundCallNumber response
+func CreateDeleteOutboundCallNumberResponse() (response *DeleteOutboundCallNumberResponse) {
+	response = &DeleteOutboundCallNumberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/outboundbot/delete_script.go

@@ -0,0 +1,108 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteScript invokes the outboundbot.DeleteScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescript.html
+func (client *Client) DeleteScript(request *DeleteScriptRequest) (response *DeleteScriptResponse, err error) {
+	response = CreateDeleteScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteScriptWithChan invokes the outboundbot.DeleteScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScriptWithChan(request *DeleteScriptRequest) (<-chan *DeleteScriptResponse, <-chan error) {
+	responseChan := make(chan *DeleteScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteScriptWithCallback invokes the outboundbot.DeleteScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScriptWithCallback(request *DeleteScriptRequest, callback func(response *DeleteScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteScriptRequest is the request struct for api DeleteScript
+type DeleteScriptRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteScriptResponse is the response struct for api DeleteScript
+type DeleteScriptResponse 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"`
+}
+
+// CreateDeleteScriptRequest creates a request to invoke DeleteScript API
+func CreateDeleteScriptRequest() (request *DeleteScriptRequest) {
+	request = &DeleteScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteScriptResponse creates a response to parse from DeleteScript response
+func CreateDeleteScriptResponse() (response *DeleteScriptResponse) {
+	response = &DeleteScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/delete_script_waveform.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DeleteScriptWaveform invokes the outboundbot.DeleteScriptWaveform API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescriptwaveform.html
+func (client *Client) DeleteScriptWaveform(request *DeleteScriptWaveformRequest) (response *DeleteScriptWaveformResponse, err error) {
+	response = CreateDeleteScriptWaveformResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteScriptWaveformWithChan invokes the outboundbot.DeleteScriptWaveform API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescriptwaveform.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScriptWaveformWithChan(request *DeleteScriptWaveformRequest) (<-chan *DeleteScriptWaveformResponse, <-chan error) {
+	responseChan := make(chan *DeleteScriptWaveformResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteScriptWaveform(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteScriptWaveformWithCallback invokes the outboundbot.DeleteScriptWaveform API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/deletescriptwaveform.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScriptWaveformWithCallback(request *DeleteScriptWaveformRequest, callback func(response *DeleteScriptWaveformResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteScriptWaveformResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteScriptWaveform(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteScriptWaveformRequest is the request struct for api DeleteScriptWaveform
+type DeleteScriptWaveformRequest struct {
+	*requests.RpcRequest
+	ScriptWaveformId string `position:"Query" name:"ScriptWaveformId"`
+	ScriptId         string `position:"Query" name:"ScriptId"`
+	InstanceId       string `position:"Query" name:"InstanceId"`
+}
+
+// DeleteScriptWaveformResponse is the response struct for api DeleteScriptWaveform
+type DeleteScriptWaveformResponse 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"`
+}
+
+// CreateDeleteScriptWaveformRequest creates a request to invoke DeleteScriptWaveform API
+func CreateDeleteScriptWaveformRequest() (request *DeleteScriptWaveformRequest) {
+	request = &DeleteScriptWaveformRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DeleteScriptWaveform", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDeleteScriptWaveformResponse creates a response to parse from DeleteScriptWaveform response
+func CreateDeleteScriptWaveformResponse() (response *DeleteScriptWaveformResponse) {
+	response = &DeleteScriptWaveformResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/describe_global_question.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeGlobalQuestion invokes the outboundbot.DescribeGlobalQuestion API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeglobalquestion.html
+func (client *Client) DescribeGlobalQuestion(request *DescribeGlobalQuestionRequest) (response *DescribeGlobalQuestionResponse, err error) {
+	response = CreateDescribeGlobalQuestionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeGlobalQuestionWithChan invokes the outboundbot.DescribeGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGlobalQuestionWithChan(request *DescribeGlobalQuestionRequest) (<-chan *DescribeGlobalQuestionResponse, <-chan error) {
+	responseChan := make(chan *DescribeGlobalQuestionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeGlobalQuestion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeGlobalQuestionWithCallback invokes the outboundbot.DescribeGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGlobalQuestionWithCallback(request *DescribeGlobalQuestionRequest, callback func(response *DescribeGlobalQuestionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeGlobalQuestionResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeGlobalQuestion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeGlobalQuestionRequest is the request struct for api DescribeGlobalQuestion
+type DescribeGlobalQuestionRequest struct {
+	*requests.RpcRequest
+	GlobalQuestionId string `position:"Query" name:"GlobalQuestionId"`
+	ScriptId         string `position:"Query" name:"ScriptId"`
+	InstanceId       string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeGlobalQuestionResponse is the response struct for api DescribeGlobalQuestion
+type DescribeGlobalQuestionResponse 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"`
+	GlobalQuestion GlobalQuestion `json:"GlobalQuestion" xml:"GlobalQuestion"`
+}
+
+// CreateDescribeGlobalQuestionRequest creates a request to invoke DescribeGlobalQuestion API
+func CreateDescribeGlobalQuestionRequest() (request *DescribeGlobalQuestionRequest) {
+	request = &DescribeGlobalQuestionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeGlobalQuestion", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeGlobalQuestionResponse creates a response to parse from DescribeGlobalQuestion response
+func CreateDescribeGlobalQuestionResponse() (response *DescribeGlobalQuestionResponse) {
+	response = &DescribeGlobalQuestionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/outboundbot/describe_instance.go

@@ -0,0 +1,108 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeInstance invokes the outboundbot.DescribeInstance API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeinstance.html
+func (client *Client) DescribeInstance(request *DescribeInstanceRequest) (response *DescribeInstanceResponse, err error) {
+	response = CreateDescribeInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceWithChan invokes the outboundbot.DescribeInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceWithChan(request *DescribeInstanceRequest) (<-chan *DescribeInstanceResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceWithCallback invokes the outboundbot.DescribeInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceWithCallback(request *DescribeInstanceRequest, callback func(response *DescribeInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceRequest is the request struct for api DescribeInstance
+type DescribeInstanceRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeInstanceResponse is the response struct for api DescribeInstance
+type DescribeInstanceResponse 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"`
+}
+
+// CreateDescribeInstanceRequest creates a request to invoke DescribeInstance API
+func CreateDescribeInstanceRequest() (request *DescribeInstanceRequest) {
+	request = &DescribeInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeInstance", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceResponse creates a response to parse from DescribeInstance response
+func CreateDescribeInstanceResponse() (response *DescribeInstanceResponse) {
+	response = &DescribeInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/describe_intent.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeIntent invokes the outboundbot.DescribeIntent API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeintent.html
+func (client *Client) DescribeIntent(request *DescribeIntentRequest) (response *DescribeIntentResponse, err error) {
+	response = CreateDescribeIntentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeIntentWithChan invokes the outboundbot.DescribeIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIntentWithChan(request *DescribeIntentRequest) (<-chan *DescribeIntentResponse, <-chan error) {
+	responseChan := make(chan *DescribeIntentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIntent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeIntentWithCallback invokes the outboundbot.DescribeIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describeintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIntentWithCallback(request *DescribeIntentRequest, callback func(response *DescribeIntentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIntentResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIntent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeIntentRequest is the request struct for api DescribeIntent
+type DescribeIntentRequest struct {
+	*requests.RpcRequest
+	IntentId   string `position:"Query" name:"IntentId"`
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeIntentResponse is the response struct for api DescribeIntent
+type DescribeIntentResponse 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"`
+	Intent         Intent `json:"Intent" xml:"Intent"`
+}
+
+// CreateDescribeIntentRequest creates a request to invoke DescribeIntent API
+func CreateDescribeIntentRequest() (request *DescribeIntentRequest) {
+	request = &DescribeIntentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeIntent", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeIntentResponse creates a response to parse from DescribeIntent response
+func CreateDescribeIntentResponse() (response *DescribeIntentResponse) {
+	response = &DescribeIntentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/describe_job.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeJob invokes the outboundbot.DescribeJob API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejob.html
+func (client *Client) DescribeJob(request *DescribeJobRequest) (response *DescribeJobResponse, err error) {
+	response = CreateDescribeJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeJobWithChan invokes the outboundbot.DescribeJob API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeJobWithChan(request *DescribeJobRequest) (<-chan *DescribeJobResponse, <-chan error) {
+	responseChan := make(chan *DescribeJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeJobWithCallback invokes the outboundbot.DescribeJob API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeJobWithCallback(request *DescribeJobRequest, callback func(response *DescribeJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeJobResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeJobRequest is the request struct for api DescribeJob
+type DescribeJobRequest struct {
+	*requests.RpcRequest
+	JobId      string `position:"Query" name:"JobId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeJobResponse is the response struct for api DescribeJob
+type DescribeJobResponse 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"`
+}
+
+// CreateDescribeJobRequest creates a request to invoke DescribeJob API
+func CreateDescribeJobRequest() (request *DescribeJobRequest) {
+	request = &DescribeJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeJob", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeJobResponse creates a response to parse from DescribeJob response
+func CreateDescribeJobResponse() (response *DescribeJobResponse) {
+	response = &DescribeJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/describe_job_group.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeJobGroup invokes the outboundbot.DescribeJobGroup API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejobgroup.html
+func (client *Client) DescribeJobGroup(request *DescribeJobGroupRequest) (response *DescribeJobGroupResponse, err error) {
+	response = CreateDescribeJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeJobGroupWithChan invokes the outboundbot.DescribeJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeJobGroupWithChan(request *DescribeJobGroupRequest) (<-chan *DescribeJobGroupResponse, <-chan error) {
+	responseChan := make(chan *DescribeJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeJobGroupWithCallback invokes the outboundbot.DescribeJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describejobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeJobGroupWithCallback(request *DescribeJobGroupRequest, callback func(response *DescribeJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeJobGroupRequest is the request struct for api DescribeJobGroup
+type DescribeJobGroupRequest struct {
+	*requests.RpcRequest
+	BriefTypes *[]string `position:"Query" name:"BriefTypes"  type:"Repeated"`
+	InstanceId string    `position:"Query" name:"InstanceId"`
+	JobGroupId string    `position:"Query" name:"JobGroupId"`
+}
+
+// DescribeJobGroupResponse is the response struct for api DescribeJobGroup
+type DescribeJobGroupResponse 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"`
+}
+
+// CreateDescribeJobGroupRequest creates a request to invoke DescribeJobGroup API
+func CreateDescribeJobGroupRequest() (request *DescribeJobGroupRequest) {
+	request = &DescribeJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeJobGroup", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeJobGroupResponse creates a response to parse from DescribeJobGroup response
+func CreateDescribeJobGroupResponse() (response *DescribeJobGroupResponse) {
+	response = &DescribeJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/describe_script.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeScript invokes the outboundbot.DescribeScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescript.html
+func (client *Client) DescribeScript(request *DescribeScriptRequest) (response *DescribeScriptResponse, err error) {
+	response = CreateDescribeScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScriptWithChan invokes the outboundbot.DescribeScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScriptWithChan(request *DescribeScriptRequest) (<-chan *DescribeScriptResponse, <-chan error) {
+	responseChan := make(chan *DescribeScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScriptWithCallback invokes the outboundbot.DescribeScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScriptWithCallback(request *DescribeScriptRequest, callback func(response *DescribeScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScriptRequest is the request struct for api DescribeScript
+type DescribeScriptRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeScriptResponse is the response struct for api DescribeScript
+type DescribeScriptResponse 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"`
+	Script         Script `json:"Script" xml:"Script"`
+}
+
+// CreateDescribeScriptRequest creates a request to invoke DescribeScript API
+func CreateDescribeScriptRequest() (request *DescribeScriptRequest) {
+	request = &DescribeScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeScriptResponse creates a response to parse from DescribeScript response
+func CreateDescribeScriptResponse() (response *DescribeScriptResponse) {
+	response = &DescribeScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/describe_script_voice_config.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeScriptVoiceConfig invokes the outboundbot.DescribeScriptVoiceConfig API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescriptvoiceconfig.html
+func (client *Client) DescribeScriptVoiceConfig(request *DescribeScriptVoiceConfigRequest) (response *DescribeScriptVoiceConfigResponse, err error) {
+	response = CreateDescribeScriptVoiceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScriptVoiceConfigWithChan invokes the outboundbot.DescribeScriptVoiceConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescriptvoiceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScriptVoiceConfigWithChan(request *DescribeScriptVoiceConfigRequest) (<-chan *DescribeScriptVoiceConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeScriptVoiceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScriptVoiceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScriptVoiceConfigWithCallback invokes the outboundbot.DescribeScriptVoiceConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describescriptvoiceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScriptVoiceConfigWithCallback(request *DescribeScriptVoiceConfigRequest, callback func(response *DescribeScriptVoiceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScriptVoiceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScriptVoiceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScriptVoiceConfigRequest is the request struct for api DescribeScriptVoiceConfig
+type DescribeScriptVoiceConfigRequest struct {
+	*requests.RpcRequest
+	ScriptId            string `position:"Query" name:"ScriptId"`
+	ScriptVoiceConfigId string `position:"Query" name:"ScriptVoiceConfigId"`
+	InstanceId          string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeScriptVoiceConfigResponse is the response struct for api DescribeScriptVoiceConfig
+type DescribeScriptVoiceConfigResponse 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"`
+	ScriptVoiceConfig ScriptVoiceConfig `json:"ScriptVoiceConfig" xml:"ScriptVoiceConfig"`
+}
+
+// CreateDescribeScriptVoiceConfigRequest creates a request to invoke DescribeScriptVoiceConfig API
+func CreateDescribeScriptVoiceConfigRequest() (request *DescribeScriptVoiceConfigRequest) {
+	request = &DescribeScriptVoiceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeScriptVoiceConfig", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeScriptVoiceConfigResponse creates a response to parse from DescribeScriptVoiceConfig response
+func CreateDescribeScriptVoiceConfigResponse() (response *DescribeScriptVoiceConfigResponse) {
+	response = &DescribeScriptVoiceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/describe_tts_config.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DescribeTTSConfig invokes the outboundbot.DescribeTTSConfig API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/describettsconfig.html
+func (client *Client) DescribeTTSConfig(request *DescribeTTSConfigRequest) (response *DescribeTTSConfigResponse, err error) {
+	response = CreateDescribeTTSConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeTTSConfigWithChan invokes the outboundbot.DescribeTTSConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describettsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTTSConfigWithChan(request *DescribeTTSConfigRequest) (<-chan *DescribeTTSConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeTTSConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeTTSConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeTTSConfigWithCallback invokes the outboundbot.DescribeTTSConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/describettsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeTTSConfigWithCallback(request *DescribeTTSConfigRequest, callback func(response *DescribeTTSConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeTTSConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeTTSConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeTTSConfigRequest is the request struct for api DescribeTTSConfig
+type DescribeTTSConfigRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// DescribeTTSConfigResponse is the response struct for api DescribeTTSConfig
+type DescribeTTSConfigResponse 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"`
+	TTSConfig      TTSConfig `json:"TTSConfig" xml:"TTSConfig"`
+}
+
+// CreateDescribeTTSConfigRequest creates a request to invoke DescribeTTSConfig API
+func CreateDescribeTTSConfigRequest() (request *DescribeTTSConfigRequest) {
+	request = &DescribeTTSConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DescribeTTSConfig", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDescribeTTSConfigResponse creates a response to parse from DescribeTTSConfig response
+func CreateDescribeTTSConfigResponse() (response *DescribeTTSConfigResponse) {
+	response = &DescribeTTSConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/outboundbot/dialogue.go

@@ -0,0 +1,118 @@
+package outboundbot
+
+//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 outboundbot.Dialogue API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/dialogue.html
+func (client *Client) Dialogue(request *DialogueRequest) (response *DialogueResponse, err error) {
+	response = CreateDialogueResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DialogueWithChan invokes the outboundbot.Dialogue API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.Dialogue API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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"`
+	ActionParams    string           `position:"Query" name:"ActionParams"`
+	CallingNumber   string           `position:"Query" name:"CallingNumber"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	InstanceOwnerId requests.Integer `position:"Query" name:"InstanceOwnerId"`
+	CalledNumber    string           `position:"Query" name:"CalledNumber"`
+	ActionKey       string           `position:"Query" name:"ActionKey"`
+	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("OutboundBot", "2019-12-26", "Dialogue", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDialogueResponse creates a response to parse from Dialogue response
+func CreateDialogueResponse() (response *DialogueResponse) {
+	response = &DialogueResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/download_basic_statistics_report.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DownloadBasicStatisticsReport invokes the outboundbot.DownloadBasicStatisticsReport API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadbasicstatisticsreport.html
+func (client *Client) DownloadBasicStatisticsReport(request *DownloadBasicStatisticsReportRequest) (response *DownloadBasicStatisticsReportResponse, err error) {
+	response = CreateDownloadBasicStatisticsReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadBasicStatisticsReportWithChan invokes the outboundbot.DownloadBasicStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadbasicstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadBasicStatisticsReportWithChan(request *DownloadBasicStatisticsReportRequest) (<-chan *DownloadBasicStatisticsReportResponse, <-chan error) {
+	responseChan := make(chan *DownloadBasicStatisticsReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadBasicStatisticsReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadBasicStatisticsReportWithCallback invokes the outboundbot.DownloadBasicStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadbasicstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadBasicStatisticsReportWithCallback(request *DownloadBasicStatisticsReportRequest, callback func(response *DownloadBasicStatisticsReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadBasicStatisticsReportResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadBasicStatisticsReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadBasicStatisticsReportRequest is the request struct for api DownloadBasicStatisticsReport
+type DownloadBasicStatisticsReportRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// DownloadBasicStatisticsReportResponse is the response struct for api DownloadBasicStatisticsReport
+type DownloadBasicStatisticsReportResponse 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"`
+}
+
+// CreateDownloadBasicStatisticsReportRequest creates a request to invoke DownloadBasicStatisticsReport API
+func CreateDownloadBasicStatisticsReportRequest() (request *DownloadBasicStatisticsReportRequest) {
+	request = &DownloadBasicStatisticsReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DownloadBasicStatisticsReport", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDownloadBasicStatisticsReportResponse creates a response to parse from DownloadBasicStatisticsReport response
+func CreateDownloadBasicStatisticsReportResponse() (response *DownloadBasicStatisticsReportResponse) {
+	response = &DownloadBasicStatisticsReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/download_conversation_details.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DownloadConversationDetails invokes the outboundbot.DownloadConversationDetails API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadconversationdetails.html
+func (client *Client) DownloadConversationDetails(request *DownloadConversationDetailsRequest) (response *DownloadConversationDetailsResponse, err error) {
+	response = CreateDownloadConversationDetailsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadConversationDetailsWithChan invokes the outboundbot.DownloadConversationDetails API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadconversationdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadConversationDetailsWithChan(request *DownloadConversationDetailsRequest) (<-chan *DownloadConversationDetailsResponse, <-chan error) {
+	responseChan := make(chan *DownloadConversationDetailsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadConversationDetails(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadConversationDetailsWithCallback invokes the outboundbot.DownloadConversationDetails API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadconversationdetails.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadConversationDetailsWithCallback(request *DownloadConversationDetailsRequest, callback func(response *DownloadConversationDetailsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadConversationDetailsResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadConversationDetails(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadConversationDetailsRequest is the request struct for api DownloadConversationDetails
+type DownloadConversationDetailsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// DownloadConversationDetailsResponse is the response struct for api DownloadConversationDetails
+type DownloadConversationDetailsResponse 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"`
+}
+
+// CreateDownloadConversationDetailsRequest creates a request to invoke DownloadConversationDetails API
+func CreateDownloadConversationDetailsRequest() (request *DownloadConversationDetailsRequest) {
+	request = &DownloadConversationDetailsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DownloadConversationDetails", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDownloadConversationDetailsResponse creates a response to parse from DownloadConversationDetails response
+func CreateDownloadConversationDetailsResponse() (response *DownloadConversationDetailsResponse) {
+	response = &DownloadConversationDetailsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/download_recording.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// DownloadRecording invokes the outboundbot.DownloadRecording API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadrecording.html
+func (client *Client) DownloadRecording(request *DownloadRecordingRequest) (response *DownloadRecordingResponse, err error) {
+	response = CreateDownloadRecordingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadRecordingWithChan invokes the outboundbot.DownloadRecording API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadrecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadRecordingWithChan(request *DownloadRecordingRequest) (<-chan *DownloadRecordingResponse, <-chan error) {
+	responseChan := make(chan *DownloadRecordingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DownloadRecording(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DownloadRecordingWithCallback invokes the outboundbot.DownloadRecording API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadrecording.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DownloadRecordingWithCallback(request *DownloadRecordingRequest, callback func(response *DownloadRecordingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DownloadRecordingResponse
+		var err error
+		defer close(result)
+		response, err = client.DownloadRecording(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DownloadRecordingRequest is the request struct for api DownloadRecording
+type DownloadRecordingRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	TaskId     string `position:"Query" name:"TaskId"`
+}
+
+// DownloadRecordingResponse is the response struct for api DownloadRecording
+type DownloadRecordingResponse 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"`
+}
+
+// CreateDownloadRecordingRequest creates a request to invoke DownloadRecording API
+func CreateDownloadRecordingRequest() (request *DownloadRecordingRequest) {
+	request = &DownloadRecordingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DownloadRecording", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDownloadRecordingResponse creates a response to parse from DownloadRecording response
+func CreateDownloadRecordingResponse() (response *DownloadRecordingResponse) {
+	response = &DownloadRecordingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/download_unreachable_contacts.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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 outboundbot.DownloadUnreachableContacts API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/downloadunreachablecontacts.html
+func (client *Client) DownloadUnreachableContacts(request *DownloadUnreachableContactsRequest) (response *DownloadUnreachableContactsResponse, err error) {
+	response = CreateDownloadUnreachableContactsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DownloadUnreachableContactsWithChan invokes the outboundbot.DownloadUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.DownloadUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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("OutboundBot", "2019-12-26", "DownloadUnreachableContacts", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDownloadUnreachableContactsResponse creates a response to parse from DownloadUnreachableContacts response
+func CreateDownloadUnreachableContactsResponse() (response *DownloadUnreachableContactsResponse) {
+	response = &DownloadUnreachableContactsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/duplicate_script.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// DuplicateScript invokes the outboundbot.DuplicateScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/duplicatescript.html
+func (client *Client) DuplicateScript(request *DuplicateScriptRequest) (response *DuplicateScriptResponse, err error) {
+	response = CreateDuplicateScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DuplicateScriptWithChan invokes the outboundbot.DuplicateScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/duplicatescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DuplicateScriptWithChan(request *DuplicateScriptRequest) (<-chan *DuplicateScriptResponse, <-chan error) {
+	responseChan := make(chan *DuplicateScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DuplicateScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DuplicateScriptWithCallback invokes the outboundbot.DuplicateScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/duplicatescript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DuplicateScriptWithCallback(request *DuplicateScriptRequest, callback func(response *DuplicateScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DuplicateScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.DuplicateScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DuplicateScriptRequest is the request struct for api DuplicateScript
+type DuplicateScriptRequest struct {
+	*requests.RpcRequest
+	InstanceId     string `position:"Query" name:"InstanceId"`
+	SourceScriptId string `position:"Query" name:"SourceScriptId"`
+	Name           string `position:"Query" name:"Name"`
+}
+
+// DuplicateScriptResponse is the response struct for api DuplicateScript
+type DuplicateScriptResponse 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"`
+	ScriptId       string `json:"ScriptId" xml:"ScriptId"`
+}
+
+// CreateDuplicateScriptRequest creates a request to invoke DuplicateScript API
+func CreateDuplicateScriptRequest() (request *DuplicateScriptRequest) {
+	request = &DuplicateScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "DuplicateScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateDuplicateScriptResponse creates a response to parse from DuplicateScript response
+func CreateDuplicateScriptResponse() (response *DuplicateScriptResponse) {
+	response = &DuplicateScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 20 - 0
services/outboundbot/endpoint.go

@@ -0,0 +1,20 @@
+package outboundbot
+
+// 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
+}

+ 109 - 0
services/outboundbot/export_script.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// ExportScript invokes the outboundbot.ExportScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/exportscript.html
+func (client *Client) ExportScript(request *ExportScriptRequest) (response *ExportScriptResponse, err error) {
+	response = CreateExportScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ExportScriptWithChan invokes the outboundbot.ExportScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/exportscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExportScriptWithChan(request *ExportScriptRequest) (<-chan *ExportScriptResponse, <-chan error) {
+	responseChan := make(chan *ExportScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ExportScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ExportScriptWithCallback invokes the outboundbot.ExportScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/exportscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExportScriptWithCallback(request *ExportScriptRequest, callback func(response *ExportScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ExportScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.ExportScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ExportScriptRequest is the request struct for api ExportScript
+type ExportScriptRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// ExportScriptResponse is the response struct for api ExportScript
+type ExportScriptResponse 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"`
+}
+
+// CreateExportScriptRequest creates a request to invoke ExportScript API
+func CreateExportScriptRequest() (request *ExportScriptRequest) {
+	request = &ExportScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ExportScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateExportScriptResponse creates a response to parse from ExportScript response
+func CreateExportScriptResponse() (response *ExportScriptResponse) {
+	response = &ExportScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/generate_basic_statistics_report.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// GenerateBasicStatisticsReport invokes the outboundbot.GenerateBasicStatisticsReport API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/generatebasicstatisticsreport.html
+func (client *Client) GenerateBasicStatisticsReport(request *GenerateBasicStatisticsReportRequest) (response *GenerateBasicStatisticsReportResponse, err error) {
+	response = CreateGenerateBasicStatisticsReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GenerateBasicStatisticsReportWithChan invokes the outboundbot.GenerateBasicStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/generatebasicstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateBasicStatisticsReportWithChan(request *GenerateBasicStatisticsReportRequest) (<-chan *GenerateBasicStatisticsReportResponse, <-chan error) {
+	responseChan := make(chan *GenerateBasicStatisticsReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GenerateBasicStatisticsReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GenerateBasicStatisticsReportWithCallback invokes the outboundbot.GenerateBasicStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/generatebasicstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateBasicStatisticsReportWithCallback(request *GenerateBasicStatisticsReportRequest, callback func(response *GenerateBasicStatisticsReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GenerateBasicStatisticsReportResponse
+		var err error
+		defer close(result)
+		response, err = client.GenerateBasicStatisticsReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GenerateBasicStatisticsReportRequest is the request struct for api GenerateBasicStatisticsReport
+type GenerateBasicStatisticsReportRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// GenerateBasicStatisticsReportResponse is the response struct for api GenerateBasicStatisticsReport
+type GenerateBasicStatisticsReportResponse 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"`
+	BasicStatisticsReport BasicStatisticsReport `json:"BasicStatisticsReport" xml:"BasicStatisticsReport"`
+}
+
+// CreateGenerateBasicStatisticsReportRequest creates a request to invoke GenerateBasicStatisticsReport API
+func CreateGenerateBasicStatisticsReportRequest() (request *GenerateBasicStatisticsReportRequest) {
+	request = &GenerateBasicStatisticsReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "GenerateBasicStatisticsReport", "outboundbot", "openAPI")
+	return
+}
+
+// CreateGenerateBasicStatisticsReportResponse creates a response to parse from GenerateBasicStatisticsReport response
+func CreateGenerateBasicStatisticsReportResponse() (response *GenerateBasicStatisticsReportResponse) {
+	response = &GenerateBasicStatisticsReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/generate_overall_statistics_report.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// GenerateOverallStatisticsReport invokes the outboundbot.GenerateOverallStatisticsReport API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/generateoverallstatisticsreport.html
+func (client *Client) GenerateOverallStatisticsReport(request *GenerateOverallStatisticsReportRequest) (response *GenerateOverallStatisticsReportResponse, err error) {
+	response = CreateGenerateOverallStatisticsReportResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GenerateOverallStatisticsReportWithChan invokes the outboundbot.GenerateOverallStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/generateoverallstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateOverallStatisticsReportWithChan(request *GenerateOverallStatisticsReportRequest) (<-chan *GenerateOverallStatisticsReportResponse, <-chan error) {
+	responseChan := make(chan *GenerateOverallStatisticsReportResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GenerateOverallStatisticsReport(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GenerateOverallStatisticsReportWithCallback invokes the outboundbot.GenerateOverallStatisticsReport API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/generateoverallstatisticsreport.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GenerateOverallStatisticsReportWithCallback(request *GenerateOverallStatisticsReportRequest, callback func(response *GenerateOverallStatisticsReportResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GenerateOverallStatisticsReportResponse
+		var err error
+		defer close(result)
+		response, err = client.GenerateOverallStatisticsReport(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GenerateOverallStatisticsReportRequest is the request struct for api GenerateOverallStatisticsReport
+type GenerateOverallStatisticsReportRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// GenerateOverallStatisticsReportResponse is the response struct for api GenerateOverallStatisticsReport
+type GenerateOverallStatisticsReportResponse 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"`
+	OverallStatisticsReport OverallStatisticsReport `json:"OverallStatisticsReport" xml:"OverallStatisticsReport"`
+}
+
+// CreateGenerateOverallStatisticsReportRequest creates a request to invoke GenerateOverallStatisticsReport API
+func CreateGenerateOverallStatisticsReportRequest() (request *GenerateOverallStatisticsReportRequest) {
+	request = &GenerateOverallStatisticsReportRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "GenerateOverallStatisticsReport", "outboundbot", "openAPI")
+	return
+}
+
+// CreateGenerateOverallStatisticsReportResponse creates a response to parse from GenerateOverallStatisticsReport response
+func CreateGenerateOverallStatisticsReportResponse() (response *GenerateOverallStatisticsReportResponse) {
+	response = &GenerateOverallStatisticsReportResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/get_job_by_phone_number.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// GetJobByPhoneNumber invokes the outboundbot.GetJobByPhoneNumber API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/getjobbyphonenumber.html
+func (client *Client) GetJobByPhoneNumber(request *GetJobByPhoneNumberRequest) (response *GetJobByPhoneNumberResponse, err error) {
+	response = CreateGetJobByPhoneNumberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobByPhoneNumberWithChan invokes the outboundbot.GetJobByPhoneNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/getjobbyphonenumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobByPhoneNumberWithChan(request *GetJobByPhoneNumberRequest) (<-chan *GetJobByPhoneNumberResponse, <-chan error) {
+	responseChan := make(chan *GetJobByPhoneNumberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetJobByPhoneNumber(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetJobByPhoneNumberWithCallback invokes the outboundbot.GetJobByPhoneNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/getjobbyphonenumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetJobByPhoneNumberWithCallback(request *GetJobByPhoneNumberRequest, callback func(response *GetJobByPhoneNumberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetJobByPhoneNumberResponse
+		var err error
+		defer close(result)
+		response, err = client.GetJobByPhoneNumber(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetJobByPhoneNumberRequest is the request struct for api GetJobByPhoneNumber
+type GetJobByPhoneNumberRequest struct {
+	*requests.RpcRequest
+	PhoneNumber string `position:"Query" name:"PhoneNumber"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	JobGroupId  string `position:"Query" name:"JobGroupId"`
+}
+
+// GetJobByPhoneNumberResponse is the response struct for api GetJobByPhoneNumber
+type GetJobByPhoneNumberResponse 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           []Job  `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateGetJobByPhoneNumberRequest creates a request to invoke GetJobByPhoneNumber API
+func CreateGetJobByPhoneNumberRequest() (request *GetJobByPhoneNumberRequest) {
+	request = &GetJobByPhoneNumberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "GetJobByPhoneNumber", "outboundbot", "openAPI")
+	return
+}
+
+// CreateGetJobByPhoneNumberResponse creates a response to parse from GetJobByPhoneNumber response
+func CreateGetJobByPhoneNumberResponse() (response *GetJobByPhoneNumberResponse) {
+	response = &GetJobByPhoneNumberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/get_job_status_by_call_id.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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 outboundbot.GetJobStatusByCallId API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/getjobstatusbycallid.html
+func (client *Client) GetJobStatusByCallId(request *GetJobStatusByCallIdRequest) (response *GetJobStatusByCallIdResponse, err error) {
+	response = CreateGetJobStatusByCallIdResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetJobStatusByCallIdWithChan invokes the outboundbot.GetJobStatusByCallId API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.GetJobStatusByCallId API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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("OutboundBot", "2019-12-26", "GetJobStatusByCallId", "outboundbot", "openAPI")
+	return
+}
+
+// CreateGetJobStatusByCallIdResponse creates a response to parse from GetJobStatusByCallId response
+func CreateGetJobStatusByCallIdResponse() (response *GetJobStatusByCallIdResponse) {
+	response = &GetJobStatusByCallIdResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/get_tag_hits_summary.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// GetTagHitsSummary invokes the outboundbot.GetTagHitsSummary API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/gettaghitssummary.html
+func (client *Client) GetTagHitsSummary(request *GetTagHitsSummaryRequest) (response *GetTagHitsSummaryResponse, err error) {
+	response = CreateGetTagHitsSummaryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetTagHitsSummaryWithChan invokes the outboundbot.GetTagHitsSummary API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/gettaghitssummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTagHitsSummaryWithChan(request *GetTagHitsSummaryRequest) (<-chan *GetTagHitsSummaryResponse, <-chan error) {
+	responseChan := make(chan *GetTagHitsSummaryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetTagHitsSummary(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetTagHitsSummaryWithCallback invokes the outboundbot.GetTagHitsSummary API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/gettaghitssummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetTagHitsSummaryWithCallback(request *GetTagHitsSummaryRequest, callback func(response *GetTagHitsSummaryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetTagHitsSummaryResponse
+		var err error
+		defer close(result)
+		response, err = client.GetTagHitsSummary(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetTagHitsSummaryRequest is the request struct for api GetTagHitsSummary
+type GetTagHitsSummaryRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+}
+
+// GetTagHitsSummaryResponse is the response struct for api GetTagHitsSummary
+type GetTagHitsSummaryResponse 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"`
+	TagHitsList    []TagHits  `json:"TagHitsList" xml:"TagHitsList"`
+	TagGroups      []TagGroup `json:"TagGroups" xml:"TagGroups"`
+}
+
+// CreateGetTagHitsSummaryRequest creates a request to invoke GetTagHitsSummary API
+func CreateGetTagHitsSummaryRequest() (request *GetTagHitsSummaryRequest) {
+	request = &GetTagHitsSummaryRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "GetTagHitsSummary", "outboundbot", "openAPI")
+	return
+}
+
+// CreateGetTagHitsSummaryResponse creates a response to parse from GetTagHitsSummary response
+func CreateGetTagHitsSummaryResponse() (response *GetTagHitsSummaryResponse) {
+	response = &GetTagHitsSummaryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/import_script.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// ImportScript invokes the outboundbot.ImportScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/importscript.html
+func (client *Client) ImportScript(request *ImportScriptRequest) (response *ImportScriptResponse, err error) {
+	response = CreateImportScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ImportScriptWithChan invokes the outboundbot.ImportScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/importscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImportScriptWithChan(request *ImportScriptRequest) (<-chan *ImportScriptResponse, <-chan error) {
+	responseChan := make(chan *ImportScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ImportScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ImportScriptWithCallback invokes the outboundbot.ImportScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/importscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ImportScriptWithCallback(request *ImportScriptRequest, callback func(response *ImportScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ImportScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.ImportScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ImportScriptRequest is the request struct for api ImportScript
+type ImportScriptRequest struct {
+	*requests.RpcRequest
+	SignatureUrl string `position:"Query" name:"SignatureUrl"`
+	InstanceId   string `position:"Query" name:"InstanceId"`
+}
+
+// ImportScriptResponse is the response struct for api ImportScript
+type ImportScriptResponse 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"`
+	ScriptId       string `json:"ScriptId" xml:"ScriptId"`
+}
+
+// CreateImportScriptRequest creates a request to invoke ImportScript API
+func CreateImportScriptRequest() (request *ImportScriptRequest) {
+	request = &ImportScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ImportScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateImportScriptResponse creates a response to parse from ImportScript response
+func CreateImportScriptResponse() (response *ImportScriptResponse) {
+	response = &ImportScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/list_basic_statistics_report_sub_items.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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 outboundbot.ListBasicStatisticsReportSubItems API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listbasicstatisticsreportsubitems.html
+func (client *Client) ListBasicStatisticsReportSubItems(request *ListBasicStatisticsReportSubItemsRequest) (response *ListBasicStatisticsReportSubItemsResponse, err error) {
+	response = CreateListBasicStatisticsReportSubItemsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListBasicStatisticsReportSubItemsWithChan invokes the outboundbot.ListBasicStatisticsReportSubItems API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.ListBasicStatisticsReportSubItems API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	Title      string           `position:"Query" name:"Title"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// 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"`
+	BasicStatisticsReportSubItems BasicStatisticsReportSubItems `json:"BasicStatisticsReportSubItems" xml:"BasicStatisticsReportSubItems"`
+}
+
+// CreateListBasicStatisticsReportSubItemsRequest creates a request to invoke ListBasicStatisticsReportSubItems API
+func CreateListBasicStatisticsReportSubItemsRequest() (request *ListBasicStatisticsReportSubItemsRequest) {
+	request = &ListBasicStatisticsReportSubItemsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListBasicStatisticsReportSubItems", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListBasicStatisticsReportSubItemsResponse creates a response to parse from ListBasicStatisticsReportSubItems response
+func CreateListBasicStatisticsReportSubItemsResponse() (response *ListBasicStatisticsReportSubItemsResponse) {
+	response = &ListBasicStatisticsReportSubItemsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/list_conversations_with_unrecognized_intents.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// ListConversationsWithUnrecognizedIntents invokes the outboundbot.ListConversationsWithUnrecognizedIntents API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listconversationswithunrecognizedintents.html
+func (client *Client) ListConversationsWithUnrecognizedIntents(request *ListConversationsWithUnrecognizedIntentsRequest) (response *ListConversationsWithUnrecognizedIntentsResponse, err error) {
+	response = CreateListConversationsWithUnrecognizedIntentsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListConversationsWithUnrecognizedIntentsWithChan invokes the outboundbot.ListConversationsWithUnrecognizedIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listconversationswithunrecognizedintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListConversationsWithUnrecognizedIntentsWithChan(request *ListConversationsWithUnrecognizedIntentsRequest) (<-chan *ListConversationsWithUnrecognizedIntentsResponse, <-chan error) {
+	responseChan := make(chan *ListConversationsWithUnrecognizedIntentsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListConversationsWithUnrecognizedIntents(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListConversationsWithUnrecognizedIntentsWithCallback invokes the outboundbot.ListConversationsWithUnrecognizedIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listconversationswithunrecognizedintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListConversationsWithUnrecognizedIntentsWithCallback(request *ListConversationsWithUnrecognizedIntentsRequest, callback func(response *ListConversationsWithUnrecognizedIntentsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListConversationsWithUnrecognizedIntentsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListConversationsWithUnrecognizedIntents(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListConversationsWithUnrecognizedIntentsRequest is the request struct for api ListConversationsWithUnrecognizedIntents
+type ListConversationsWithUnrecognizedIntentsRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	JobGroupId string `position:"Query" name:"JobGroupId"`
+	NodeId     string `position:"Query" name:"NodeId"`
+}
+
+// ListConversationsWithUnrecognizedIntentsResponse is the response struct for api ListConversationsWithUnrecognizedIntents
+type ListConversationsWithUnrecognizedIntentsResponse 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"`
+	ConversationsWithUnrecognizedIntents []ConversationsWithUnrecognizedIntent `json:"ConversationsWithUnrecognizedIntents" xml:"ConversationsWithUnrecognizedIntents"`
+}
+
+// CreateListConversationsWithUnrecognizedIntentsRequest creates a request to invoke ListConversationsWithUnrecognizedIntents API
+func CreateListConversationsWithUnrecognizedIntentsRequest() (request *ListConversationsWithUnrecognizedIntentsRequest) {
+	request = &ListConversationsWithUnrecognizedIntentsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListConversationsWithUnrecognizedIntents", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListConversationsWithUnrecognizedIntentsResponse creates a response to parse from ListConversationsWithUnrecognizedIntents response
+func CreateListConversationsWithUnrecognizedIntentsResponse() (response *ListConversationsWithUnrecognizedIntentsResponse) {
+	response = &ListConversationsWithUnrecognizedIntentsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/list_dialogue_flows.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// ListDialogueFlows invokes the outboundbot.ListDialogueFlows API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listdialogueflows.html
+func (client *Client) ListDialogueFlows(request *ListDialogueFlowsRequest) (response *ListDialogueFlowsResponse, err error) {
+	response = CreateListDialogueFlowsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListDialogueFlowsWithChan invokes the outboundbot.ListDialogueFlows API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listdialogueflows.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListDialogueFlowsWithChan(request *ListDialogueFlowsRequest) (<-chan *ListDialogueFlowsResponse, <-chan error) {
+	responseChan := make(chan *ListDialogueFlowsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListDialogueFlows(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListDialogueFlowsWithCallback invokes the outboundbot.ListDialogueFlows API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listdialogueflows.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListDialogueFlowsWithCallback(request *ListDialogueFlowsRequest, callback func(response *ListDialogueFlowsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListDialogueFlowsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListDialogueFlows(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListDialogueFlowsRequest is the request struct for api ListDialogueFlows
+type ListDialogueFlowsRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// ListDialogueFlowsResponse is the response struct for api ListDialogueFlows
+type ListDialogueFlowsResponse 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"`
+	DialogueFlows  []DialogueFlow `json:"DialogueFlows" xml:"DialogueFlows"`
+}
+
+// CreateListDialogueFlowsRequest creates a request to invoke ListDialogueFlows API
+func CreateListDialogueFlowsRequest() (request *ListDialogueFlowsRequest) {
+	request = &ListDialogueFlowsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListDialogueFlows", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListDialogueFlowsResponse creates a response to parse from ListDialogueFlows response
+func CreateListDialogueFlowsResponse() (response *ListDialogueFlowsResponse) {
+	response = &ListDialogueFlowsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/list_global_questions.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// ListGlobalQuestions invokes the outboundbot.ListGlobalQuestions API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listglobalquestions.html
+func (client *Client) ListGlobalQuestions(request *ListGlobalQuestionsRequest) (response *ListGlobalQuestionsResponse, err error) {
+	response = CreateListGlobalQuestionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListGlobalQuestionsWithChan invokes the outboundbot.ListGlobalQuestions API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listglobalquestions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListGlobalQuestionsWithChan(request *ListGlobalQuestionsRequest) (<-chan *ListGlobalQuestionsResponse, <-chan error) {
+	responseChan := make(chan *ListGlobalQuestionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListGlobalQuestions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListGlobalQuestionsWithCallback invokes the outboundbot.ListGlobalQuestions API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listglobalquestions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListGlobalQuestionsWithCallback(request *ListGlobalQuestionsRequest, callback func(response *ListGlobalQuestionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListGlobalQuestionsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListGlobalQuestions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListGlobalQuestionsRequest is the request struct for api ListGlobalQuestions
+type ListGlobalQuestionsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	ScriptId   string           `position:"Query" name:"ScriptId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListGlobalQuestionsResponse is the response struct for api ListGlobalQuestions
+type ListGlobalQuestionsResponse 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"`
+	GlobalQuestions GlobalQuestions `json:"GlobalQuestions" xml:"GlobalQuestions"`
+}
+
+// CreateListGlobalQuestionsRequest creates a request to invoke ListGlobalQuestions API
+func CreateListGlobalQuestionsRequest() (request *ListGlobalQuestionsRequest) {
+	request = &ListGlobalQuestionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListGlobalQuestions", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListGlobalQuestionsResponse creates a response to parse from ListGlobalQuestions response
+func CreateListGlobalQuestionsResponse() (response *ListGlobalQuestionsResponse) {
+	response = &ListGlobalQuestionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/outboundbot/list_instances.go

@@ -0,0 +1,107 @@
+package outboundbot
+
+//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"
+)
+
+// ListInstances invokes the outboundbot.ListInstances API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listinstances.html
+func (client *Client) ListInstances(request *ListInstancesRequest) (response *ListInstancesResponse, err error) {
+	response = CreateListInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListInstancesWithChan invokes the outboundbot.ListInstances API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstancesWithChan(request *ListInstancesRequest) (<-chan *ListInstancesResponse, <-chan error) {
+	responseChan := make(chan *ListInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListInstancesWithCallback invokes the outboundbot.ListInstances API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListInstancesWithCallback(request *ListInstancesRequest, callback func(response *ListInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListInstancesRequest is the request struct for api ListInstances
+type ListInstancesRequest struct {
+	*requests.RpcRequest
+}
+
+// ListInstancesResponse is the response struct for api ListInstances
+type ListInstancesResponse 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      []Instance `json:"Instances" xml:"Instances"`
+}
+
+// CreateListInstancesRequest creates a request to invoke ListInstances API
+func CreateListInstancesRequest() (request *ListInstancesRequest) {
+	request = &ListInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListInstances", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListInstancesResponse creates a response to parse from ListInstances response
+func CreateListInstancesResponse() (response *ListInstancesResponse) {
+	response = &ListInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/list_intents.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ListIntents invokes the outboundbot.ListIntents API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listintents.html
+func (client *Client) ListIntents(request *ListIntentsRequest) (response *ListIntentsResponse, err error) {
+	response = CreateListIntentsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListIntentsWithChan invokes the outboundbot.ListIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListIntentsWithChan(request *ListIntentsRequest) (<-chan *ListIntentsResponse, <-chan error) {
+	responseChan := make(chan *ListIntentsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListIntents(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListIntentsWithCallback invokes the outboundbot.ListIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListIntentsWithCallback(request *ListIntentsRequest, callback func(response *ListIntentsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListIntentsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListIntents(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListIntentsRequest is the request struct for api ListIntents
+type ListIntentsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	ScriptId   string           `position:"Query" name:"ScriptId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	Keyword    string           `position:"Query" name:"Keyword"`
+}
+
+// ListIntentsResponse is the response struct for api ListIntents
+type ListIntentsResponse 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"`
+	Intents        Intents `json:"Intents" xml:"Intents"`
+}
+
+// CreateListIntentsRequest creates a request to invoke ListIntents API
+func CreateListIntentsRequest() (request *ListIntentsRequest) {
+	request = &ListIntentsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListIntents", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListIntentsResponse creates a response to parse from ListIntents response
+func CreateListIntentsResponse() (response *ListIntentsResponse) {
+	response = &ListIntentsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/list_job_groups.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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 outboundbot.ListJobGroups API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobgroups.html
+func (client *Client) ListJobGroups(request *ListJobGroupsRequest) (response *ListJobGroupsResponse, err error) {
+	response = CreateListJobGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobGroupsWithChan invokes the outboundbot.ListJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.ListJobGroups API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	EndTime    requests.Integer `position:"Query" name:"EndTime"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// 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("OutboundBot", "2019-12-26", "ListJobGroups", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListJobGroupsResponse creates a response to parse from ListJobGroups response
+func CreateListJobGroupsResponse() (response *ListJobGroupsResponse) {
+	response = &ListJobGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/list_job_groups_with_scenario.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ListJobGroupsWithScenario invokes the outboundbot.ListJobGroupsWithScenario API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobgroupswithscenario.html
+func (client *Client) ListJobGroupsWithScenario(request *ListJobGroupsWithScenarioRequest) (response *ListJobGroupsWithScenarioResponse, err error) {
+	response = CreateListJobGroupsWithScenarioResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobGroupsWithScenarioWithChan invokes the outboundbot.ListJobGroupsWithScenario API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobgroupswithscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobGroupsWithScenarioWithChan(request *ListJobGroupsWithScenarioRequest) (<-chan *ListJobGroupsWithScenarioResponse, <-chan error) {
+	responseChan := make(chan *ListJobGroupsWithScenarioResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobGroupsWithScenario(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobGroupsWithScenarioWithCallback invokes the outboundbot.ListJobGroupsWithScenario API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobgroupswithscenario.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobGroupsWithScenarioWithCallback(request *ListJobGroupsWithScenarioRequest, callback func(response *ListJobGroupsWithScenarioResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobGroupsWithScenarioResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobGroupsWithScenario(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobGroupsWithScenarioRequest is the request struct for api ListJobGroupsWithScenario
+type ListJobGroupsWithScenarioRequest struct {
+	*requests.RpcRequest
+	EndTime    requests.Integer `position:"Query" name:"EndTime"`
+	StartTime  requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListJobGroupsWithScenarioResponse is the response struct for api ListJobGroupsWithScenario
+type ListJobGroupsWithScenarioResponse 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"`
+}
+
+// CreateListJobGroupsWithScenarioRequest creates a request to invoke ListJobGroupsWithScenario API
+func CreateListJobGroupsWithScenarioRequest() (request *ListJobGroupsWithScenarioRequest) {
+	request = &ListJobGroupsWithScenarioRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListJobGroupsWithScenario", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListJobGroupsWithScenarioResponse creates a response to parse from ListJobGroupsWithScenario response
+func CreateListJobGroupsWithScenarioResponse() (response *ListJobGroupsWithScenarioResponse) {
+	response = &ListJobGroupsWithScenarioResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/list_jobs.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// ListJobs invokes the outboundbot.ListJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobs.html
+func (client *Client) ListJobs(request *ListJobsRequest) (response *ListJobsResponse, err error) {
+	response = CreateListJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobsWithChan invokes the outboundbot.ListJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobsWithChan(request *ListJobsRequest) (<-chan *ListJobsResponse, <-chan error) {
+	responseChan := make(chan *ListJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListJobsWithCallback invokes the outboundbot.ListJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListJobsWithCallback(request *ListJobsRequest, callback func(response *ListJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListJobsRequest is the request struct for api ListJobs
+type ListJobsRequest struct {
+	*requests.RpcRequest
+	JobId      *[]string `position:"Query" name:"JobId"  type:"Repeated"`
+	InstanceId string    `position:"Query" name:"InstanceId"`
+}
+
+// ListJobsResponse is the response struct for api ListJobs
+type ListJobsResponse 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           []Job  `json:"Jobs" xml:"Jobs"`
+}
+
+// CreateListJobsRequest creates a request to invoke ListJobs API
+func CreateListJobsRequest() (request *ListJobsRequest) {
+	request = &ListJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListJobsResponse creates a response to parse from ListJobs response
+func CreateListJobsResponse() (response *ListJobsResponse) {
+	response = &ListJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/list_jobs_by_group.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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 outboundbot.ListJobsByGroup API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listjobsbygroup.html
+func (client *Client) ListJobsByGroup(request *ListJobsByGroupRequest) (response *ListJobsByGroupResponse, err error) {
+	response = CreateListJobsByGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListJobsByGroupWithChan invokes the outboundbot.ListJobsByGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.ListJobsByGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	JobStatus        string           `position:"Query" name:"JobStatus"`
+	PageNumber       requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId       string           `position:"Query" name:"InstanceId"`
+	JobFailureReason string           `position:"Query" name:"JobFailureReason"`
+	JobGroupId       string           `position:"Query" name:"JobGroupId"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// 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("OutboundBot", "2019-12-26", "ListJobsByGroup", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListJobsByGroupResponse creates a response to parse from ListJobsByGroup response
+func CreateListJobsByGroupResponse() (response *ListJobsByGroupResponse) {
+	response = &ListJobsByGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/outboundbot/list_medias.go

@@ -0,0 +1,114 @@
+package outboundbot
+
+//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 outboundbot.ListMedias API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listmedias.html
+func (client *Client) ListMedias(request *ListMediasRequest) (response *ListMediasResponse, err error) {
+	response = CreateListMediasResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListMediasWithChan invokes the outboundbot.ListMedias API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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 outboundbot.ListMedias API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/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
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	NamePrefix string           `position:"Query" name:"NamePrefix"`
+}
+
+// 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"`
+	TotalCount     int     `json:"TotalCount" xml:"TotalCount"`
+	PageNumber     int     `json:"PageNumber" xml:"PageNumber"`
+	PageSize       int     `json:"PageSize" xml:"PageSize"`
+	MediaList      []Media `json:"MediaList" xml:"MediaList"`
+}
+
+// CreateListMediasRequest creates a request to invoke ListMedias API
+func CreateListMediasRequest() (request *ListMediasRequest) {
+	request = &ListMediasRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListMedias", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListMediasResponse creates a response to parse from ListMedias response
+func CreateListMediasResponse() (response *ListMediasResponse) {
+	response = &ListMediasResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/list_outbound_call_numbers.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// ListOutboundCallNumbers invokes the outboundbot.ListOutboundCallNumbers API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listoutboundcallnumbers.html
+func (client *Client) ListOutboundCallNumbers(request *ListOutboundCallNumbersRequest) (response *ListOutboundCallNumbersResponse, err error) {
+	response = CreateListOutboundCallNumbersResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListOutboundCallNumbersWithChan invokes the outboundbot.ListOutboundCallNumbers API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listoutboundcallnumbers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOutboundCallNumbersWithChan(request *ListOutboundCallNumbersRequest) (<-chan *ListOutboundCallNumbersResponse, <-chan error) {
+	responseChan := make(chan *ListOutboundCallNumbersResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListOutboundCallNumbers(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListOutboundCallNumbersWithCallback invokes the outboundbot.ListOutboundCallNumbers API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listoutboundcallnumbers.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListOutboundCallNumbersWithCallback(request *ListOutboundCallNumbersRequest, callback func(response *ListOutboundCallNumbersResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListOutboundCallNumbersResponse
+		var err error
+		defer close(result)
+		response, err = client.ListOutboundCallNumbers(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListOutboundCallNumbersRequest is the request struct for api ListOutboundCallNumbers
+type ListOutboundCallNumbersRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListOutboundCallNumbersResponse is the response struct for api ListOutboundCallNumbers
+type ListOutboundCallNumbersResponse 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"`
+	OutboundCallNumbers OutboundCallNumbers `json:"OutboundCallNumbers" xml:"OutboundCallNumbers"`
+}
+
+// CreateListOutboundCallNumbersRequest creates a request to invoke ListOutboundCallNumbers API
+func CreateListOutboundCallNumbersRequest() (request *ListOutboundCallNumbersRequest) {
+	request = &ListOutboundCallNumbersRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListOutboundCallNumbers", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListOutboundCallNumbersResponse creates a response to parse from ListOutboundCallNumbers response
+func CreateListOutboundCallNumbersResponse() (response *ListOutboundCallNumbersResponse) {
+	response = &ListOutboundCallNumbersResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/list_script_publish_histories.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// ListScriptPublishHistories invokes the outboundbot.ListScriptPublishHistories API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptpublishhistories.html
+func (client *Client) ListScriptPublishHistories(request *ListScriptPublishHistoriesRequest) (response *ListScriptPublishHistoriesResponse, err error) {
+	response = CreateListScriptPublishHistoriesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListScriptPublishHistoriesWithChan invokes the outboundbot.ListScriptPublishHistories API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptpublishhistories.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptPublishHistoriesWithChan(request *ListScriptPublishHistoriesRequest) (<-chan *ListScriptPublishHistoriesResponse, <-chan error) {
+	responseChan := make(chan *ListScriptPublishHistoriesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListScriptPublishHistories(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListScriptPublishHistoriesWithCallback invokes the outboundbot.ListScriptPublishHistories API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptpublishhistories.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptPublishHistoriesWithCallback(request *ListScriptPublishHistoriesRequest, callback func(response *ListScriptPublishHistoriesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListScriptPublishHistoriesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListScriptPublishHistories(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListScriptPublishHistoriesRequest is the request struct for api ListScriptPublishHistories
+type ListScriptPublishHistoriesRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	ScriptId   string           `position:"Query" name:"ScriptId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListScriptPublishHistoriesResponse is the response struct for api ListScriptPublishHistories
+type ListScriptPublishHistoriesResponse 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"`
+	ScriptPublishHistories ScriptPublishHistories `json:"ScriptPublishHistories" xml:"ScriptPublishHistories"`
+}
+
+// CreateListScriptPublishHistoriesRequest creates a request to invoke ListScriptPublishHistories API
+func CreateListScriptPublishHistoriesRequest() (request *ListScriptPublishHistoriesRequest) {
+	request = &ListScriptPublishHistoriesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListScriptPublishHistories", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListScriptPublishHistoriesResponse creates a response to parse from ListScriptPublishHistories response
+func CreateListScriptPublishHistoriesResponse() (response *ListScriptPublishHistoriesResponse) {
+	response = &ListScriptPublishHistoriesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/list_script_voice_configs.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// ListScriptVoiceConfigs invokes the outboundbot.ListScriptVoiceConfigs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptvoiceconfigs.html
+func (client *Client) ListScriptVoiceConfigs(request *ListScriptVoiceConfigsRequest) (response *ListScriptVoiceConfigsResponse, err error) {
+	response = CreateListScriptVoiceConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListScriptVoiceConfigsWithChan invokes the outboundbot.ListScriptVoiceConfigs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptvoiceconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptVoiceConfigsWithChan(request *ListScriptVoiceConfigsRequest) (<-chan *ListScriptVoiceConfigsResponse, <-chan error) {
+	responseChan := make(chan *ListScriptVoiceConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListScriptVoiceConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListScriptVoiceConfigsWithCallback invokes the outboundbot.ListScriptVoiceConfigs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscriptvoiceconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptVoiceConfigsWithCallback(request *ListScriptVoiceConfigsRequest, callback func(response *ListScriptVoiceConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListScriptVoiceConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListScriptVoiceConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListScriptVoiceConfigsRequest is the request struct for api ListScriptVoiceConfigs
+type ListScriptVoiceConfigsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	ScriptId   string           `position:"Query" name:"ScriptId"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListScriptVoiceConfigsResponse is the response struct for api ListScriptVoiceConfigs
+type ListScriptVoiceConfigsResponse 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"`
+	ScriptVoiceConfigs ScriptVoiceConfigs `json:"ScriptVoiceConfigs" xml:"ScriptVoiceConfigs"`
+}
+
+// CreateListScriptVoiceConfigsRequest creates a request to invoke ListScriptVoiceConfigs API
+func CreateListScriptVoiceConfigsRequest() (request *ListScriptVoiceConfigsRequest) {
+	request = &ListScriptVoiceConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListScriptVoiceConfigs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListScriptVoiceConfigsResponse creates a response to parse from ListScriptVoiceConfigs response
+func CreateListScriptVoiceConfigsResponse() (response *ListScriptVoiceConfigsResponse) {
+	response = &ListScriptVoiceConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/list_scripts.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// ListScripts invokes the outboundbot.ListScripts API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscripts.html
+func (client *Client) ListScripts(request *ListScriptsRequest) (response *ListScriptsResponse, err error) {
+	response = CreateListScriptsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListScriptsWithChan invokes the outboundbot.ListScripts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscripts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptsWithChan(request *ListScriptsRequest) (<-chan *ListScriptsResponse, <-chan error) {
+	responseChan := make(chan *ListScriptsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListScripts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListScriptsWithCallback invokes the outboundbot.ListScripts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listscripts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListScriptsWithCallback(request *ListScriptsRequest, callback func(response *ListScriptsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListScriptsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListScripts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListScriptsRequest is the request struct for api ListScripts
+type ListScriptsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListScriptsResponse is the response struct for api ListScripts
+type ListScriptsResponse 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"`
+	Scripts        Scripts `json:"Scripts" xml:"Scripts"`
+}
+
+// CreateListScriptsRequest creates a request to invoke ListScripts API
+func CreateListScriptsRequest() (request *ListScriptsRequest) {
+	request = &ListScriptsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListScripts", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListScriptsResponse creates a response to parse from ListScripts response
+func CreateListScriptsResponse() (response *ListScriptsResponse) {
+	response = &ListScriptsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/list_tags.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// ListTags invokes the outboundbot.ListTags API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listtags.html
+func (client *Client) ListTags(request *ListTagsRequest) (response *ListTagsResponse, err error) {
+	response = CreateListTagsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTagsWithChan invokes the outboundbot.ListTags API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listtags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagsWithChan(request *ListTagsRequest) (<-chan *ListTagsResponse, <-chan error) {
+	responseChan := make(chan *ListTagsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTags(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTagsWithCallback invokes the outboundbot.ListTags API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listtags.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagsWithCallback(request *ListTagsRequest, callback func(response *ListTagsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTagsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTags(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTagsRequest is the request struct for api ListTags
+type ListTagsRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// ListTagsResponse is the response struct for api ListTags
+type ListTagsResponse 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"`
+	Tags           []Tag      `json:"Tags" xml:"Tags"`
+	TagGroups      []TagGroup `json:"TagGroups" xml:"TagGroups"`
+}
+
+// CreateListTagsRequest creates a request to invoke ListTags API
+func CreateListTagsRequest() (request *ListTagsRequest) {
+	request = &ListTagsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListTags", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListTagsResponse creates a response to parse from ListTags response
+func CreateListTagsResponse() (response *ListTagsResponse) {
+	response = &ListTagsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/list_unreachable_contacts.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// ListUnreachableContacts invokes the outboundbot.ListUnreachableContacts API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunreachablecontacts.html
+func (client *Client) ListUnreachableContacts(request *ListUnreachableContactsRequest) (response *ListUnreachableContactsResponse, err error) {
+	response = CreateListUnreachableContactsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListUnreachableContactsWithChan invokes the outboundbot.ListUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunreachablecontacts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListUnreachableContactsWithChan(request *ListUnreachableContactsRequest) (<-chan *ListUnreachableContactsResponse, <-chan error) {
+	responseChan := make(chan *ListUnreachableContactsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListUnreachableContacts(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListUnreachableContactsWithCallback invokes the outboundbot.ListUnreachableContacts API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunreachablecontacts.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListUnreachableContactsWithCallback(request *ListUnreachableContactsRequest, callback func(response *ListUnreachableContactsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListUnreachableContactsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListUnreachableContacts(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListUnreachableContactsRequest is the request struct for api ListUnreachableContacts
+type ListUnreachableContactsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListUnreachableContactsResponse is the response struct for api ListUnreachableContacts
+type ListUnreachableContactsResponse 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"`
+	UnreachableContacts UnreachableContacts `json:"UnreachableContacts" xml:"UnreachableContacts"`
+}
+
+// CreateListUnreachableContactsRequest creates a request to invoke ListUnreachableContacts API
+func CreateListUnreachableContactsRequest() (request *ListUnreachableContactsRequest) {
+	request = &ListUnreachableContactsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListUnreachableContacts", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListUnreachableContactsResponse creates a response to parse from ListUnreachableContacts response
+func CreateListUnreachableContactsResponse() (response *ListUnreachableContactsResponse) {
+	response = &ListUnreachableContactsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/list_unrecognized_intents.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// ListUnrecognizedIntents invokes the outboundbot.ListUnrecognizedIntents API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunrecognizedintents.html
+func (client *Client) ListUnrecognizedIntents(request *ListUnrecognizedIntentsRequest) (response *ListUnrecognizedIntentsResponse, err error) {
+	response = CreateListUnrecognizedIntentsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListUnrecognizedIntentsWithChan invokes the outboundbot.ListUnrecognizedIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunrecognizedintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListUnrecognizedIntentsWithChan(request *ListUnrecognizedIntentsRequest) (<-chan *ListUnrecognizedIntentsResponse, <-chan error) {
+	responseChan := make(chan *ListUnrecognizedIntentsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListUnrecognizedIntents(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListUnrecognizedIntentsWithCallback invokes the outboundbot.ListUnrecognizedIntents API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/listunrecognizedintents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListUnrecognizedIntentsWithCallback(request *ListUnrecognizedIntentsRequest, callback func(response *ListUnrecognizedIntentsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListUnrecognizedIntentsResponse
+		var err error
+		defer close(result)
+		response, err = client.ListUnrecognizedIntents(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListUnrecognizedIntentsRequest is the request struct for api ListUnrecognizedIntents
+type ListUnrecognizedIntentsRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	JobGroupId string           `position:"Query" name:"JobGroupId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// ListUnrecognizedIntentsResponse is the response struct for api ListUnrecognizedIntents
+type ListUnrecognizedIntentsResponse 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"`
+	UnrecognizedIntents UnrecognizedIntents `json:"UnrecognizedIntents" xml:"UnrecognizedIntents"`
+}
+
+// CreateListUnrecognizedIntentsRequest creates a request to invoke ListUnrecognizedIntents API
+func CreateListUnrecognizedIntentsRequest() (request *ListUnrecognizedIntentsRequest) {
+	request = &ListUnrecognizedIntentsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ListUnrecognizedIntents", "outboundbot", "openAPI")
+	return
+}
+
+// CreateListUnrecognizedIntentsResponse creates a response to parse from ListUnrecognizedIntents response
+func CreateListUnrecognizedIntentsResponse() (response *ListUnrecognizedIntentsResponse) {
+	response = &ListUnrecognizedIntentsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/outboundbot/modify_batch_jobs.go

@@ -0,0 +1,117 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyBatchJobs invokes the outboundbot.ModifyBatchJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifybatchjobs.html
+func (client *Client) ModifyBatchJobs(request *ModifyBatchJobsRequest) (response *ModifyBatchJobsResponse, err error) {
+	response = CreateModifyBatchJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyBatchJobsWithChan invokes the outboundbot.ModifyBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifybatchjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBatchJobsWithChan(request *ModifyBatchJobsRequest) (<-chan *ModifyBatchJobsResponse, <-chan error) {
+	responseChan := make(chan *ModifyBatchJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyBatchJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyBatchJobsWithCallback invokes the outboundbot.ModifyBatchJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifybatchjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBatchJobsWithCallback(request *ModifyBatchJobsRequest, callback func(response *ModifyBatchJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyBatchJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyBatchJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyBatchJobsRequest is the request struct for api ModifyBatchJobs
+type ModifyBatchJobsRequest struct {
+	*requests.RpcRequest
+	Description   string           `position:"Query" name:"Description"`
+	JobFilePath   string           `position:"Query" name:"JobFilePath"`
+	CallingNumber *[]string        `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	ScriptId      string           `position:"Query" name:"ScriptId"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	Submitted     requests.Boolean `position:"Query" name:"Submitted"`
+	BatchJobName  string           `position:"Query" name:"BatchJobName"`
+	StrategyJson  string           `position:"Query" name:"StrategyJson"`
+	JobGroupId    string           `position:"Query" name:"JobGroupId"`
+	ScenarioId    string           `position:"Query" name:"ScenarioId"`
+}
+
+// ModifyBatchJobsResponse is the response struct for api ModifyBatchJobs
+type ModifyBatchJobsResponse 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"`
+}
+
+// CreateModifyBatchJobsRequest creates a request to invoke ModifyBatchJobs API
+func CreateModifyBatchJobsRequest() (request *ModifyBatchJobsRequest) {
+	request = &ModifyBatchJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyBatchJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyBatchJobsResponse creates a response to parse from ModifyBatchJobs response
+func CreateModifyBatchJobsResponse() (response *ModifyBatchJobsResponse) {
+	response = &ModifyBatchJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_dialogue_flow.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyDialogueFlow invokes the outboundbot.ModifyDialogueFlow API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifydialogueflow.html
+func (client *Client) ModifyDialogueFlow(request *ModifyDialogueFlowRequest) (response *ModifyDialogueFlowResponse, err error) {
+	response = CreateModifyDialogueFlowResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDialogueFlowWithChan invokes the outboundbot.ModifyDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifydialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDialogueFlowWithChan(request *ModifyDialogueFlowRequest) (<-chan *ModifyDialogueFlowResponse, <-chan error) {
+	responseChan := make(chan *ModifyDialogueFlowResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDialogueFlow(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDialogueFlowWithCallback invokes the outboundbot.ModifyDialogueFlow API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifydialogueflow.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDialogueFlowWithCallback(request *ModifyDialogueFlowRequest, callback func(response *ModifyDialogueFlowResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDialogueFlowResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDialogueFlow(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDialogueFlowRequest is the request struct for api ModifyDialogueFlow
+type ModifyDialogueFlowRequest struct {
+	*requests.RpcRequest
+	ScriptId               string `position:"Query" name:"ScriptId"`
+	InstanceId             string `position:"Query" name:"InstanceId"`
+	DialogueFlowDefinition string `position:"Query" name:"DialogueFlowDefinition"`
+	DialogueFlowId         string `position:"Query" name:"DialogueFlowId"`
+}
+
+// ModifyDialogueFlowResponse is the response struct for api ModifyDialogueFlow
+type ModifyDialogueFlowResponse 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"`
+	DialogueFlowId         string `json:"DialogueFlowId" xml:"DialogueFlowId"`
+	DialogueFlowDefinition string `json:"DialogueFlowDefinition" xml:"DialogueFlowDefinition"`
+}
+
+// CreateModifyDialogueFlowRequest creates a request to invoke ModifyDialogueFlow API
+func CreateModifyDialogueFlowRequest() (request *ModifyDialogueFlowRequest) {
+	request = &ModifyDialogueFlowRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyDialogueFlow", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyDialogueFlowResponse creates a response to parse from ModifyDialogueFlow response
+func CreateModifyDialogueFlowResponse() (response *ModifyDialogueFlowResponse) {
+	response = &ModifyDialogueFlowResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/outboundbot/modify_global_question.go

@@ -0,0 +1,114 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyGlobalQuestion invokes the outboundbot.ModifyGlobalQuestion API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyglobalquestion.html
+func (client *Client) ModifyGlobalQuestion(request *ModifyGlobalQuestionRequest) (response *ModifyGlobalQuestionResponse, err error) {
+	response = CreateModifyGlobalQuestionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyGlobalQuestionWithChan invokes the outboundbot.ModifyGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyGlobalQuestionWithChan(request *ModifyGlobalQuestionRequest) (<-chan *ModifyGlobalQuestionResponse, <-chan error) {
+	responseChan := make(chan *ModifyGlobalQuestionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyGlobalQuestion(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyGlobalQuestionWithCallback invokes the outboundbot.ModifyGlobalQuestion API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyglobalquestion.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyGlobalQuestionWithCallback(request *ModifyGlobalQuestionRequest, callback func(response *ModifyGlobalQuestionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyGlobalQuestionResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyGlobalQuestion(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyGlobalQuestionRequest is the request struct for api ModifyGlobalQuestion
+type ModifyGlobalQuestionRequest struct {
+	*requests.RpcRequest
+	GlobalQuestionId   string `position:"Query" name:"GlobalQuestionId"`
+	GlobalQuestionName string `position:"Query" name:"GlobalQuestionName"`
+	Questions          string `position:"Query" name:"Questions"`
+	Answers            string `position:"Query" name:"Answers"`
+	ScriptId           string `position:"Query" name:"ScriptId"`
+	InstanceId         string `position:"Query" name:"InstanceId"`
+	GlobalQuestionType string `position:"Query" name:"GlobalQuestionType"`
+}
+
+// ModifyGlobalQuestionResponse is the response struct for api ModifyGlobalQuestion
+type ModifyGlobalQuestionResponse 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"`
+	DialogueQuestionId string `json:"DialogueQuestionId" xml:"DialogueQuestionId"`
+}
+
+// CreateModifyGlobalQuestionRequest creates a request to invoke ModifyGlobalQuestion API
+func CreateModifyGlobalQuestionRequest() (request *ModifyGlobalQuestionRequest) {
+	request = &ModifyGlobalQuestionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyGlobalQuestion", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyGlobalQuestionResponse creates a response to parse from ModifyGlobalQuestion response
+func CreateModifyGlobalQuestionResponse() (response *ModifyGlobalQuestionResponse) {
+	response = &ModifyGlobalQuestionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_instance.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyInstance invokes the outboundbot.ModifyInstance API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyinstance.html
+func (client *Client) ModifyInstance(request *ModifyInstanceRequest) (response *ModifyInstanceResponse, err error) {
+	response = CreateModifyInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyInstanceWithChan invokes the outboundbot.ModifyInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceWithChan(request *ModifyInstanceRequest) (<-chan *ModifyInstanceResponse, <-chan error) {
+	responseChan := make(chan *ModifyInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyInstanceWithCallback invokes the outboundbot.ModifyInstance API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyInstanceWithCallback(request *ModifyInstanceRequest, callback func(response *ModifyInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyInstanceRequest is the request struct for api ModifyInstance
+type ModifyInstanceRequest struct {
+	*requests.RpcRequest
+	MaxConcurrentConversation requests.Integer `position:"Query" name:"MaxConcurrentConversation"`
+	InstanceId                string           `position:"Query" name:"InstanceId"`
+	InstanceName              string           `position:"Query" name:"InstanceName"`
+	CallCenterInstanceId      string           `position:"Query" name:"CallCenterInstanceId"`
+	InstanceDescription       string           `position:"Query" name:"InstanceDescription"`
+}
+
+// ModifyInstanceResponse is the response struct for api ModifyInstance
+type ModifyInstanceResponse 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"`
+}
+
+// CreateModifyInstanceRequest creates a request to invoke ModifyInstance API
+func CreateModifyInstanceRequest() (request *ModifyInstanceRequest) {
+	request = &ModifyInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyInstance", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyInstanceResponse creates a response to parse from ModifyInstance response
+func CreateModifyInstanceResponse() (response *ModifyInstanceResponse) {
+	response = &ModifyInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/outboundbot/modify_intent.go

@@ -0,0 +1,114 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyIntent invokes the outboundbot.ModifyIntent API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyintent.html
+func (client *Client) ModifyIntent(request *ModifyIntentRequest) (response *ModifyIntentResponse, err error) {
+	response = CreateModifyIntentResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyIntentWithChan invokes the outboundbot.ModifyIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyIntentWithChan(request *ModifyIntentRequest) (<-chan *ModifyIntentResponse, <-chan error) {
+	responseChan := make(chan *ModifyIntentResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyIntent(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyIntentWithCallback invokes the outboundbot.ModifyIntent API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyintent.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyIntentWithCallback(request *ModifyIntentRequest, callback func(response *ModifyIntentResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyIntentResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyIntent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyIntentRequest is the request struct for api ModifyIntent
+type ModifyIntentRequest struct {
+	*requests.RpcRequest
+	Utterances        string `position:"Query" name:"Utterances"`
+	Keywords          string `position:"Query" name:"Keywords"`
+	IntentDescription string `position:"Query" name:"IntentDescription"`
+	IntentId          string `position:"Query" name:"IntentId"`
+	ScriptId          string `position:"Query" name:"ScriptId"`
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	IntentName        string `position:"Query" name:"IntentName"`
+}
+
+// ModifyIntentResponse is the response struct for api ModifyIntent
+type ModifyIntentResponse 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"`
+	IntentId       string `json:"IntentId" xml:"IntentId"`
+}
+
+// CreateModifyIntentRequest creates a request to invoke ModifyIntent API
+func CreateModifyIntentRequest() (request *ModifyIntentRequest) {
+	request = &ModifyIntentRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyIntent", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyIntentResponse creates a response to parse from ModifyIntent response
+func CreateModifyIntentResponse() (response *ModifyIntentResponse) {
+	response = &ModifyIntentResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/outboundbot/modify_job_group.go

@@ -0,0 +1,115 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyJobGroup invokes the outboundbot.ModifyJobGroup API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyjobgroup.html
+func (client *Client) ModifyJobGroup(request *ModifyJobGroupRequest) (response *ModifyJobGroupResponse, err error) {
+	response = CreateModifyJobGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyJobGroupWithChan invokes the outboundbot.ModifyJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyJobGroupWithChan(request *ModifyJobGroupRequest) (<-chan *ModifyJobGroupResponse, <-chan error) {
+	responseChan := make(chan *ModifyJobGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyJobGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyJobGroupWithCallback invokes the outboundbot.ModifyJobGroup API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyjobgroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyJobGroupWithCallback(request *ModifyJobGroupRequest, callback func(response *ModifyJobGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyJobGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyJobGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyJobGroupRequest is the request struct for api ModifyJobGroup
+type ModifyJobGroupRequest struct {
+	*requests.RpcRequest
+	Description   string    `position:"Query" name:"Description"`
+	CallingNumber *[]string `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	ScriptId      string    `position:"Query" name:"ScriptId"`
+	InstanceId    string    `position:"Query" name:"InstanceId"`
+	StrategyJson  string    `position:"Query" name:"StrategyJson"`
+	JobGroupId    string    `position:"Query" name:"JobGroupId"`
+	Name          string    `position:"Query" name:"Name"`
+	ScenarioId    string    `position:"Query" name:"ScenarioId"`
+}
+
+// ModifyJobGroupResponse is the response struct for api ModifyJobGroup
+type ModifyJobGroupResponse 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"`
+}
+
+// CreateModifyJobGroupRequest creates a request to invoke ModifyJobGroup API
+func CreateModifyJobGroupRequest() (request *ModifyJobGroupRequest) {
+	request = &ModifyJobGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyJobGroup", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyJobGroupResponse creates a response to parse from ModifyJobGroup response
+func CreateModifyJobGroupResponse() (response *ModifyJobGroupResponse) {
+	response = &ModifyJobGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_outbound_call_number.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyOutboundCallNumber invokes the outboundbot.ModifyOutboundCallNumber API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyoutboundcallnumber.html
+func (client *Client) ModifyOutboundCallNumber(request *ModifyOutboundCallNumberRequest) (response *ModifyOutboundCallNumberResponse, err error) {
+	response = CreateModifyOutboundCallNumberResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyOutboundCallNumberWithChan invokes the outboundbot.ModifyOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyOutboundCallNumberWithChan(request *ModifyOutboundCallNumberRequest) (<-chan *ModifyOutboundCallNumberResponse, <-chan error) {
+	responseChan := make(chan *ModifyOutboundCallNumberResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyOutboundCallNumber(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyOutboundCallNumberWithCallback invokes the outboundbot.ModifyOutboundCallNumber API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyoutboundcallnumber.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyOutboundCallNumberWithCallback(request *ModifyOutboundCallNumberRequest, callback func(response *ModifyOutboundCallNumberResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyOutboundCallNumberResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyOutboundCallNumber(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyOutboundCallNumberRequest is the request struct for api ModifyOutboundCallNumber
+type ModifyOutboundCallNumberRequest struct {
+	*requests.RpcRequest
+	OutboundCallNumberId string           `position:"Query" name:"OutboundCallNumberId"`
+	RateLimitCount       requests.Integer `position:"Query" name:"RateLimitCount"`
+	Number               string           `position:"Query" name:"Number"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	RateLimitPeriod      requests.Integer `position:"Query" name:"RateLimitPeriod"`
+}
+
+// ModifyOutboundCallNumberResponse is the response struct for api ModifyOutboundCallNumber
+type ModifyOutboundCallNumberResponse 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"`
+	OutboundCallNumber OutboundCallNumber `json:"OutboundCallNumber" xml:"OutboundCallNumber"`
+}
+
+// CreateModifyOutboundCallNumberRequest creates a request to invoke ModifyOutboundCallNumber API
+func CreateModifyOutboundCallNumberRequest() (request *ModifyOutboundCallNumberRequest) {
+	request = &ModifyOutboundCallNumberRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyOutboundCallNumber", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyOutboundCallNumberResponse creates a response to parse from ModifyOutboundCallNumber response
+func CreateModifyOutboundCallNumberResponse() (response *ModifyOutboundCallNumberResponse) {
+	response = &ModifyOutboundCallNumberResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/modify_script.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyScript invokes the outboundbot.ModifyScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscript.html
+func (client *Client) ModifyScript(request *ModifyScriptRequest) (response *ModifyScriptResponse, err error) {
+	response = CreateModifyScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyScriptWithChan invokes the outboundbot.ModifyScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyScriptWithChan(request *ModifyScriptRequest) (<-chan *ModifyScriptResponse, <-chan error) {
+	responseChan := make(chan *ModifyScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyScriptWithCallback invokes the outboundbot.ModifyScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyScriptWithCallback(request *ModifyScriptRequest, callback func(response *ModifyScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyScriptRequest is the request struct for api ModifyScript
+type ModifyScriptRequest struct {
+	*requests.RpcRequest
+	Industry          string `position:"Query" name:"Industry"`
+	ScriptName        string `position:"Query" name:"ScriptName"`
+	Scene             string `position:"Query" name:"Scene"`
+	ScriptId          string `position:"Query" name:"ScriptId"`
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	ScriptDescription string `position:"Query" name:"ScriptDescription"`
+}
+
+// ModifyScriptResponse is the response struct for api ModifyScript
+type ModifyScriptResponse 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"`
+	Script         Script `json:"Script" xml:"Script"`
+}
+
+// CreateModifyScriptRequest creates a request to invoke ModifyScript API
+func CreateModifyScriptRequest() (request *ModifyScriptRequest) {
+	request = &ModifyScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyScriptResponse creates a response to parse from ModifyScript response
+func CreateModifyScriptResponse() (response *ModifyScriptResponse) {
+	response = &ModifyScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_script_voice_config.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyScriptVoiceConfig invokes the outboundbot.ModifyScriptVoiceConfig API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscriptvoiceconfig.html
+func (client *Client) ModifyScriptVoiceConfig(request *ModifyScriptVoiceConfigRequest) (response *ModifyScriptVoiceConfigResponse, err error) {
+	response = CreateModifyScriptVoiceConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyScriptVoiceConfigWithChan invokes the outboundbot.ModifyScriptVoiceConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscriptvoiceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyScriptVoiceConfigWithChan(request *ModifyScriptVoiceConfigRequest) (<-chan *ModifyScriptVoiceConfigResponse, <-chan error) {
+	responseChan := make(chan *ModifyScriptVoiceConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyScriptVoiceConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyScriptVoiceConfigWithCallback invokes the outboundbot.ModifyScriptVoiceConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyscriptvoiceconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyScriptVoiceConfigWithCallback(request *ModifyScriptVoiceConfigRequest, callback func(response *ModifyScriptVoiceConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyScriptVoiceConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyScriptVoiceConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyScriptVoiceConfigRequest is the request struct for api ModifyScriptVoiceConfig
+type ModifyScriptVoiceConfigRequest struct {
+	*requests.RpcRequest
+	Type                   string `position:"Query" name:"Type"`
+	ScriptId               string `position:"Query" name:"ScriptId"`
+	ScriptVoiceConfigId    string `position:"Query" name:"ScriptVoiceConfigId"`
+	InstanceId             string `position:"Query" name:"InstanceId"`
+	ScriptWaveformRelation string `position:"Query" name:"ScriptWaveformRelation"`
+}
+
+// ModifyScriptVoiceConfigResponse is the response struct for api ModifyScriptVoiceConfig
+type ModifyScriptVoiceConfigResponse 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"`
+	ScriptVoiceConfig ScriptVoiceConfig `json:"ScriptVoiceConfig" xml:"ScriptVoiceConfig"`
+}
+
+// CreateModifyScriptVoiceConfigRequest creates a request to invoke ModifyScriptVoiceConfig API
+func CreateModifyScriptVoiceConfigRequest() (request *ModifyScriptVoiceConfigRequest) {
+	request = &ModifyScriptVoiceConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyScriptVoiceConfig", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyScriptVoiceConfigResponse creates a response to parse from ModifyScriptVoiceConfig response
+func CreateModifyScriptVoiceConfigResponse() (response *ModifyScriptVoiceConfigResponse) {
+	response = &ModifyScriptVoiceConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_tag_groups.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyTagGroups invokes the outboundbot.ModifyTagGroups API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifytaggroups.html
+func (client *Client) ModifyTagGroups(request *ModifyTagGroupsRequest) (response *ModifyTagGroupsResponse, err error) {
+	response = CreateModifyTagGroupsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyTagGroupsWithChan invokes the outboundbot.ModifyTagGroups API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifytaggroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyTagGroupsWithChan(request *ModifyTagGroupsRequest) (<-chan *ModifyTagGroupsResponse, <-chan error) {
+	responseChan := make(chan *ModifyTagGroupsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyTagGroups(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyTagGroupsWithCallback invokes the outboundbot.ModifyTagGroups API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifytaggroups.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyTagGroupsWithCallback(request *ModifyTagGroupsRequest, callback func(response *ModifyTagGroupsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyTagGroupsResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyTagGroups(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyTagGroupsRequest is the request struct for api ModifyTagGroups
+type ModifyTagGroupsRequest struct {
+	*requests.RpcRequest
+	Tags       string `position:"Query" name:"Tags"`
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	TagGroups  string `position:"Query" name:"TagGroups"`
+}
+
+// ModifyTagGroupsResponse is the response struct for api ModifyTagGroups
+type ModifyTagGroupsResponse 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"`
+	Tags           []Tag      `json:"Tags" xml:"Tags"`
+	TagGroups      []TagGroup `json:"TagGroups" xml:"TagGroups"`
+}
+
+// CreateModifyTagGroupsRequest creates a request to invoke ModifyTagGroups API
+func CreateModifyTagGroupsRequest() (request *ModifyTagGroupsRequest) {
+	request = &ModifyTagGroupsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyTagGroups", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyTagGroupsResponse creates a response to parse from ModifyTagGroups response
+func CreateModifyTagGroupsResponse() (response *ModifyTagGroupsResponse) {
+	response = &ModifyTagGroupsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/modify_tts_config.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ModifyTTSConfig invokes the outboundbot.ModifyTTSConfig API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyttsconfig.html
+func (client *Client) ModifyTTSConfig(request *ModifyTTSConfigRequest) (response *ModifyTTSConfigResponse, err error) {
+	response = CreateModifyTTSConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyTTSConfigWithChan invokes the outboundbot.ModifyTTSConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyttsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyTTSConfigWithChan(request *ModifyTTSConfigRequest) (<-chan *ModifyTTSConfigResponse, <-chan error) {
+	responseChan := make(chan *ModifyTTSConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyTTSConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyTTSConfigWithCallback invokes the outboundbot.ModifyTTSConfig API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/modifyttsconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyTTSConfigWithCallback(request *ModifyTTSConfigRequest, callback func(response *ModifyTTSConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyTTSConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyTTSConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyTTSConfigRequest is the request struct for api ModifyTTSConfig
+type ModifyTTSConfigRequest struct {
+	*requests.RpcRequest
+	Voice      string `position:"Query" name:"Voice"`
+	Volume     string `position:"Query" name:"Volume"`
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SpeechRate string `position:"Query" name:"SpeechRate"`
+}
+
+// ModifyTTSConfigResponse is the response struct for api ModifyTTSConfig
+type ModifyTTSConfigResponse 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"`
+	TTSConfig      TTSConfig `json:"TTSConfig" xml:"TTSConfig"`
+}
+
+// CreateModifyTTSConfigRequest creates a request to invoke ModifyTTSConfig API
+func CreateModifyTTSConfigRequest() (request *ModifyTTSConfigRequest) {
+	request = &ModifyTTSConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ModifyTTSConfig", "outboundbot", "openAPI")
+	return
+}
+
+// CreateModifyTTSConfigResponse creates a response to parse from ModifyTTSConfig response
+func CreateModifyTTSConfigResponse() (response *ModifyTTSConfigResponse) {
+	response = &ModifyTTSConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/publish_script.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// PublishScript invokes the outboundbot.PublishScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscript.html
+func (client *Client) PublishScript(request *PublishScriptRequest) (response *PublishScriptResponse, err error) {
+	response = CreatePublishScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PublishScriptWithChan invokes the outboundbot.PublishScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PublishScriptWithChan(request *PublishScriptRequest) (<-chan *PublishScriptResponse, <-chan error) {
+	responseChan := make(chan *PublishScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PublishScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PublishScriptWithCallback invokes the outboundbot.PublishScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PublishScriptWithCallback(request *PublishScriptRequest, callback func(response *PublishScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PublishScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.PublishScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PublishScriptRequest is the request struct for api PublishScript
+type PublishScriptRequest struct {
+	*requests.RpcRequest
+	Description string `position:"Query" name:"Description"`
+	ScriptId    string `position:"Query" name:"ScriptId"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+}
+
+// PublishScriptResponse is the response struct for api PublishScript
+type PublishScriptResponse 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"`
+}
+
+// CreatePublishScriptRequest creates a request to invoke PublishScript API
+func CreatePublishScriptRequest() (request *PublishScriptRequest) {
+	request = &PublishScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "PublishScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreatePublishScriptResponse creates a response to parse from PublishScript response
+func CreatePublishScriptResponse() (response *PublishScriptResponse) {
+	response = &PublishScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/outboundbot/publish_script_for_debug.go

@@ -0,0 +1,108 @@
+package outboundbot
+
+//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"
+)
+
+// PublishScriptForDebug invokes the outboundbot.PublishScriptForDebug API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscriptfordebug.html
+func (client *Client) PublishScriptForDebug(request *PublishScriptForDebugRequest) (response *PublishScriptForDebugResponse, err error) {
+	response = CreatePublishScriptForDebugResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PublishScriptForDebugWithChan invokes the outboundbot.PublishScriptForDebug API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscriptfordebug.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PublishScriptForDebugWithChan(request *PublishScriptForDebugRequest) (<-chan *PublishScriptForDebugResponse, <-chan error) {
+	responseChan := make(chan *PublishScriptForDebugResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PublishScriptForDebug(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PublishScriptForDebugWithCallback invokes the outboundbot.PublishScriptForDebug API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/publishscriptfordebug.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PublishScriptForDebugWithCallback(request *PublishScriptForDebugRequest, callback func(response *PublishScriptForDebugResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PublishScriptForDebugResponse
+		var err error
+		defer close(result)
+		response, err = client.PublishScriptForDebug(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PublishScriptForDebugRequest is the request struct for api PublishScriptForDebug
+type PublishScriptForDebugRequest struct {
+	*requests.RpcRequest
+	ScriptId   string `position:"Query" name:"ScriptId"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+}
+
+// PublishScriptForDebugResponse is the response struct for api PublishScriptForDebug
+type PublishScriptForDebugResponse 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"`
+}
+
+// CreatePublishScriptForDebugRequest creates a request to invoke PublishScriptForDebug API
+func CreatePublishScriptForDebugRequest() (request *PublishScriptForDebugRequest) {
+	request = &PublishScriptForDebugRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "PublishScriptForDebug", "outboundbot", "openAPI")
+	return
+}
+
+// CreatePublishScriptForDebugResponse creates a response to parse from PublishScriptForDebug response
+func CreatePublishScriptForDebugResponse() (response *PublishScriptForDebugResponse) {
+	response = &PublishScriptForDebugResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/outboundbot/query_jobs.go

@@ -0,0 +1,117 @@
+package outboundbot
+
+//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"
+)
+
+// QueryJobs invokes the outboundbot.QueryJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryjobs.html
+func (client *Client) QueryJobs(request *QueryJobsRequest) (response *QueryJobsResponse, err error) {
+	response = CreateQueryJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryJobsWithChan invokes the outboundbot.QueryJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryJobsWithChan(request *QueryJobsRequest) (<-chan *QueryJobsResponse, <-chan error) {
+	responseChan := make(chan *QueryJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryJobsWithCallback invokes the outboundbot.QueryJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryjobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryJobsWithCallback(request *QueryJobsRequest, callback func(response *QueryJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryJobsRequest is the request struct for api QueryJobs
+type QueryJobsRequest struct {
+	*requests.RpcRequest
+	TimeAlignment string           `position:"Query" name:"TimeAlignment"`
+	PhoneNumber   string           `position:"Query" name:"PhoneNumber"`
+	EndTime       requests.Integer `position:"Query" name:"EndTime"`
+	StartTime     requests.Integer `position:"Query" name:"StartTime"`
+	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
+	ContactName   string           `position:"Query" name:"ContactName"`
+	InstanceId    string           `position:"Query" name:"InstanceId"`
+	JobGroupId    string           `position:"Query" name:"JobGroupId"`
+	PageSize      requests.Integer `position:"Query" name:"PageSize"`
+	ScenarioId    string           `position:"Query" name:"ScenarioId"`
+}
+
+// QueryJobsResponse is the response struct for api QueryJobs
+type QueryJobsResponse 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"`
+}
+
+// CreateQueryJobsRequest creates a request to invoke QueryJobs API
+func CreateQueryJobsRequest() (request *QueryJobsRequest) {
+	request = &QueryJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "QueryJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateQueryJobsResponse creates a response to parse from QueryJobs response
+func CreateQueryJobsResponse() (response *QueryJobsResponse) {
+	response = &QueryJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/outboundbot/query_script_waveforms.go

@@ -0,0 +1,110 @@
+package outboundbot
+
+//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"
+)
+
+// QueryScriptWaveforms invokes the outboundbot.QueryScriptWaveforms API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptwaveforms.html
+func (client *Client) QueryScriptWaveforms(request *QueryScriptWaveformsRequest) (response *QueryScriptWaveformsResponse, err error) {
+	response = CreateQueryScriptWaveformsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryScriptWaveformsWithChan invokes the outboundbot.QueryScriptWaveforms API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptwaveforms.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryScriptWaveformsWithChan(request *QueryScriptWaveformsRequest) (<-chan *QueryScriptWaveformsResponse, <-chan error) {
+	responseChan := make(chan *QueryScriptWaveformsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryScriptWaveforms(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryScriptWaveformsWithCallback invokes the outboundbot.QueryScriptWaveforms API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptwaveforms.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryScriptWaveformsWithCallback(request *QueryScriptWaveformsRequest, callback func(response *QueryScriptWaveformsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryScriptWaveformsResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryScriptWaveforms(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryScriptWaveformsRequest is the request struct for api QueryScriptWaveforms
+type QueryScriptWaveformsRequest struct {
+	*requests.RpcRequest
+	ScriptId      string `position:"Query" name:"ScriptId"`
+	InstanceId    string `position:"Query" name:"InstanceId"`
+	ScriptContent string `position:"Query" name:"ScriptContent"`
+}
+
+// QueryScriptWaveformsResponse is the response struct for api QueryScriptWaveforms
+type QueryScriptWaveformsResponse 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"`
+	ScriptWaveforms []ScriptWaveform `json:"ScriptWaveforms" xml:"ScriptWaveforms"`
+}
+
+// CreateQueryScriptWaveformsRequest creates a request to invoke QueryScriptWaveforms API
+func CreateQueryScriptWaveformsRequest() (request *QueryScriptWaveformsRequest) {
+	request = &QueryScriptWaveformsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "QueryScriptWaveforms", "outboundbot", "openAPI")
+	return
+}
+
+// CreateQueryScriptWaveformsResponse creates a response to parse from QueryScriptWaveforms response
+func CreateQueryScriptWaveformsResponse() (response *QueryScriptWaveformsResponse) {
+	response = &QueryScriptWaveformsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/outboundbot/query_scripts_by_status.go

@@ -0,0 +1,111 @@
+package outboundbot
+
+//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"
+)
+
+// QueryScriptsByStatus invokes the outboundbot.QueryScriptsByStatus API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptsbystatus.html
+func (client *Client) QueryScriptsByStatus(request *QueryScriptsByStatusRequest) (response *QueryScriptsByStatusResponse, err error) {
+	response = CreateQueryScriptsByStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryScriptsByStatusWithChan invokes the outboundbot.QueryScriptsByStatus API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptsbystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryScriptsByStatusWithChan(request *QueryScriptsByStatusRequest) (<-chan *QueryScriptsByStatusResponse, <-chan error) {
+	responseChan := make(chan *QueryScriptsByStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryScriptsByStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryScriptsByStatusWithCallback invokes the outboundbot.QueryScriptsByStatus API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/queryscriptsbystatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryScriptsByStatusWithCallback(request *QueryScriptsByStatusRequest, callback func(response *QueryScriptsByStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryScriptsByStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryScriptsByStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryScriptsByStatusRequest is the request struct for api QueryScriptsByStatus
+type QueryScriptsByStatusRequest struct {
+	*requests.RpcRequest
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	Status     string           `position:"Query" name:"Status"`
+}
+
+// QueryScriptsByStatusResponse is the response struct for api QueryScriptsByStatus
+type QueryScriptsByStatusResponse 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"`
+	Scripts        Scripts `json:"Scripts" xml:"Scripts"`
+}
+
+// CreateQueryScriptsByStatusRequest creates a request to invoke QueryScriptsByStatus API
+func CreateQueryScriptsByStatusRequest() (request *QueryScriptsByStatusRequest) {
+	request = &QueryScriptsByStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "QueryScriptsByStatus", "outboundbot", "openAPI")
+	return
+}
+
+// CreateQueryScriptsByStatusResponse creates a response to parse from QueryScriptsByStatus response
+func CreateQueryScriptsByStatusResponse() (response *QueryScriptsByStatusResponse) {
+	response = &QueryScriptsByStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/record_failure.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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"
+)
+
+// RecordFailure invokes the outboundbot.RecordFailure API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/recordfailure.html
+func (client *Client) RecordFailure(request *RecordFailureRequest) (response *RecordFailureResponse, err error) {
+	response = CreateRecordFailureResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RecordFailureWithChan invokes the outboundbot.RecordFailure API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/recordfailure.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RecordFailureWithChan(request *RecordFailureRequest) (<-chan *RecordFailureResponse, <-chan error) {
+	responseChan := make(chan *RecordFailureResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RecordFailure(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RecordFailureWithCallback invokes the outboundbot.RecordFailure API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/recordfailure.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RecordFailureWithCallback(request *RecordFailureRequest, callback func(response *RecordFailureResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RecordFailureResponse
+		var err error
+		defer close(result)
+		response, err = client.RecordFailure(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RecordFailureRequest is the request struct for api RecordFailure
+type RecordFailureRequest struct {
+	*requests.RpcRequest
+	CallId          string           `position:"Query" name:"CallId"`
+	ActualTime      requests.Integer `position:"Query" name:"ActualTime"`
+	CallingNumber   string           `position:"Query" name:"CallingNumber"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	DispositionCode string           `position:"Query" name:"DispositionCode"`
+	CalledNumber    string           `position:"Query" name:"CalledNumber"`
+	TaskId          string           `position:"Query" name:"TaskId"`
+}
+
+// RecordFailureResponse is the response struct for api RecordFailure
+type RecordFailureResponse 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"`
+}
+
+// CreateRecordFailureRequest creates a request to invoke RecordFailure API
+func CreateRecordFailureRequest() (request *RecordFailureRequest) {
+	request = &RecordFailureRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "RecordFailure", "outboundbot", "openAPI")
+	return
+}
+
+// CreateRecordFailureResponse creates a response to parse from RecordFailure response
+func CreateRecordFailureResponse() (response *RecordFailureResponse) {
+	response = &RecordFailureResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/outboundbot/resume_jobs.go

@@ -0,0 +1,112 @@
+package outboundbot
+
+//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"
+)
+
+// ResumeJobs invokes the outboundbot.ResumeJobs API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/resumejobs.html
+func (client *Client) ResumeJobs(request *ResumeJobsRequest) (response *ResumeJobsResponse, err error) {
+	response = CreateResumeJobsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ResumeJobsWithChan invokes the outboundbot.ResumeJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/resumejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResumeJobsWithChan(request *ResumeJobsRequest) (<-chan *ResumeJobsResponse, <-chan error) {
+	responseChan := make(chan *ResumeJobsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResumeJobs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ResumeJobsWithCallback invokes the outboundbot.ResumeJobs API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/resumejobs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResumeJobsWithCallback(request *ResumeJobsRequest, callback func(response *ResumeJobsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResumeJobsResponse
+		var err error
+		defer close(result)
+		response, err = client.ResumeJobs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ResumeJobsRequest is the request struct for api ResumeJobs
+type ResumeJobsRequest struct {
+	*requests.RpcRequest
+	All            requests.Boolean `position:"Query" name:"All"`
+	JobReferenceId *[]string        `position:"Query" name:"JobReferenceId"  type:"Repeated"`
+	JobId          *[]string        `position:"Query" name:"JobId"  type:"Repeated"`
+	InstanceId     string           `position:"Query" name:"InstanceId"`
+	JobGroupId     string           `position:"Query" name:"JobGroupId"`
+	ScenarioId     string           `position:"Query" name:"ScenarioId"`
+}
+
+// ResumeJobsResponse is the response struct for api ResumeJobs
+type ResumeJobsResponse 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"`
+}
+
+// CreateResumeJobsRequest creates a request to invoke ResumeJobs API
+func CreateResumeJobsRequest() (request *ResumeJobsRequest) {
+	request = &ResumeJobsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "ResumeJobs", "outboundbot", "openAPI")
+	return
+}
+
+// CreateResumeJobsResponse creates a response to parse from ResumeJobs response
+func CreateResumeJobsResponse() (response *ResumeJobsResponse) {
+	response = &ResumeJobsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/outboundbot/rollback_script.go

@@ -0,0 +1,109 @@
+package outboundbot
+
+//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"
+)
+
+// RollbackScript invokes the outboundbot.RollbackScript API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/rollbackscript.html
+func (client *Client) RollbackScript(request *RollbackScriptRequest) (response *RollbackScriptResponse, err error) {
+	response = CreateRollbackScriptResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RollbackScriptWithChan invokes the outboundbot.RollbackScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/rollbackscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RollbackScriptWithChan(request *RollbackScriptRequest) (<-chan *RollbackScriptResponse, <-chan error) {
+	responseChan := make(chan *RollbackScriptResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RollbackScript(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RollbackScriptWithCallback invokes the outboundbot.RollbackScript API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/rollbackscript.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RollbackScriptWithCallback(request *RollbackScriptRequest, callback func(response *RollbackScriptResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RollbackScriptResponse
+		var err error
+		defer close(result)
+		response, err = client.RollbackScript(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RollbackScriptRequest is the request struct for api RollbackScript
+type RollbackScriptRequest struct {
+	*requests.RpcRequest
+	ScriptId        string `position:"Query" name:"ScriptId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	RollbackVersion string `position:"Query" name:"RollbackVersion"`
+}
+
+// RollbackScriptResponse is the response struct for api RollbackScript
+type RollbackScriptResponse 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"`
+}
+
+// CreateRollbackScriptRequest creates a request to invoke RollbackScript API
+func CreateRollbackScriptRequest() (request *RollbackScriptRequest) {
+	request = &RollbackScriptRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "RollbackScript", "outboundbot", "openAPI")
+	return
+}
+
+// CreateRollbackScriptResponse creates a response to parse from RollbackScript response
+func CreateRollbackScriptResponse() (response *RollbackScriptResponse) {
+	response = &RollbackScriptResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/outboundbot/start_job.go

@@ -0,0 +1,113 @@
+package outboundbot
+
+//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"
+)
+
+// StartJob invokes the outboundbot.StartJob API synchronously
+// api document: https://help.aliyun.com/api/outboundbot/startjob.html
+func (client *Client) StartJob(request *StartJobRequest) (response *StartJobResponse, err error) {
+	response = CreateStartJobResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartJobWithChan invokes the outboundbot.StartJob API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/startjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartJobWithChan(request *StartJobRequest) (<-chan *StartJobResponse, <-chan error) {
+	responseChan := make(chan *StartJobResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartJob(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartJobWithCallback invokes the outboundbot.StartJob API asynchronously
+// api document: https://help.aliyun.com/api/outboundbot/startjob.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartJobWithCallback(request *StartJobRequest, callback func(response *StartJobResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartJobResponse
+		var err error
+		defer close(result)
+		response, err = client.StartJob(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartJobRequest is the request struct for api StartJob
+type StartJobRequest struct {
+	*requests.RpcRequest
+	JobJson              string           `position:"Query" name:"JobJson"`
+	CallingNumber        *[]string        `position:"Query" name:"CallingNumber"  type:"Repeated"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	JobGroupId           string           `position:"Query" name:"JobGroupId"`
+	SelfHostedCallCenter requests.Boolean `position:"Query" name:"SelfHostedCallCenter"`
+	ScenarioId           string           `position:"Query" name:"ScenarioId"`
+}
+
+// StartJobResponse is the response struct for api StartJob
+type StartJobResponse 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"`
+	TaskIds        []KeyValuePair `json:"TaskIds" xml:"TaskIds"`
+}
+
+// CreateStartJobRequest creates a request to invoke StartJob API
+func CreateStartJobRequest() (request *StartJobRequest) {
+	request = &StartJobRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("OutboundBot", "2019-12-26", "StartJob", "outboundbot", "openAPI")
+	return
+}
+
+// CreateStartJobResponse creates a response to parse from StartJob response
+func CreateStartJobResponse() (response *StartJobResponse) {
+	response = &StartJobResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/outboundbot/struct_basic_statistics_report.go

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

+ 24 - 0
services/outboundbot/struct_basic_statistics_report_item.go

@@ -0,0 +1,24 @@
+package outboundbot
+
+//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.
+
+// BasicStatisticsReportItem is a nested struct in outboundbot response
+type BasicStatisticsReportItem struct {
+	Title      string                         `json:"Title" xml:"Title"`
+	TotalCount int                            `json:"TotalCount" xml:"TotalCount"`
+	GraphType  string                         `json:"GraphType" xml:"GraphType"`
+	SubItems   []BasicStatisticsReportSubItem `json:"SubItems" xml:"SubItems"`
+}

+ 26 - 0
services/outboundbot/struct_basic_statistics_report_sub_item.go

@@ -0,0 +1,26 @@
+package outboundbot
+
+//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.
+
+// BasicStatisticsReportSubItem is a nested struct in outboundbot response
+type BasicStatisticsReportSubItem struct {
+	Value                            string         `json:"Value" xml:"Value"`
+	Count                            int            `json:"Count" xml:"Count"`
+	BasicStatisticsReportSubItemName string         `json:"BasicStatisticsReportSubItemName" xml:"BasicStatisticsReportSubItemName"`
+	Percentage                       int            `json:"Percentage" xml:"Percentage"`
+	Row                              []KeyValuePair `json:"Row" xml:"Row"`
+	Details                          []KeyValuePair `json:"Details" xml:"Details"`
+}

+ 24 - 0
services/outboundbot/struct_basic_statistics_report_sub_items.go

@@ -0,0 +1,24 @@
+package outboundbot
+
+//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.
+
+// BasicStatisticsReportSubItems is a nested struct in outboundbot response
+type BasicStatisticsReportSubItems struct {
+	TotalCount int                            `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int                            `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int                            `json:"PageSize" xml:"PageSize"`
+	List       []BasicStatisticsReportSubItem `json:"List" xml:"List"`
+}

+ 28 - 0
services/outboundbot/struct_batch_job.go

@@ -0,0 +1,28 @@
+package outboundbot
+
+//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.
+
+// BatchJob is a nested struct in outboundbot response
+type BatchJob struct {
+	BatchJobId          string   `json:"BatchJobId" xml:"BatchJobId"`
+	JobGroupName        string   `json:"JobGroupName" xml:"JobGroupName"`
+	JobGroupDescription string   `json:"JobGroupDescription" xml:"JobGroupDescription"`
+	ScenarioId          string   `json:"ScenarioId" xml:"ScenarioId"`
+	JobFilePath         string   `json:"JobFilePath" xml:"JobFilePath"`
+	CreationTime        int64    `json:"CreationTime" xml:"CreationTime"`
+	CallingNumbers      []string `json:"CallingNumbers" xml:"CallingNumbers"`
+	Strategy            Strategy `json:"Strategy" xml:"Strategy"`
+}

+ 21 - 0
services/outboundbot/struct_briefs_in_describe_job_group.go

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

+ 21 - 0
services/outboundbot/struct_briefs_in_generate_overall_statistics_report.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_create_batch_jobs.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_create_job_group.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_describe_job.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_describe_job_group.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_get_job_by_phone_number.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_get_job_status_by_call_id.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_list_job_groups_with_scenario.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_list_jobs.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_list_jobs_by_group.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_modify_batch_jobs.go

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

+ 21 - 0
services/outboundbot/struct_calling_numbers_in_modify_job_group.go

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

Некоторые файлы не были показаны из-за большого количества измененных файлов