All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.gdface.facelog.client.thrift.IFaceLog Maven / Gradle / Ivy

package net.gdface.facelog.client.thrift;

import com.facebook.swift.codec.*;
import com.facebook.swift.codec.ThriftField.Requiredness;
import com.facebook.swift.service.*;
import com.google.common.util.concurrent.ListenableFuture;
import java.io.*;
import java.util.*;

@ThriftService("IFaceLog")
public interface IFaceLog
{
    @ThriftService("IFaceLog")
    public interface Async
    {
        @ThriftMethod(value = "addErrorLog",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture addErrorLog(
            @ThriftField(value=1, name="errorLogBean", requiredness=Requiredness.OPTIONAL) final ErrorLogBean errorLogBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addFeature",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addFeature(
            @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
            @ThriftField(value=4, name="faecBeans", requiredness=Requiredness.OPTIONAL) final List faecBeans,
            @ThriftField(value=5, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
            @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addFeatureMulti",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addFeatureMulti(
            @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
            @ThriftField(value=4, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
            @ThriftField(value=5, name="faces", requiredness=Requiredness.OPTIONAL) final List faces,
            @ThriftField(value=6, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
            @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addFeatureWithImage",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addFeatureWithImage(
            @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
            @ThriftField(value=4, name="asIdPhotoIfAbsent", requiredness=Requiredness.REQUIRED) final boolean asIdPhotoIfAbsent,
            @ThriftField(value=5, name="featurePhoto", requiredness=Requiredness.OPTIONAL) final byte [] featurePhoto,
            @ThriftField(value=6, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
            @ThriftField(value=7, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
            @ThriftField(value=8, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addImage",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addImage(
            @ThriftField(value=1, name="imageData", requiredness=Requiredness.OPTIONAL) final byte [] imageData,
            @ThriftField(value=2, name="deviceId", requiredness=Requiredness.OPTIONAL) final Integer deviceId,
            @ThriftField(value=3, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
            @ThriftField(value=4, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
            @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLog",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLog(
            @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLogFull",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLogFull(
            @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
            @ThriftField(value=2, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
            @ThriftField(value=3, name="featureImage", requiredness=Requiredness.OPTIONAL) final byte [] featureImage,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLogWithFaceImage",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLogWithFaceImage(
            @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
            @ThriftField(value=2, name="faceImage", requiredness=Requiredness.OPTIONAL) final byte [] faceImage,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLogs",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLogs(
            @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLogsFull",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLogsFull(
            @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
            @ThriftField(value=2, name="faceBeans", requiredness=Requiredness.OPTIONAL) final List faceBeans,
            @ThriftField(value=3, name="featureImages", requiredness=Requiredness.OPTIONAL) final List featureImages,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "addLogsWithFaceImage",
                      exception = {
                          @ThriftException(type=DuplicateRecordException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture addLogsWithFaceImage(
            @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
            @ThriftField(value=2, name="faceImages", requiredness=Requiredness.OPTIONAL) final List faceImages,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "applyAckChannel",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture applyAckChannel(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "applyAckChannelWithDuration",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture applyAckChannelWithDuration(
            @ThriftField(value=1, name="duration", requiredness=Requiredness.REQUIRED) final int duration,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "applyCmdSn",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture applyCmdSn(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "applyPersonToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture applyPersonToken(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
            @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
        );

        @ThriftMethod(value = "applyRootToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture applyRootToken(
            @ThriftField(value=1, name="password", requiredness=Requiredness.OPTIONAL) final String password,
            @ThriftField(value=2, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
        );

        @ThriftMethod(value = "applyUserToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture applyUserToken(
            @ThriftField(value=1, name="userid", requiredness=Requiredness.REQUIRED) final int userid,
            @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
            @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
        );

        @ThriftMethod(value = "bindBorder",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture bindBorder(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=2, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "childListForDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> childListForDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "childListForPersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> childListForPersonGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "countDeviceByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countDeviceByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countDeviceByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countDeviceByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countDeviceGroupByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countDeviceGroupByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countDeviceGroupByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countDeviceGroupByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countErrorLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countErrorLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countLogByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countLogLightByVerifyTime",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByVerifyTime(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
        );

        @ThriftMethod(value = "countLogLightByVerifyTimeSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByVerifyTimeSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countLogLightByVerifyTimeTimestr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByVerifyTimeTimestr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
        );

        @ThriftMethod(value = "countLogLightByVerifyTimeTimestrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByVerifyTimeTimestrSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countLogLightByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countLogLightByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countLogLightByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countPersonByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countPersonByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countPersonByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countPersonByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countPersonGroupByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countPersonGroupByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "countPersonGroupByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture countPersonGroupByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countPersonLog",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> countPersonLog(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final Long startDate,
            @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final Long endDate
        );

        @ThriftMethod(value = "countPersonLogSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> countPersonLogSafe(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final Long startDate,
            @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final Long endDate,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "countPersonLogTimeStr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> countPersonLogTimeStr(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final String startDate,
            @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final String endDate
        );

        @ThriftMethod(value = "countPersonLogTimeStrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> countPersonLogTimeStrSafe(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final String startDate,
            @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final String endDate,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "createTempPwd",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture createTempPwd(
            @ThriftField(value=1, name="targetId", requiredness=Requiredness.REQUIRED) final int targetId,
            @ThriftField(value=2, name="targetType", requiredness=Requiredness.OPTIONAL) final TmpPwdTargetType targetType,
            @ThriftField(value=3, name="expiryDate", requiredness=Requiredness.OPTIONAL) final String expiryDate,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "createTempPwdWithDuration",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture createTempPwdWithDuration(
            @ThriftField(value=1, name="targetId", requiredness=Requiredness.REQUIRED) final int targetId,
            @ThriftField(value=2, name="targetType", requiredness=Requiredness.OPTIONAL) final TmpPwdTargetType targetType,
            @ThriftField(value=3, name="duration", requiredness=Requiredness.REQUIRED) final int duration,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteAllFeaturesByPersonId",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteAllFeaturesByPersonId(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="deleteImage", requiredness=Requiredness.REQUIRED) final boolean deleteImage,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteDevice(
            @ThriftField(value=1, name="id", requiredness=Requiredness.REQUIRED) final int id,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteDeviceByMac",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteDeviceByMac(
            @ThriftField(value=1, name="mac", requiredness=Requiredness.OPTIONAL) final String mac,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteErrorLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteErrorLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> deleteFeature(
            @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
            @ThriftField(value=2, name="deleteImage", requiredness=Requiredness.REQUIRED) final boolean deleteImage,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteGroupPermitOnDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteGroupPermitOnDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteImage(
            @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deleteLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deleteLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePermitById",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePermitById(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePerson(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonByMobilePhone",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonByMobilePhone(
            @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonByPapersNum",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonByPapersNum(
            @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonGroupPermit",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonGroupPermit(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersons",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersons(
            @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonsByMobilePhone",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonsByMobilePhone(
            @ThriftField(value=1, name="mobilePhoneList", requiredness=Requiredness.OPTIONAL) final List mobilePhoneList,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "deletePersonsByPapersNum",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture deletePersonsByPapersNum(
            @ThriftField(value=1, name="papersNumList", requiredness=Requiredness.OPTIONAL) final List papersNumList,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "disablePerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture disablePerson(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="moveToGroupId", requiredness=Requiredness.OPTIONAL) final Integer moveToGroupId,
            @ThriftField(value=3, name="deletePhoto", requiredness=Requiredness.REQUIRED) final boolean deletePhoto,
            @ThriftField(value=4, name="deleteFeature", requiredness=Requiredness.REQUIRED) final boolean deleteFeature,
            @ThriftField(value=5, name="deleteLog", requiredness=Requiredness.REQUIRED) final boolean deleteLog,
            @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "disablePersonList",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture disablePersonList(
            @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "existsDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture existsDevice(
            @ThriftField(value=1, name="id", requiredness=Requiredness.REQUIRED) final int id
        );

        @ThriftMethod(value = "existsFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture existsFeature(
            @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
        );

        @ThriftMethod(value = "existsImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture existsImage(
            @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
        );

        @ThriftMethod(value = "existsPerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture existsPerson(
            @ThriftField(value=1, name="persionId", requiredness=Requiredness.REQUIRED) final int persionId
        );

        @ThriftMethod(value = "faceRecognizePersonPermitted",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture faceRecognizePersonPermitted(
            @ThriftField(value=1, name="imageData", requiredness=Requiredness.OPTIONAL) final byte [] imageData,
            @ThriftField(value=2, name="threshold", requiredness=Requiredness.OPTIONAL) final Double threshold,
            @ThriftField(value=3, name="group", requiredness=Requiredness.REQUIRED) final int group,
            @ThriftField(value=4, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=5, name="searchInPermited", requiredness=Requiredness.REQUIRED) final boolean searchInPermited
        );

        @ThriftMethod(value = "fuzzySearch",
                      exception = {
                          @ThriftException(type=FuzzyMatchCountExceedLimitException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture> fuzzySearch(
            @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
            @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
            @ThriftField(value=3, name="pattern", requiredness=Requiredness.OPTIONAL) final String pattern,
            @ThriftField(value=4, name="matchType", requiredness=Requiredness.OPTIONAL) final StringMatchType matchType,
            @ThriftField(value=5, name="matchFlags", requiredness=Requiredness.REQUIRED) final int matchFlags,
            @ThriftField(value=6, name="parentGroupId", requiredness=Requiredness.REQUIRED) final int parentGroupId,
            @ThriftField(value=7, name="maxMatchCount", requiredness=Requiredness.REQUIRED) final int maxMatchCount
        );

        @ThriftMethod(value = "fuzzySearchPerson",
                      exception = {
                          @ThriftException(type=FuzzyMatchCountExceedLimitException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture> fuzzySearchPerson(
            @ThriftField(value=1, name="column", requiredness=Requiredness.OPTIONAL) final String column,
            @ThriftField(value=2, name="pattern", requiredness=Requiredness.OPTIONAL) final String pattern,
            @ThriftField(value=3, name="matchType", requiredness=Requiredness.OPTIONAL) final StringMatchType matchType,
            @ThriftField(value=4, name="matchFlags", requiredness=Requiredness.REQUIRED) final int matchFlags,
            @ThriftField(value=5, name="parentGroupId", requiredness=Requiredness.REQUIRED) final int parentGroupId,
            @ThriftField(value=6, name="maxMatchCount", requiredness=Requiredness.REQUIRED) final int maxMatchCount,
            @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getDevice(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
        );

        @ThriftMethod(value = "getDeviceByMac",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getDeviceByMac(
            @ThriftField(value=1, name="mac", requiredness=Requiredness.OPTIONAL) final String mac
        );

        @ThriftMethod(value = "getDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "getDeviceGroups",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDeviceGroups(
            @ThriftField(value=1, name="groupIdList", requiredness=Requiredness.OPTIONAL) final List groupIdList
        );

        @ThriftMethod(value = "getDeviceGroupsBelongs",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDeviceGroupsBelongs(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
        );

        @ThriftMethod(value = "getDeviceGroupsPermit",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDeviceGroupsPermit(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getDeviceGroupsPermittedBy",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDeviceGroupsPermittedBy(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getDeviceIdOfFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getDeviceIdOfFeature(
            @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
        );

        @ThriftMethod(value = "getDevices",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDevices(
            @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList
        );

        @ThriftMethod(value = "getDevicesOfGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getDevicesOfGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "getFace",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getFace(
            @ThriftField(value=1, name="faceId", requiredness=Requiredness.REQUIRED) final int faceId
        );

        @ThriftMethod(value = "getFaceApiParameters",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFaceApiParameters(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getFacesOfFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFacesOfFeature(
            @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
        );

        @ThriftMethod(value = "getFacesOfImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFacesOfImage(
            @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5
        );

        @ThriftMethod(value = "getFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getFeature(
            @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
        );

        @ThriftMethod(value = "getFeatureBytes",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getFeatureBytes(
            @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
        );

        @ThriftMethod(value = "getFeatureBytesList",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeatureBytesList(
            @ThriftField(value=1, name="md5List", requiredness=Requiredness.OPTIONAL) final List md5List,
            @ThriftField(value=2, name="truncation", requiredness=Requiredness.REQUIRED) final boolean truncation
        );

        @ThriftMethod(value = "getFeatureBytesTruncation",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getFeatureBytesTruncation(
            @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5,
            @ThriftField(value=2, name="truncation", requiredness=Requiredness.REQUIRED) final boolean truncation
        );

        @ThriftMethod(value = "getFeatures",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeatures(
            @ThriftField(value=1, name="md5List", requiredness=Requiredness.OPTIONAL) final List md5List
        );

        @ThriftMethod(value = "getFeaturesByPersonIdAndSdkVersion",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeaturesByPersonIdAndSdkVersion(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
        );

        @ThriftMethod(value = "getFeaturesOfImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeaturesOfImage(
            @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5
        );

        @ThriftMethod(value = "getFeaturesOfPerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeaturesOfPerson(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "getFeaturesPermittedOnDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getFeaturesPermittedOnDevice(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
            @ThriftField(value=3, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
            @ThriftField(value=4, name="excludeFeatureIds", requiredness=Requiredness.OPTIONAL) final List excludeFeatureIds,
            @ThriftField(value=5, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
        );

        @ThriftMethod(value = "getGroupIdsByPath",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getGroupIdsByPath(
            @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
            @ThriftField(value=2, name="path", requiredness=Requiredness.OPTIONAL) final String path
        );

        @ThriftMethod(value = "getGroupPermit",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getGroupPermit(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getGroupPermitOnDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getGroupPermitOnDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getGroupPermits",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getGroupPermits(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="personGroupIdList", requiredness=Requiredness.OPTIONAL) final List personGroupIdList
        );

        @ThriftMethod(value = "getImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getImage(
            @ThriftField(value=1, name="imageMD5", requiredness=Requiredness.OPTIONAL) final String imageMD5
        );

        @ThriftMethod(value = "getImageBytes",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getImageBytes(
            @ThriftField(value=1, name="imageMD5", requiredness=Requiredness.OPTIONAL) final String imageMD5
        );

        @ThriftMethod(value = "getImageBytesRef",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getImageBytesRef(
            @ThriftField(value=1, name="primaryKey", requiredness=Requiredness.OPTIONAL) final String primaryKey,
            @ThriftField(value=2, name="refType", requiredness=Requiredness.OPTIONAL) final String refType
        );

        @ThriftMethod(value = "getImageRef",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getImageRef(
            @ThriftField(value=1, name="primaryKey", requiredness=Requiredness.OPTIONAL) final String primaryKey,
            @ThriftField(value=2, name="refType", requiredness=Requiredness.OPTIONAL) final String refType
        );

        @ThriftMethod(value = "getImagesAssociatedByFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getImagesAssociatedByFeature(
            @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
        );

        @ThriftMethod(value = "getLogBeansByPersonId",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getLogBeansByPersonId(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "getLogBeansByPersonIdSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getLogBeansByPersonIdSafe(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getMessageQueueParameters",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getMessageQueueParameters(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getPerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPerson(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "getPersonByMobilePhone",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonByMobilePhone(
            @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone
        );

        @ThriftMethod(value = "getPersonByMobilePhoneReal",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonByMobilePhoneReal(
            @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getPersonByPapersNum",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonByPapersNum(
            @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum
        );

        @ThriftMethod(value = "getPersonByPapersNumSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonByPapersNumSafe(
            @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getPersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getPersonGroups",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonGroups(
            @ThriftField(value=1, name="groupIdList", requiredness=Requiredness.OPTIONAL) final List groupIdList
        );

        @ThriftMethod(value = "getPersonGroupsBelongs",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonGroupsBelongs(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "getPersonGroupsPermittedBy",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonGroupsPermittedBy(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "getPersonPermit",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonPermit(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "getPersonPermits",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonPermits(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList
        );

        @ThriftMethod(value = "getPersonReal",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getPersonReal(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getPersons",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersons(
            @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList
        );

        @ThriftMethod(value = "getPersonsOfGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonsOfGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getPersonsPermittedOnDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonsPermittedOnDevice(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
            @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
            @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
        );

        @ThriftMethod(value = "getPersonsPermittedOnDeviceByGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonsPermittedOnDeviceByGroup(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
            @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
            @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
        );

        @ThriftMethod(value = "getPersonsReal",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getPersonsReal(
            @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getProperties",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getProperties(
            @ThriftField(value=1, name="prefix", requiredness=Requiredness.OPTIONAL) final String prefix,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getProperty",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getProperty(
            @ThriftField(value=1, name="key", requiredness=Requiredness.OPTIONAL) final String key,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getRedisParameters",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getRedisParameters(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getServiceConfig",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getServiceConfig(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "getSubDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getSubDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "getSubPersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> getSubPersonGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "getTargetInfo4PwdOnDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture getTargetInfo4PwdOnDevice(
            @ThriftField(value=1, name="pwd", requiredness=Requiredness.OPTIONAL) final String pwd,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "initTopGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture initTopGroup(
            @ThriftField(value=1, name="groupInfo", requiredness=Requiredness.OPTIONAL) final TopGroupInfo groupInfo,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "isDisable",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isDisable(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "isLocal",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isLocal();

        @ThriftMethod(value = "isValidAckChannel",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidAckChannel(
            @ThriftField(value=1, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel
        );

        @ThriftMethod(value = "isValidCmdSn",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidCmdSn(
            @ThriftField(value=1, name="cmdSn", requiredness=Requiredness.REQUIRED) final int cmdSn
        );

        @ThriftMethod(value = "isValidDeviceToken",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidDeviceToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "isValidPassword",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidPassword(
            @ThriftField(value=1, name="userId", requiredness=Requiredness.OPTIONAL) final String userId,
            @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
            @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
        );

        @ThriftMethod(value = "isValidPersonToken",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidPersonToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "isValidRootToken",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidRootToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "isValidToken",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "isValidUserToken",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture isValidUserToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "iso8601Time",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture iso8601Time();

        @ThriftMethod(value = "listOfParentForDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> listOfParentForDeviceGroup(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
        );

        @ThriftMethod(value = "listOfParentForPersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> listOfParentForPersonGroup(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
        );

        @ThriftMethod(value = "loadAllPerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadAllPerson();

        @ThriftMethod(value = "loadAllPersonSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadAllPersonSafe(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadDeviceByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadDeviceByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadDeviceGroupByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceGroupByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadDeviceGroupIdByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceGroupIdByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadDeviceGroupIdByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceGroupIdByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadDeviceIdByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceIdByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadDeviceIdByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDeviceIdByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadDistinctIntegerColumn",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDistinctIntegerColumn(
            @ThriftField(value=1, name="table", requiredness=Requiredness.OPTIONAL) final String table,
            @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
            @ThriftField(value=3, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadDistinctStringColumn",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadDistinctStringColumn(
            @ThriftField(value=1, name="table", requiredness=Requiredness.OPTIONAL) final String table,
            @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
            @ThriftField(value=3, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadErrorLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadErrorLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadFeatureMd5ByUpdate",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadFeatureMd5ByUpdate(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
        );

        @ThriftMethod(value = "loadFeatureMd5ByUpdateSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadFeatureMd5ByUpdateSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadFeatureMd5ByUpdateTimeStr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadFeatureMd5ByUpdateTimeStr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
        );

        @ThriftMethod(value = "loadFeatureMd5ByUpdateTimeStrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadFeatureMd5ByUpdateTimeStrSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadLogByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadLogByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadLogLightByVerifyTime",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByVerifyTime(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadLogLightByVerifyTimeSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByVerifyTimeSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadLogLightByVerifyTimeTimestr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByVerifyTimeTimestr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadLogLightByVerifyTimeTimestrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByVerifyTimeTimestrSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadLogLightByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadLogLightByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadLogLightByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadPermitByUpdate",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPermitByUpdate(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
        );

        @ThriftMethod(value = "loadPermitByUpdateTimestr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPermitByUpdateTimestr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
        );

        @ThriftMethod(value = "loadPersonByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadPersonByWhereReal",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonByWhereReal(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadPersonDataPackages",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonDataPackages(
            @ThriftField(value=1, name="personIds", requiredness=Requiredness.OPTIONAL) final List personIds,
            @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
            @ThriftField(value=3, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
        );

        @ThriftMethod(value = "loadPersonDataPackagesInSameGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonDataPackagesInSameGroup(
            @ThriftField(value=1, name="personIds", requiredness=Requiredness.OPTIONAL) final List personIds,
            @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
            @ThriftField(value=3, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
        );

        @ThriftMethod(value = "loadPersonDataPackagesPermittedOnDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonDataPackagesPermittedOnDevice(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
            @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
            @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
            @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp,
            @ThriftField(value=5, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
        );

        @ThriftMethod(value = "loadPersonGroupByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonGroupByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
            @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
        );

        @ThriftMethod(value = "loadPersonGroupIdByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonGroupIdByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadPersonGroupIdByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonGroupIdByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadPersonIdByUpdateTime",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByUpdateTime(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
        );

        @ThriftMethod(value = "loadPersonIdByUpdateTimeSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByUpdateTimeSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadPersonIdByUpdateTimeTimeStr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByUpdateTimeTimeStr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
        );

        @ThriftMethod(value = "loadPersonIdByUpdateTimeTimeStrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByUpdateTimeTimeStrSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadPersonIdByWhere",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByWhere(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
        );

        @ThriftMethod(value = "loadPersonIdByWhereSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadPersonIdByWhereSafe(
            @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadUpdatedPersons",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadUpdatedPersons(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
        );

        @ThriftMethod(value = "loadUpdatedPersonsSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadUpdatedPersonsSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "loadUpdatedPersonsTimestr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadUpdatedPersonsTimestr(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
        );

        @ThriftMethod(value = "loadUpdatedPersonsTimestrSafe",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> loadUpdatedPersonsTimestrSafe(
            @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "lockWakeup",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture lockWakeup(
            @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
            @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
            @ThriftField(value=3, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
        );

        @ThriftMethod(value = "offline",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture offline(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "online",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture online(
            @ThriftField(value=1, name="device", requiredness=Requiredness.OPTIONAL) final DeviceBean device
        );

        @ThriftMethod(value = "pathOf",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture pathOf(
            @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
            @ThriftField(value=2, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
        );

        @ThriftMethod(value = "registerDevice",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture registerDevice(
            @ThriftField(value=1, name="newDevice", requiredness=Requiredness.OPTIONAL) final DeviceBean newDevice
        );

        @ThriftMethod(value = "releasePersonToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture releasePersonToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "releaseRootToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture releaseRootToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "releaseUserToken",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture releaseUserToken(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "replaceFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture replaceFeature(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
            @ThriftField(value=3, name="deleteOldFeatureImage", requiredness=Requiredness.REQUIRED) final boolean deleteOldFeatureImage,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "rootGroupOfDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture rootGroupOfDevice(
            @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
        );

        @ThriftMethod(value = "rootGroupOfDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture rootGroupOfDeviceGroup(
            @ThriftField(value=1, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
        );

        @ThriftMethod(value = "rootGroupOfPerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture rootGroupOfPerson(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
        );

        @ThriftMethod(value = "rootGroupOfPersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture rootGroupOfPersonGroup(
            @ThriftField(value=1, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
        );

        @ThriftMethod(value = "runCmd",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture runCmd(
            @ThriftField(value=1, name="target", requiredness=Requiredness.OPTIONAL) final List target,
            @ThriftField(value=2, name="group", requiredness=Requiredness.REQUIRED) final boolean group,
            @ThriftField(value=3, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
            @ThriftField(value=4, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
            @ThriftField(value=5, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel,
            @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "runTask",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture runTask(
            @ThriftField(value=1, name="taskQueue", requiredness=Requiredness.OPTIONAL) final String taskQueue,
            @ThriftField(value=2, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
            @ThriftField(value=3, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
            @ThriftField(value=4, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel,
            @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "runTaskSync",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture runTaskSync(
            @ThriftField(value=1, name="taskQueue", requiredness=Requiredness.OPTIONAL) final String taskQueue,
            @ThriftField(value=2, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
            @ThriftField(value=3, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
            @ThriftField(value=4, name="timeoutSecs", requiredness=Requiredness.REQUIRED) final int timeoutSecs,
            @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "saveDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture saveDevice(
            @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "saveDeviceGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture saveDeviceGroup(
            @ThriftField(value=1, name="deviceGroupBean", requiredness=Requiredness.OPTIONAL) final DeviceGroupBean deviceGroupBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePermit",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePermit(
            @ThriftField(value=1, name="permitBean", requiredness=Requiredness.OPTIONAL) final PermitBean permitBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePermitWithColumn",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePermitWithColumn(
            @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=3, name="column", requiredness=Requiredness.OPTIONAL) final String column,
            @ThriftField(value=4, name="value", requiredness=Requiredness.OPTIONAL) final String value,
            @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePerson",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePerson(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonFull",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonFull(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=5, name="featureImage", requiredness=Requiredness.OPTIONAL) final byte [] featureImage,
            @ThriftField(value=6, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
            @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonGroup",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonGroup(
            @ThriftField(value=1, name="personGroupBean", requiredness=Requiredness.OPTIONAL) final PersonGroupBean personGroupBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhoto",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhoto(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhotoAndExtractFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhotoAndExtractFeature(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="exractFeature", requiredness=Requiredness.REQUIRED) final boolean exractFeature,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhotoAndFeature",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhotoAndFeature(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="featureBean", requiredness=Requiredness.OPTIONAL) final FeatureBean featureBean,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhotoAndFeatureMultiFaces",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhotoAndFeatureMultiFaces(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=5, name="faceBeans", requiredness=Requiredness.OPTIONAL) final List faceBeans,
            @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhotoAndFeatureMultiImage",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhotoAndFeatureMultiImage(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
            @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
            @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
            @ThriftField(value=5, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
            @ThriftField(value=6, name="faces", requiredness=Requiredness.OPTIONAL) final List faces,
            @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonWithPhotoAndFeatureSaved",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonWithPhotoAndFeatureSaved(
            @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
            @ThriftField(value=2, name="idPhotoMd5", requiredness=Requiredness.OPTIONAL) final String idPhotoMd5,
            @ThriftField(value=3, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
            @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersons",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersons(
            @ThriftField(value=1, name="persons", requiredness=Requiredness.OPTIONAL) final List persons,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "savePersonsWithPhoto",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture savePersonsWithPhoto(
            @ThriftField(value=1, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
            @ThriftField(value=2, name="persons", requiredness=Requiredness.OPTIONAL) final List persons,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "saveServiceConfig",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture saveServiceConfig(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "sdkTaskQueueOf",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture sdkTaskQueueOf(
            @ThriftField(value=1, name="task", requiredness=Requiredness.OPTIONAL) final String task,
            @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "setPersonExpiryDate",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture setPersonExpiryDate(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.REQUIRED) final long expiryDate,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "setPersonExpiryDateList",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture setPersonExpiryDateList(
            @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
            @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.REQUIRED) final long expiryDate,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "setPersonExpiryDateTimeStr",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture setPersonExpiryDateTimeStr(
            @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
            @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.OPTIONAL) final String expiryDate,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "setProperties",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture setProperties(
            @ThriftField(value=1, name="config", requiredness=Requiredness.OPTIONAL) final Map config,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "setProperty",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture setProperty(
            @ThriftField(value=1, name="key", requiredness=Requiredness.OPTIONAL) final String key,
            @ThriftField(value=2, name="value", requiredness=Requiredness.OPTIONAL) final String value,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "taskQueueOf",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture taskQueueOf(
            @ThriftField(value=1, name="task", requiredness=Requiredness.OPTIONAL) final String task,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "unbindBorder",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture unbindBorder(
            @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
            @ThriftField(value=2, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
            @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "unregisterDevice",
                      exception = {
                          @ThriftException(type=ServiceSecurityException.class, id=1),
                          @ThriftException(type=ServiceRuntimeException.class, id=2)
                      })
        ListenableFuture unregisterDevice(
            @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "updateDevice",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture updateDevice(
            @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
            @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
        );

        @ThriftMethod(value = "version",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture version();

        @ThriftMethod(value = "versionInfo",
                      exception = {
                          @ThriftException(type=ServiceRuntimeException.class, id=1)
                      })
        ListenableFuture> versionInfo();
    }
    @ThriftMethod(value = "addErrorLog",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void addErrorLog(
        @ThriftField(value=1, name="errorLogBean", requiredness=Requiredness.OPTIONAL) final ErrorLogBean errorLogBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "addFeature",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    FeatureBean addFeature(
        @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
        @ThriftField(value=4, name="faecBeans", requiredness=Requiredness.OPTIONAL) final List faecBeans,
        @ThriftField(value=5, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
        @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addFeatureMulti",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    FeatureBean addFeatureMulti(
        @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
        @ThriftField(value=4, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
        @ThriftField(value=5, name="faces", requiredness=Requiredness.OPTIONAL) final List faces,
        @ThriftField(value=6, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
        @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addFeatureWithImage",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    FeatureBean addFeatureWithImage(
        @ThriftField(value=1, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=2, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=3, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
        @ThriftField(value=4, name="asIdPhotoIfAbsent", requiredness=Requiredness.REQUIRED) final boolean asIdPhotoIfAbsent,
        @ThriftField(value=5, name="featurePhoto", requiredness=Requiredness.OPTIONAL) final byte [] featurePhoto,
        @ThriftField(value=6, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
        @ThriftField(value=7, name="removed", requiredness=Requiredness.OPTIONAL) final String removed,
        @ThriftField(value=8, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addImage",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    ImageBean addImage(
        @ThriftField(value=1, name="imageData", requiredness=Requiredness.OPTIONAL) final byte [] imageData,
        @ThriftField(value=2, name="deviceId", requiredness=Requiredness.OPTIONAL) final Integer deviceId,
        @ThriftField(value=3, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
        @ThriftField(value=4, name="personId", requiredness=Requiredness.OPTIONAL) final Integer personId,
        @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLog",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLog(
        @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLogFull",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLogFull(
        @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
        @ThriftField(value=2, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
        @ThriftField(value=3, name="featureImage", requiredness=Requiredness.OPTIONAL) final byte [] featureImage,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLogWithFaceImage",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLogWithFaceImage(
        @ThriftField(value=1, name="logBean", requiredness=Requiredness.OPTIONAL) final LogBean logBean,
        @ThriftField(value=2, name="faceImage", requiredness=Requiredness.OPTIONAL) final byte [] faceImage,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLogs",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLogs(
        @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLogsFull",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLogsFull(
        @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
        @ThriftField(value=2, name="faceBeans", requiredness=Requiredness.OPTIONAL) final List faceBeans,
        @ThriftField(value=3, name="featureImages", requiredness=Requiredness.OPTIONAL) final List featureImages,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "addLogsWithFaceImage",
                  exception = {
                      @ThriftException(type=DuplicateRecordException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void addLogsWithFaceImage(
        @ThriftField(value=1, name="logBeans", requiredness=Requiredness.OPTIONAL) final List logBeans,
        @ThriftField(value=2, name="faceImages", requiredness=Requiredness.OPTIONAL) final List faceImages,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws DuplicateRecordException, ServiceRuntimeException;

    @ThriftMethod(value = "applyAckChannel",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String applyAckChannel(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "applyAckChannelWithDuration",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String applyAckChannelWithDuration(
        @ThriftField(value=1, name="duration", requiredness=Requiredness.REQUIRED) final int duration,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "applyCmdSn",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int applyCmdSn(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "applyPersonToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    Token applyPersonToken(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
        @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "applyRootToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    Token applyRootToken(
        @ThriftField(value=1, name="password", requiredness=Requiredness.OPTIONAL) final String password,
        @ThriftField(value=2, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "applyUserToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    Token applyUserToken(
        @ThriftField(value=1, name="userid", requiredness=Requiredness.REQUIRED) final int userid,
        @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
        @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "bindBorder",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void bindBorder(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=2, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "childListForDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List childListForDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "childListForPersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List childListForPersonGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countDeviceByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countDeviceByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countDeviceByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countDeviceByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countDeviceGroupByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countDeviceGroupByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countDeviceGroupByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countDeviceGroupByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countErrorLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countErrorLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByVerifyTime",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByVerifyTime(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByVerifyTimeSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByVerifyTimeSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByVerifyTimeTimestr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByVerifyTimeTimestr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByVerifyTimeTimestrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByVerifyTimeTimestrSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countLogLightByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countLogLightByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countPersonByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countPersonByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonGroupByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countPersonGroupByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonGroupByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int countPersonGroupByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonLog",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map countPersonLog(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final Long startDate,
        @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final Long endDate
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonLogSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map countPersonLogSafe(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final Long startDate,
        @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final Long endDate,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonLogTimeStr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map countPersonLogTimeStr(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final String startDate,
        @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final String endDate
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "countPersonLogTimeStrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map countPersonLogTimeStrSafe(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="startDate", requiredness=Requiredness.OPTIONAL) final String startDate,
        @ThriftField(value=3, name="endDate", requiredness=Requiredness.OPTIONAL) final String endDate,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "createTempPwd",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String createTempPwd(
        @ThriftField(value=1, name="targetId", requiredness=Requiredness.REQUIRED) final int targetId,
        @ThriftField(value=2, name="targetType", requiredness=Requiredness.OPTIONAL) final TmpPwdTargetType targetType,
        @ThriftField(value=3, name="expiryDate", requiredness=Requiredness.OPTIONAL) final String expiryDate,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "createTempPwdWithDuration",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String createTempPwdWithDuration(
        @ThriftField(value=1, name="targetId", requiredness=Requiredness.REQUIRED) final int targetId,
        @ThriftField(value=2, name="targetType", requiredness=Requiredness.OPTIONAL) final TmpPwdTargetType targetType,
        @ThriftField(value=3, name="duration", requiredness=Requiredness.REQUIRED) final int duration,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteAllFeaturesByPersonId",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteAllFeaturesByPersonId(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="deleteImage", requiredness=Requiredness.REQUIRED) final boolean deleteImage,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean deleteDevice(
        @ThriftField(value=1, name="id", requiredness=Requiredness.REQUIRED) final int id,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteDeviceByMac",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean deleteDeviceByMac(
        @ThriftField(value=1, name="mac", requiredness=Requiredness.OPTIONAL) final String mac,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteErrorLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteErrorLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List deleteFeature(
        @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
        @ThriftField(value=2, name="deleteImage", requiredness=Requiredness.REQUIRED) final boolean deleteImage,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteGroupPermitOnDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteGroupPermitOnDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteImage(
        @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deleteLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deleteLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePermitById",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePermitById(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePerson(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonByMobilePhone",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonByMobilePhone(
        @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonByPapersNum",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonByPapersNum(
        @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonGroupPermit",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonGroupPermit(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersons",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersons(
        @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonsByMobilePhone",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonsByMobilePhone(
        @ThriftField(value=1, name="mobilePhoneList", requiredness=Requiredness.OPTIONAL) final List mobilePhoneList,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "deletePersonsByPapersNum",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int deletePersonsByPapersNum(
        @ThriftField(value=1, name="papersNumList", requiredness=Requiredness.OPTIONAL) final List papersNumList,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "disablePerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void disablePerson(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="moveToGroupId", requiredness=Requiredness.OPTIONAL) final Integer moveToGroupId,
        @ThriftField(value=3, name="deletePhoto", requiredness=Requiredness.REQUIRED) final boolean deletePhoto,
        @ThriftField(value=4, name="deleteFeature", requiredness=Requiredness.REQUIRED) final boolean deleteFeature,
        @ThriftField(value=5, name="deleteLog", requiredness=Requiredness.REQUIRED) final boolean deleteLog,
        @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "disablePersonList",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void disablePersonList(
        @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "existsDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean existsDevice(
        @ThriftField(value=1, name="id", requiredness=Requiredness.REQUIRED) final int id
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "existsFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean existsFeature(
        @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "existsImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean existsImage(
        @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "existsPerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean existsPerson(
        @ThriftField(value=1, name="persionId", requiredness=Requiredness.REQUIRED) final int persionId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "faceRecognizePersonPermitted",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int faceRecognizePersonPermitted(
        @ThriftField(value=1, name="imageData", requiredness=Requiredness.OPTIONAL) final byte [] imageData,
        @ThriftField(value=2, name="threshold", requiredness=Requiredness.OPTIONAL) final Double threshold,
        @ThriftField(value=3, name="group", requiredness=Requiredness.REQUIRED) final int group,
        @ThriftField(value=4, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=5, name="searchInPermited", requiredness=Requiredness.REQUIRED) final boolean searchInPermited
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "fuzzySearch",
                  exception = {
                      @ThriftException(type=FuzzyMatchCountExceedLimitException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    List fuzzySearch(
        @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
        @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
        @ThriftField(value=3, name="pattern", requiredness=Requiredness.OPTIONAL) final String pattern,
        @ThriftField(value=4, name="matchType", requiredness=Requiredness.OPTIONAL) final StringMatchType matchType,
        @ThriftField(value=5, name="matchFlags", requiredness=Requiredness.REQUIRED) final int matchFlags,
        @ThriftField(value=6, name="parentGroupId", requiredness=Requiredness.REQUIRED) final int parentGroupId,
        @ThriftField(value=7, name="maxMatchCount", requiredness=Requiredness.REQUIRED) final int maxMatchCount
    ) throws FuzzyMatchCountExceedLimitException, ServiceRuntimeException;

    @ThriftMethod(value = "fuzzySearchPerson",
                  exception = {
                      @ThriftException(type=FuzzyMatchCountExceedLimitException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    List fuzzySearchPerson(
        @ThriftField(value=1, name="column", requiredness=Requiredness.OPTIONAL) final String column,
        @ThriftField(value=2, name="pattern", requiredness=Requiredness.OPTIONAL) final String pattern,
        @ThriftField(value=3, name="matchType", requiredness=Requiredness.OPTIONAL) final StringMatchType matchType,
        @ThriftField(value=4, name="matchFlags", requiredness=Requiredness.REQUIRED) final int matchFlags,
        @ThriftField(value=5, name="parentGroupId", requiredness=Requiredness.REQUIRED) final int parentGroupId,
        @ThriftField(value=6, name="maxMatchCount", requiredness=Requiredness.REQUIRED) final int maxMatchCount,
        @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws FuzzyMatchCountExceedLimitException, ServiceRuntimeException;

    @ThriftMethod(value = "getDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceBean getDevice(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceByMac",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceBean getDeviceByMac(
        @ThriftField(value=1, name="mac", requiredness=Requiredness.OPTIONAL) final String mac
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceGroupBean getDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceGroups",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDeviceGroups(
        @ThriftField(value=1, name="groupIdList", requiredness=Requiredness.OPTIONAL) final List groupIdList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceGroupsBelongs",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDeviceGroupsBelongs(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceGroupsPermit",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDeviceGroupsPermit(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceGroupsPermittedBy",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDeviceGroupsPermittedBy(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDeviceIdOfFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int getDeviceIdOfFeature(
        @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDevices",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDevices(
        @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getDevicesOfGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getDevicesOfGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFace",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    FaceBean getFace(
        @ThriftField(value=1, name="faceId", requiredness=Requiredness.REQUIRED) final int faceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFaceApiParameters",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map getFaceApiParameters(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFacesOfFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFacesOfFeature(
        @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFacesOfImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFacesOfImage(
        @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    FeatureBean getFeature(
        @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeatureBytes",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    byte [] getFeatureBytes(
        @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeatureBytesList",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeatureBytesList(
        @ThriftField(value=1, name="md5List", requiredness=Requiredness.OPTIONAL) final List md5List,
        @ThriftField(value=2, name="truncation", requiredness=Requiredness.REQUIRED) final boolean truncation
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeatureBytesTruncation",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    byte [] getFeatureBytesTruncation(
        @ThriftField(value=1, name="md5", requiredness=Requiredness.OPTIONAL) final String md5,
        @ThriftField(value=2, name="truncation", requiredness=Requiredness.REQUIRED) final boolean truncation
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeatures",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeatures(
        @ThriftField(value=1, name="md5List", requiredness=Requiredness.OPTIONAL) final List md5List
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeaturesByPersonIdAndSdkVersion",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeaturesByPersonIdAndSdkVersion(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeaturesOfImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeaturesOfImage(
        @ThriftField(value=1, name="imageMd5", requiredness=Requiredness.OPTIONAL) final String imageMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeaturesOfPerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeaturesOfPerson(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getFeaturesPermittedOnDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getFeaturesPermittedOnDevice(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
        @ThriftField(value=3, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
        @ThriftField(value=4, name="excludeFeatureIds", requiredness=Requiredness.OPTIONAL) final List excludeFeatureIds,
        @ThriftField(value=5, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getGroupIdsByPath",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getGroupIdsByPath(
        @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
        @ThriftField(value=2, name="path", requiredness=Requiredness.OPTIONAL) final String path
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getGroupPermit",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PermitBean getGroupPermit(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getGroupPermitOnDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PermitBean getGroupPermitOnDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getGroupPermits",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getGroupPermits(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="personGroupIdList", requiredness=Requiredness.OPTIONAL) final List personGroupIdList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    ImageBean getImage(
        @ThriftField(value=1, name="imageMD5", requiredness=Requiredness.OPTIONAL) final String imageMD5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getImageBytes",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    byte [] getImageBytes(
        @ThriftField(value=1, name="imageMD5", requiredness=Requiredness.OPTIONAL) final String imageMD5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getImageBytesRef",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    byte [] getImageBytesRef(
        @ThriftField(value=1, name="primaryKey", requiredness=Requiredness.OPTIONAL) final String primaryKey,
        @ThriftField(value=2, name="refType", requiredness=Requiredness.OPTIONAL) final String refType
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getImageRef",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    ImageBean getImageRef(
        @ThriftField(value=1, name="primaryKey", requiredness=Requiredness.OPTIONAL) final String primaryKey,
        @ThriftField(value=2, name="refType", requiredness=Requiredness.OPTIONAL) final String refType
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getImagesAssociatedByFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getImagesAssociatedByFeature(
        @ThriftField(value=1, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getLogBeansByPersonId",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getLogBeansByPersonId(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getLogBeansByPersonIdSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getLogBeansByPersonIdSafe(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getMessageQueueParameters",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map getMessageQueueParameters(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPerson(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonByMobilePhone",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPersonByMobilePhone(
        @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonByMobilePhoneReal",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPersonByMobilePhoneReal(
        @ThriftField(value=1, name="mobilePhone", requiredness=Requiredness.OPTIONAL) final String mobilePhone,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonByPapersNum",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPersonByPapersNum(
        @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonByPapersNumSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPersonByPapersNumSafe(
        @ThriftField(value=1, name="papersNum", requiredness=Requiredness.OPTIONAL) final String papersNum,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonGroupBean getPersonGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonGroups",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonGroups(
        @ThriftField(value=1, name="groupIdList", requiredness=Requiredness.OPTIONAL) final List groupIdList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonGroupsBelongs",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonGroupsBelongs(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonGroupsPermittedBy",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonGroupsPermittedBy(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonPermit",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PermitBean getPersonPermit(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonPermits",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonPermits(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonReal",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean getPersonReal(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersons",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersons(
        @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonsOfGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonsOfGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonsPermittedOnDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonsPermittedOnDevice(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
        @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
        @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonsPermittedOnDeviceByGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonsPermittedOnDeviceByGroup(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
        @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
        @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getPersonsReal",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getPersonsReal(
        @ThriftField(value=1, name="idList", requiredness=Requiredness.OPTIONAL) final List idList,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getProperties",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map getProperties(
        @ThriftField(value=1, name="prefix", requiredness=Requiredness.OPTIONAL) final String prefix,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getProperty",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String getProperty(
        @ThriftField(value=1, name="key", requiredness=Requiredness.OPTIONAL) final String key,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getRedisParameters",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map getRedisParameters(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getServiceConfig",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map getServiceConfig(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getSubDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getSubDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getSubPersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List getSubPersonGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "getTargetInfo4PwdOnDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    TmpwdTargetInfo getTargetInfo4PwdOnDevice(
        @ThriftField(value=1, name="pwd", requiredness=Requiredness.OPTIONAL) final String pwd,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "initTopGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int initTopGroup(
        @ThriftField(value=1, name="groupInfo", requiredness=Requiredness.OPTIONAL) final TopGroupInfo groupInfo,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isDisable",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isDisable(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isLocal",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isLocal() throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidAckChannel",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidAckChannel(
        @ThriftField(value=1, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidCmdSn",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidCmdSn(
        @ThriftField(value=1, name="cmdSn", requiredness=Requiredness.REQUIRED) final int cmdSn
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidDeviceToken",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidDeviceToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidPassword",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidPassword(
        @ThriftField(value=1, name="userId", requiredness=Requiredness.OPTIONAL) final String userId,
        @ThriftField(value=2, name="password", requiredness=Requiredness.OPTIONAL) final String password,
        @ThriftField(value=3, name="isMd5", requiredness=Requiredness.REQUIRED) final boolean isMd5
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidPersonToken",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidPersonToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidRootToken",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidRootToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidToken",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "isValidUserToken",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    boolean isValidUserToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "iso8601Time",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String iso8601Time() throws ServiceRuntimeException;

    @ThriftMethod(value = "listOfParentForDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List listOfParentForDeviceGroup(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "listOfParentForPersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List listOfParentForPersonGroup(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadAllPerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadAllPerson() throws ServiceRuntimeException;

    @ThriftMethod(value = "loadAllPersonSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadAllPersonSafe(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceGroupByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceGroupByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceGroupIdByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceGroupIdByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceGroupIdByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceGroupIdByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceIdByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceIdByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDeviceIdByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDeviceIdByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDistinctIntegerColumn",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDistinctIntegerColumn(
        @ThriftField(value=1, name="table", requiredness=Requiredness.OPTIONAL) final String table,
        @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
        @ThriftField(value=3, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadDistinctStringColumn",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadDistinctStringColumn(
        @ThriftField(value=1, name="table", requiredness=Requiredness.OPTIONAL) final String table,
        @ThriftField(value=2, name="column", requiredness=Requiredness.OPTIONAL) final String column,
        @ThriftField(value=3, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadErrorLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadErrorLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadFeatureMd5ByUpdate",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadFeatureMd5ByUpdate(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadFeatureMd5ByUpdateSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadFeatureMd5ByUpdateSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadFeatureMd5ByUpdateTimeStr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadFeatureMd5ByUpdateTimeStr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadFeatureMd5ByUpdateTimeStrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadFeatureMd5ByUpdateTimeStrSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByVerifyTime",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByVerifyTime(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByVerifyTimeSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByVerifyTimeSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByVerifyTimeTimestr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByVerifyTimeTimestr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByVerifyTimeTimestrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByVerifyTimeTimestrSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadLogLightByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadLogLightByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPermitByUpdate",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPermitByUpdate(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPermitByUpdateTimestr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPermitByUpdateTimestr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonByWhereReal",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonByWhereReal(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonDataPackages",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonDataPackages(
        @ThriftField(value=1, name="personIds", requiredness=Requiredness.OPTIONAL) final List personIds,
        @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
        @ThriftField(value=3, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonDataPackagesInSameGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonDataPackagesInSameGroup(
        @ThriftField(value=1, name="personIds", requiredness=Requiredness.OPTIONAL) final List personIds,
        @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
        @ThriftField(value=3, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonDataPackagesPermittedOnDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonDataPackagesPermittedOnDevice(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId,
        @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
        @ThriftField(value=3, name="excludePersonIds", requiredness=Requiredness.OPTIONAL) final List excludePersonIds,
        @ThriftField(value=4, name="timestamp", requiredness=Requiredness.OPTIONAL) final Long timestamp,
        @ThriftField(value=5, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonGroupByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonGroupByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="startRow", requiredness=Requiredness.REQUIRED) final int startRow,
        @ThriftField(value=3, name="numRows", requiredness=Requiredness.REQUIRED) final int numRows
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonGroupIdByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonGroupIdByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonGroupIdByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonGroupIdByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByUpdateTime",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByUpdateTime(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByUpdateTimeSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByUpdateTimeSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByUpdateTimeTimeStr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByUpdateTimeTimeStr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByUpdateTimeTimeStrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByUpdateTimeTimeStrSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByWhere",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByWhere(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadPersonIdByWhereSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadPersonIdByWhereSafe(
        @ThriftField(value=1, name="where", requiredness=Requiredness.OPTIONAL) final String where,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadUpdatedPersons",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadUpdatedPersons(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadUpdatedPersonsSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadUpdatedPersonsSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.REQUIRED) final long timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadUpdatedPersonsTimestr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadUpdatedPersonsTimestr(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "loadUpdatedPersonsTimestrSafe",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    List loadUpdatedPersonsTimestrSafe(
        @ThriftField(value=1, name="timestamp", requiredness=Requiredness.OPTIONAL) final String timestamp,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "lockWakeup",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    LockWakeupResponse lockWakeup(
        @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
        @ThriftField(value=2, name="ignoreSchedule", requiredness=Requiredness.REQUIRED) final boolean ignoreSchedule,
        @ThriftField(value=3, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "offline",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void offline(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "online",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    Token online(
        @ThriftField(value=1, name="device", requiredness=Requiredness.OPTIONAL) final DeviceBean device
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "pathOf",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String pathOf(
        @ThriftField(value=1, name="tablename", requiredness=Requiredness.OPTIONAL) final String tablename,
        @ThriftField(value=2, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "registerDevice",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    DeviceBean registerDevice(
        @ThriftField(value=1, name="newDevice", requiredness=Requiredness.OPTIONAL) final DeviceBean newDevice
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "releasePersonToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void releasePersonToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "releaseRootToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void releaseRootToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "releaseUserToken",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void releaseUserToken(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "replaceFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void replaceFeature(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
        @ThriftField(value=3, name="deleteOldFeatureImage", requiredness=Requiredness.REQUIRED) final boolean deleteOldFeatureImage,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "rootGroupOfDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int rootGroupOfDevice(
        @ThriftField(value=1, name="deviceId", requiredness=Requiredness.REQUIRED) final int deviceId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "rootGroupOfDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int rootGroupOfDeviceGroup(
        @ThriftField(value=1, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "rootGroupOfPerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int rootGroupOfPerson(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "rootGroupOfPersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int rootGroupOfPersonGroup(
        @ThriftField(value=1, name="groupId", requiredness=Requiredness.REQUIRED) final int groupId
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "runCmd",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String runCmd(
        @ThriftField(value=1, name="target", requiredness=Requiredness.OPTIONAL) final List target,
        @ThriftField(value=2, name="group", requiredness=Requiredness.REQUIRED) final boolean group,
        @ThriftField(value=3, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
        @ThriftField(value=4, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
        @ThriftField(value=5, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel,
        @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "runTask",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int runTask(
        @ThriftField(value=1, name="taskQueue", requiredness=Requiredness.OPTIONAL) final String taskQueue,
        @ThriftField(value=2, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
        @ThriftField(value=3, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
        @ThriftField(value=4, name="ackChannel", requiredness=Requiredness.OPTIONAL) final String ackChannel,
        @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "runTaskSync",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String runTaskSync(
        @ThriftField(value=1, name="taskQueue", requiredness=Requiredness.OPTIONAL) final String taskQueue,
        @ThriftField(value=2, name="cmdpath", requiredness=Requiredness.OPTIONAL) final String cmdpath,
        @ThriftField(value=3, name="jsonArgs", requiredness=Requiredness.OPTIONAL) final String jsonArgs,
        @ThriftField(value=4, name="timeoutSecs", requiredness=Requiredness.REQUIRED) final int timeoutSecs,
        @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "saveDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceBean saveDevice(
        @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "saveDeviceGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceGroupBean saveDeviceGroup(
        @ThriftField(value=1, name="deviceGroupBean", requiredness=Requiredness.OPTIONAL) final DeviceGroupBean deviceGroupBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePermit",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PermitBean savePermit(
        @ThriftField(value=1, name="permitBean", requiredness=Requiredness.OPTIONAL) final PermitBean permitBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePermitWithColumn",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PermitBean savePermitWithColumn(
        @ThriftField(value=1, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=2, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=3, name="column", requiredness=Requiredness.OPTIONAL) final String column,
        @ThriftField(value=4, name="value", requiredness=Requiredness.OPTIONAL) final String value,
        @ThriftField(value=5, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePerson",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePerson(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonFull",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonFull(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=5, name="featureImage", requiredness=Requiredness.OPTIONAL) final byte [] featureImage,
        @ThriftField(value=6, name="faceBean", requiredness=Requiredness.OPTIONAL) final FaceBean faceBean,
        @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonGroup",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonGroupBean savePersonGroup(
        @ThriftField(value=1, name="personGroupBean", requiredness=Requiredness.OPTIONAL) final PersonGroupBean personGroupBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhoto",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhoto(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhotoAndExtractFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhotoAndExtractFeature(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="exractFeature", requiredness=Requiredness.REQUIRED) final boolean exractFeature,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhotoAndFeature",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhotoAndFeature(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="featureBean", requiredness=Requiredness.OPTIONAL) final FeatureBean featureBean,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhotoAndFeatureMultiFaces",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhotoAndFeatureMultiFaces(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=5, name="faceBeans", requiredness=Requiredness.OPTIONAL) final List faceBeans,
        @ThriftField(value=6, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhotoAndFeatureMultiImage",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhotoAndFeatureMultiImage(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhoto", requiredness=Requiredness.OPTIONAL) final byte [] idPhoto,
        @ThriftField(value=3, name="feature", requiredness=Requiredness.OPTIONAL) final byte [] feature,
        @ThriftField(value=4, name="featureVersion", requiredness=Requiredness.OPTIONAL) final String featureVersion,
        @ThriftField(value=5, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
        @ThriftField(value=6, name="faces", requiredness=Requiredness.OPTIONAL) final List faces,
        @ThriftField(value=7, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonWithPhotoAndFeatureSaved",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    PersonBean savePersonWithPhotoAndFeatureSaved(
        @ThriftField(value=1, name="personBean", requiredness=Requiredness.OPTIONAL) final PersonBean personBean,
        @ThriftField(value=2, name="idPhotoMd5", requiredness=Requiredness.OPTIONAL) final String idPhotoMd5,
        @ThriftField(value=3, name="featureMd5", requiredness=Requiredness.OPTIONAL) final String featureMd5,
        @ThriftField(value=4, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersons",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void savePersons(
        @ThriftField(value=1, name="persons", requiredness=Requiredness.OPTIONAL) final List persons,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "savePersonsWithPhoto",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    int savePersonsWithPhoto(
        @ThriftField(value=1, name="photos", requiredness=Requiredness.OPTIONAL) final List photos,
        @ThriftField(value=2, name="persons", requiredness=Requiredness.OPTIONAL) final List persons,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "saveServiceConfig",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void saveServiceConfig(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "sdkTaskQueueOf",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String sdkTaskQueueOf(
        @ThriftField(value=1, name="task", requiredness=Requiredness.OPTIONAL) final String task,
        @ThriftField(value=2, name="sdkVersion", requiredness=Requiredness.OPTIONAL) final String sdkVersion,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "setPersonExpiryDate",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void setPersonExpiryDate(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.REQUIRED) final long expiryDate,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "setPersonExpiryDateList",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void setPersonExpiryDateList(
        @ThriftField(value=1, name="personIdList", requiredness=Requiredness.OPTIONAL) final List personIdList,
        @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.REQUIRED) final long expiryDate,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "setPersonExpiryDateTimeStr",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void setPersonExpiryDateTimeStr(
        @ThriftField(value=1, name="personId", requiredness=Requiredness.REQUIRED) final int personId,
        @ThriftField(value=2, name="expiryDate", requiredness=Requiredness.OPTIONAL) final String expiryDate,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "setProperties",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void setProperties(
        @ThriftField(value=1, name="config", requiredness=Requiredness.OPTIONAL) final Map config,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "setProperty",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void setProperty(
        @ThriftField(value=1, name="key", requiredness=Requiredness.OPTIONAL) final String key,
        @ThriftField(value=2, name="value", requiredness=Requiredness.OPTIONAL) final String value,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "taskQueueOf",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String taskQueueOf(
        @ThriftField(value=1, name="task", requiredness=Requiredness.OPTIONAL) final String task,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "unbindBorder",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    void unbindBorder(
        @ThriftField(value=1, name="personGroupId", requiredness=Requiredness.REQUIRED) final int personGroupId,
        @ThriftField(value=2, name="deviceGroupId", requiredness=Requiredness.REQUIRED) final int deviceGroupId,
        @ThriftField(value=3, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "unregisterDevice",
                  exception = {
                      @ThriftException(type=ServiceSecurityException.class, id=1),
                      @ThriftException(type=ServiceRuntimeException.class, id=2)
                  })
    void unregisterDevice(
        @ThriftField(value=1, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceSecurityException, ServiceRuntimeException;

    @ThriftMethod(value = "updateDevice",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    DeviceBean updateDevice(
        @ThriftField(value=1, name="deviceBean", requiredness=Requiredness.OPTIONAL) final DeviceBean deviceBean,
        @ThriftField(value=2, name="token", requiredness=Requiredness.OPTIONAL) final Token token
    ) throws ServiceRuntimeException;

    @ThriftMethod(value = "version",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    String version() throws ServiceRuntimeException;

    @ThriftMethod(value = "versionInfo",
                  exception = {
                      @ThriftException(type=ServiceRuntimeException.class, id=1)
                  })
    Map versionInfo() throws ServiceRuntimeException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy