
# API数据源
**算子简介**
- 名称： API接入数据源
- 功能说明： 通过API进行数据上报到pipeline的数据源。
- 约束：下游不允许对接数据源。
**算子配置**
**基础配置项**
**算子名称：**
- 配置项英文名：name

- 说明： 算子名称，对算子进行个性化的命名，以辅助增加可读性。支持中文、英文、数字、中划线、下划线，长度小于等于64个字符。
- 类型： STRING
- 必选： 否
- 约束： 需要符合正则表达式： \^\[\\u4E00-\\u9FA5A-Za-z0-9_-\]{1,64}$
**数据源ID：**
- 配置项英文名：datasSourceId

- 说明： 指定管道的输入IoT数据接入云服务数据源。
- 类型： STRING
- 必选： 是
- 约束： 需要符合正则表达式： \^\[a-zA-Z0-9\]\[\\w_-\]{1,64}$
**事件时间：**
- 配置项英文名：eventTime

- 说明： 事件时间，以JSON Path格式来指定事件时间的获取来源。如果没有指定，则使用接受消息时的系统时间作为消息产生的事件时间。
- 必选： 是
- 子配置项：事件时间包括如下子配置项：JSON路径、时间样式。
**JSON路径：**
- 配置项英文名：jsonPath

- 说明： 事件时间字段的Json路径，以JSON Path格式来指定事件时间的获取位置。
- 类型： STRING
- 必选： 是
- 约束： 需要符合正则表达式： \^.{1,1000}$
**时间样式：**
- 配置项英文名：pattern

- 说明： 时间格式，事件时间的样例格式，比如yyyyMMdd'T'HHmmss'Z'或yyyy-MM-dd'T'HH:mm:ss.SSS'Z'或yyyy-MM-dd'T'HH:mm:ss'Z'等。
- 类型： STRING
- 必选： 是
- 约束： 需要符合正则表达式： \^.{1,100}$
**高级配置项**
**分配时间戳提取器和水印：**
- 配置项英文名：assignerWithPeriodicWatermarksType

- 说明： 时间戳分配器，目前提供3种方式，BoundedOutOfOrdernessTimestampExtractor、AscendingTimestampExtractor、IngestionTimeExtractor。
  - BoundedOutOfOrdernessTimestampExtractor：允许固定时间延迟的分配器，适用于乱序但预先知道或只允许在流中将会遇到的最大延迟的场景。
  
  - AscendingTimestampExtractor：递增时间戳的分配器，适用于每个元素(elements)的时间在每个并行任务(parallel task)里是单调递增的场景。
  
  - IngestionTimeExtractor： 根据获取到数据时的系统时间分配时间戳，适用于无事件时间的场景。
   
- 类型： STRING
- 必选： 否，默认采用 BoundedOutOfOrdernessTimestampExtractor 。
- 约束：必须为BoundedOutOfOrdernessTimestampExtractor、AscendingTimestampExtractor、IngestionTimeExtractor 之一 。
**允许的最大延迟时间：**
- 配置项英文名：maxOutOfOrdernessInSeconds

- 说明： 允许的最大延迟时间，该配置仅作用于BoundedOutOfOrdernessTimestampExtractor，具体是在EventTime类型窗口中使用。
- 类型： STRING
- 必选： 否， 默认为300秒。
- 约束： 最小值0，最大值3600秒。
**启动配置**：
- 配置项英文名：startup

- 说明： 启动方式，用于配置启动时的配置参数。
- 必选： 否。
- 子配置项： 启动配置包括如下子配置项：启动模式。
**启动模式**：
- 配置项英文名：startupMode

- 说明： Pipeline启动时数据消费模式，LATEST表示读取最新数据，EARLIEST表示读取最旧的数据。
- 类型： STRING
- 必选： 否，默认为 LATEST。
- 约束： 仅可填写 LASTEST 与 EARLIEST 。
 
