buildHttpEntity(T t) {
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.add(HttpHeaders.CONTENT_TYPE, CONTENT_TYPE);
+
+ return new HttpEntity<>(t, httpHeaders);
+ }
+}
diff --git b/src/main/java/com/objecteye/pojo/platform/DeviceRequestParams.java a/src/main/java/com/objecteye/pojo/platform/DeviceRequestParams.java
new file mode 100644
index 0000000..036c7ef
--- /dev/null
+++ a/src/main/java/com/objecteye/pojo/platform/DeviceRequestParams.java
@@ -0,0 +1,25 @@
+package com.objecteye.pojo.platform;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: liuhaoyu
+ * @date: 2023/6/28
+ */
+@Data
+public class DeviceRequestParams implements Serializable {
+ private static final long serialVersionUID = -7801549061937667804L;
+
+ private String deviceId;
+
+ private String host;
+
+ private String port;
+
+ private String accessKey;
+
+ private String securityKey;
+
+}
diff --git b/src/main/java/com/objecteye/pojo/viid/common/CommonDeviceIdRequestParams.java a/src/main/java/com/objecteye/pojo/viid/common/CommonDeviceIdRequestParams.java
new file mode 100644
index 0000000..61dba35
--- /dev/null
+++ a/src/main/java/com/objecteye/pojo/viid/common/CommonDeviceIdRequestParams.java
@@ -0,0 +1,18 @@
+package com.objecteye.pojo.viid.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: liuhaoyu
+ * @date: 2023/6/28
+ */
+@Data
+public class CommonDeviceIdRequestParams implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @JsonProperty("DeviceID")
+ private String deviceId;
+}
diff --git b/src/main/java/com/objecteye/pojo/viid/common/ResponseStatusResponse.java a/src/main/java/com/objecteye/pojo/viid/common/ResponseStatusResponse.java
new file mode 100644
index 0000000..ecc9f4a
--- /dev/null
+++ a/src/main/java/com/objecteye/pojo/viid/common/ResponseStatusResponse.java
@@ -0,0 +1,31 @@
+package com.objecteye.pojo.viid.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: liuhaoyu
+ * @date: 2023/6/28
+ */
+@Data
+public class ResponseStatusResponse implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @JsonProperty("RequestURL")
+ private String requestUrl;
+
+ @JsonProperty("StatusCode")
+ private Integer statusCode;
+
+ @JsonProperty("StatusString")
+ private String statusString;
+
+ @JsonProperty("ID")
+ private String id;
+
+ @JsonProperty("LocalTime")
+ private String localTime;
+}
diff --git b/src/main/java/com/objecteye/pojo/viid/subscribe/Subscribe.java a/src/main/java/com/objecteye/pojo/viid/subscribe/Subscribe.java
new file mode 100644
index 0000000..47ed368
--- /dev/null
+++ a/src/main/java/com/objecteye/pojo/viid/subscribe/Subscribe.java
@@ -0,0 +1,98 @@
+package com.objecteye.pojo.viid.subscribe;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author: liuhaoyu
+ * @date: 2023/6/28
+ */
+@Data
+public class Subscribe implements Serializable {
+ private static final long serialVersionUID = 6385076997369719156L;
+ /**
+ * 订阅标识符
+ * 数据共享接口调用时由VIID生成, 取消订阅时必选
+ */
+ @JsonProperty("SubscribeID")
+ private String subscribeId;
+ /**
+ * 订阅标题
+ *
+ * 订阅时必填
+ */
+ @JsonProperty("Title")
+ private String title;
+ /**
+ * 订阅类别
+ *
+ * 订阅时必填,可多个用英文逗号隔开
+ */
+ @JsonProperty("SubscribeDetail")
+ private String subscribeDetail;
+ /**
+ * 订阅资源路径
+ *
+ * 资源路径URI(卡口ID, 设备ID, 采集内容ID, 案件ID, 目标视图库ID, 行政区编号2/4/6位等), 支持单个和批量, 订阅时必填
+ */
+ @JsonProperty("ResourceURI")
+ private String resourceUri;
+ /**
+ * 申请人
+ *
+ * 必填
+ */
+ @JsonProperty("ApplicantName")
+ private String applicantName;
+ /**
+ * 申请单位
+ *
+ * required
+ */
+ @JsonProperty("ApplicantOrg")
+ private String applicantOrg;
+ /**
+ * 开始时间
+ *
+ * required
+ */
+ @JsonProperty("BeginTime")
+ private String beginTime;
+ /**
+ * 结束时间
+ *
+ * required
+ */
+ @JsonProperty("EndTime")
+ private String endTime;
+ /**
+ * 信息接收地址 string(256)
+ *
+ * e.g. http://ip:port/uri
+ */
+ @JsonProperty("ReceiveAddr")
+ private String receiveAddr;
+ /**
+ * 信息上报间隔时间
+ *
+ * required, 单位: s, <=0表示不限制
+ */
+ @JsonProperty("ReportInterval")
+ private Integer reportInterval;
+ /**
+ * 操作类型
+ *
+ * 0: 订阅, 1: 取消订阅
+ */
+ @JsonProperty("OperateType")
+ private Integer operateType;
+ /**
+ * 订阅执行状态
+ *
+ * 0: 订阅中, 1: 已取消, 2: 订阅到期, 9: 未订阅. 只读字段
+ */
+ @JsonProperty("SubscribeStatus")
+ private Integer subscribeStatus;
+}
diff --git b/src/main/resources/application.yml a/src/main/resources/application.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ a/src/main/resources/application.yml