
# 新增外呼活动的特殊日期
#### 前置条件
- 已经申请了开发者账号。
- 已经获取到需要的外呼活动的ID。
- 外呼活动已创建的特殊日期数目小于20个。
 
#### 场景描述
调用该接口为指定外呼活动新增特殊日期。
#### 接口方法
该接口仅支持POST方法。
#### 接口URL
https://ip:port/rest/isales/v1/openapi/campaigns/{vdnId}/holiday/{campaignId}
其中，ip为CC-iSales服务器地址，port为CC-iSales服务器的HTTPS端口号。
表1URL中携带的参数说明 
| 序号 | 参数名        | 参数类型 | 是否必选 | 说明                                                                                                                                |
|:---|:---|:---|:---|:---|
| 1  | vdnId      | int  | True | 虚拟呼叫中心ID。 取值的类型为整数，取值范围为1～9999。 |
| 2  | campaignId | int  | True | 外呼活动的ID。                                                                                                                          |
   
#### 请求说明
表2请求消息头参数 
| 序号 | 名称            | 参数类型   | 是否必选  | 说明                                                                                                                            |
|:---|:---|:---|:---|:---|
| 1  | Content-Type  | String | True  | 固定填 application/json;charset=UTF-8。                                                                                           |
| 2  | Authorization | String | True  | 生成方式参见[C2 监控/系统外呼/话单/知识库类接口鉴权方式](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0003.html#ZH-CN_TOPIC_0000002481273406)。 |
| 3  | locale        | String | False | i18n（internationalization，国际语言代码），如zh_CN表示中文、en_US表示英文等，默认zh_CN。                                                              |
   
表3请求消息体参数说明 
| 序号 | 参数名            | 参数类型   | 是否必选  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|:---|
| 1  | scheduleSource | String | False | 特殊日期模式，建议使用reference。 - reference：引用已有的特殊日期定义，holidayList必填。  - custom：自定义特殊日期。                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 2  | name           | String | False | 特殊日期名称。 名称不能重复，最大长度为30个字符。 当scheduleSource=reference时，不生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 3  | type           | int    | False | 当scheduleSource=reference时，不生效。 特殊日期的类型。 取值范围： 1：按周设置 2：按日期设置 3：按日期重复                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 4  | week           | String | False | 当scheduleSource=reference时，不生效。 星期，特殊日期的类型为按周设置时为True。 取值范围： 1：星期一 2：星期二 3：星期三 4：星期四 5：星期五 6：星期六 7：星期天 同时选择多天时以逗号分隔，例如"6,7"表示星期六、星期天 |
| 5  | beginTime      | String | False | 当scheduleSource=reference时，不生效。 开始时间，特殊日期的类型为按日期设置或按日期重复时为True。使用租户对应的时区时间。 - 特殊日期的类型为2时，数据格式：yyyy-MM-dd  - 特殊日期的类型为3时，数据格式：MM-dd                                                                                                                                                                                                                                                                                                                   |
| 6  | endTime        | String | False | 当scheduleSource=reference时，不生效。 结束时间，特殊日期的类型为按日期设置或按日期重复时为True。使用租户对应的时区时间。 - 特殊日期的类型为2时，数据格式：yyyy-MM-dd  - 特殊日期的类型为3时，数据格式：MM-dd                                                                                                                                                                                                                                                                                                                 |
| 7  | holidayList    | List   | False | - 特殊日期列表，一个活动最大支持20个特殊日期，通过引用已有节假日时填写，推荐使用此方式。  - 当scheduleSource=reference时，必填。  - 当scheduleSource=custom时，holidayList不生效。                                                                                                                                                                                                                                                                                                             |
   
表4holidayList参数说明 
| 序号 | 参数名        | 参数类型   | 是否必选  | 说明                                                                      |
|:---|:---|:---|:---|:---|
| 1  | holidayId  | int    | True  | 已定义的节假期id，如果所有节假日的可呼叫时间一致，可通过设置活动中的holidayBeginTime1、holidayEndTime1参数。 |
| 2  | beginTime1 | String | False | 可呼叫开始时间1，格式HH:MM                                                        |
| 3  | endTime1   | String | False | 可呼叫结束时间1，格式HH:MM                                                        |
| 4  | beginTime2 | String | False | 可呼叫开始时间2，格式HH:MM                                                        |
| 5  | endTime2   | String | False | 可呼叫结束时间2，格式HH:MM                                                        |
| 6  | beginTime3 | String | False | 可呼叫开始时间3，格式HH:MM                                                        |
| 7  | endTime3   | String | False | 可呼叫结束时间3，格式HH:MM                                                        |
   
#### 响应说明
表5消息体参数说明 
| 序号 | 参数名          | 参数类型   | 说明                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| 1  | resultCode   | String | 原因码。0200000表示成功，其他表示失败。 具体见[表7]  |
| 2  | resultDesc   | String | 描述。                                                                                                                                                                                                                                        |
| 3  | returnObject | Object | 当scheduleSource=custom时，会有值。 参见[表6]。  |
| 4  | returnCode   | String | 原因码。0200000表示成功，其他表示失败。 具体见[表7] |
| 5  | returnDesc   | String | 描述。                                                                                                                                                                                                                                        |
   
 表6returnObject参数说明 
| 序号 | 参数名 | 参数类型 | 说明      |
|:---|:---|:---|:---|
| 1  | id  | int  | 特殊日期id。 |
   
#### 触发事件
无
#### 错误结果码
 表7错误原因码说明 
| 序号 | 错误码      | 说明                       |
|:---|:---|:---|
| 1  | 0200001  | 参数异常，异常详情在resultDesc中描述。 |
| 2  | 0200007  | 外呼活动不存在。                 |
| 3  | 0200013  | 特殊日期名称已存在。               |
| 4  | 0200015  | 外呼活动的特殊日期数量已达上限。         |
| 5  | 0200030  | 时间格式不正确。                 |
| 6  | 02000001 | 参数值为空                    |
| 7  | 02000002 | 参数包含非法字符                 |
| 8  | 02000003 | 参数长度不能大于规定长度             |
| 9  | 02000004 | 参数长度不能小于规定长度             |
| 10 | 02000005 | 参数长度需要介于规定长度之间           |
| 11 | 02000006 | 参数值类型不正确                 |
| 12 | 02000007 | 参数值大小不正确                 |
| 13 | 02000008 | 参数转换异常，请检查请求参数           |
| 14 | 02000009 | 参数组合不正确，请检查请求参数          |
| 15 | 02000010 | hour和minute必须同时存在        |
| 16 | 02000011 | 参数个数不能大于规定个数             |
   
#### 报文样例
- 当scheduleSource=custom时，该接口的请求消息体举例如下：
  ```
  {
    "scheduleSource": "custom",
    "name": "中秋节",
    "type": 2,
    "week": null,
    "beginTime": "2018-09-22",
    "endTime": "2018-09-24"
  }
  ```
  
- 当scheduleSource=custom时，该接口的响应消息体举例如下：
  ```
  {
      "resultCode": "0200000",
      "resultDesc": "",
      "returnCode": "0200000",
      "returnDesc": "",
      "returnObject": {
          "id": 1318795089
      }
  }
  ```
  
- 当scheduleSource=reference时，该接口的请求消息体举例如下：
  ```
  {
      "scheduleSource": "reference",
      "holidayList": [
          {
              "holidayId": "1916984515",
              "beginTime1": "12:00",
              "endTime1": "13:00"
          },
          {
              "holidayId": "1361334277"
          }
      ]
  }
  ```
  
- 当scheduleSource=reference时，该接口的响应消息体举例如下：
  ```
  {
      "returnCode": "0200000",
      "resultCode": "0200000",
      "resultDesc": "Adding holiday for an outgoing call task succeeded.",
      "returnDesc": "Adding holiday for an outgoing call task succeeded."
  }
  ```
  
 
