// This file is auto-generated, don't edit it
/**
 */
import Util, * as $Util from '@alicloud/tea-util';
import GatewayClient from '@alicloud/gateway-dingtalk';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import OpenApiUtil from '@alicloud/openapi-util';
import * as $tea from '@alicloud/tea-typescript';

export class ResultValue extends $tea.Model {
  thumbnail?: string;
  fileSize?: number;
  extension?: string;
  fileName?: string;
  url?: string;
  static names(): { [key: string]: string } {
    return {
      thumbnail: 'thumbnail',
      fileSize: 'fileSize',
      extension: 'extension',
      fileName: 'fileName',
      url: 'url',
    };
  }

  static types(): { [key: string]: any } {
    return {
      thumbnail: 'string',
      fileSize: 'number',
      extension: 'string',
      fileName: 'string',
      url: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ActivateDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ActivateDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fafdfa-rewerwr-rewew-rwe
   */
  licenseKey?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * model1
   */
  model?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 三年级一班班牌
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ujoo-233
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      licenseKey: 'licenseKey',
      model: 'model',
      name: 'name',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      licenseKey: 'string',
      model: 'string',
      name: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ActivateDeviceResponseBody extends $tea.Model {
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ActivateDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ActivateDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ActivateDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  depts?: AddCollegeAlumniDeptsRequestDepts[];
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      depts: 'depts',
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      depts: { 'type': 'array', 'itemType': AddCollegeAlumniDeptsRequestDepts },
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsResponseBody extends $tea.Model {
  result?: AddCollegeAlumniDeptsResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': AddCollegeAlumniDeptsResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddCollegeAlumniDeptsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddCollegeAlumniDeptsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniUserInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniUserInfoRequest extends $tea.Model {
  address?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deptIds?: number[];
  email?: string;
  intake?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  mobile?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  outtake?: string;
  studentNumber?: string;
  static names(): { [key: string]: string } {
    return {
      address: 'address',
      deptIds: 'deptIds',
      email: 'email',
      intake: 'intake',
      mobile: 'mobile',
      name: 'name',
      operator: 'operator',
      outtake: 'outtake',
      studentNumber: 'studentNumber',
    };
  }

  static types(): { [key: string]: any } {
    return {
      address: 'string',
      deptIds: { 'type': 'array', 'itemType': 'number' },
      email: 'string',
      intake: 'string',
      mobile: 'string',
      name: 'string',
      operator: 'string',
      outtake: 'string',
      studentNumber: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniUserInfoResponseBody extends $tea.Model {
  result?: AddCollegeAlumniUserInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: AddCollegeAlumniUserInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniUserInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddCollegeAlumniUserInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddCollegeAlumniUserInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveRequest extends $tea.Model {
  /**
   * @example
   * @lALPDfmVUw19YdrNA-jNA-g
   */
  avatarMediaId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deptIdList?: number[];
  deptOrderList?: AddCollegeContactExclusiveRequestDeptOrderList[];
  deptPositionSet?: AddCollegeContactExclusiveRequestDeptPositionSet[];
  deptTitleList?: AddCollegeContactExclusiveRequestDeptTitleList[];
  /**
   * @example
   * test@xxx.com
   */
  email?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * college_student
   */
  empType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  exclusiveAccount?: boolean;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingtalk
   */
  exclusiveAccountType?: string;
  exclusiveMobileVerifyStatus?: string;
  extension?: { [key: string]: string };
  /**
   * @example
   * 1597573616828
   */
  hiredDate?: number;
  initPassword?: string;
  /**
   * @example
   * 666666
   */
  jobNumber?: string;
  /**
   * @example
   * studentNo
   */
  loginIdType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  mainDeptId?: number;
  /**
   * @example
   * 001
   */
  managerUserid?: string;
  /**
   * @example
   * 185xxxx8888
   */
  mobile?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * 昵称
   */
  nickname?: string;
  /**
   * @example
   * test@xxx.com
   */
  orgEmail?: string;
  /**
   * @example
   * profession
   */
  orgEmailType?: string;
  /**
   * @example
   * 备注
   */
  remark?: string;
  sendActiveSms?: boolean;
  seniorMode?: boolean;
  /**
   * @example
   * 010-86123456-2345
   */
  telephone?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * zhangsan666
   */
  userid?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      avatarMediaId: 'avatarMediaId',
      deptIdList: 'deptIdList',
      deptOrderList: 'deptOrderList',
      deptPositionSet: 'deptPositionSet',
      deptTitleList: 'deptTitleList',
      email: 'email',
      empType: 'empType',
      exclusiveAccount: 'exclusiveAccount',
      exclusiveAccountType: 'exclusiveAccountType',
      exclusiveMobileVerifyStatus: 'exclusiveMobileVerifyStatus',
      extension: 'extension',
      hiredDate: 'hiredDate',
      initPassword: 'initPassword',
      jobNumber: 'jobNumber',
      loginIdType: 'loginIdType',
      mainDeptId: 'mainDeptId',
      managerUserid: 'managerUserid',
      mobile: 'mobile',
      name: 'name',
      nickname: 'nickname',
      orgEmail: 'orgEmail',
      orgEmailType: 'orgEmailType',
      remark: 'remark',
      sendActiveSms: 'sendActiveSms',
      seniorMode: 'seniorMode',
      telephone: 'telephone',
      title: 'title',
      userid: 'userid',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      avatarMediaId: 'string',
      deptIdList: { 'type': 'array', 'itemType': 'number' },
      deptOrderList: { 'type': 'array', 'itemType': AddCollegeContactExclusiveRequestDeptOrderList },
      deptPositionSet: { 'type': 'array', 'itemType': AddCollegeContactExclusiveRequestDeptPositionSet },
      deptTitleList: { 'type': 'array', 'itemType': AddCollegeContactExclusiveRequestDeptTitleList },
      email: 'string',
      empType: 'string',
      exclusiveAccount: 'boolean',
      exclusiveAccountType: 'string',
      exclusiveMobileVerifyStatus: 'string',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      hiredDate: 'number',
      initPassword: 'string',
      jobNumber: 'string',
      loginIdType: 'string',
      mainDeptId: 'number',
      managerUserid: 'string',
      mobile: 'string',
      name: 'string',
      nickname: 'string',
      orgEmail: 'string',
      orgEmailType: 'string',
      remark: 'string',
      sendActiveSms: 'boolean',
      seniorMode: 'boolean',
      telephone: 'string',
      title: 'string',
      userid: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveResponseBody extends $tea.Model {
  result?: AddCollegeContactExclusiveResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: AddCollegeContactExclusiveResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddCollegeContactExclusiveResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddCollegeContactExclusiveResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  deptIdList?: number[];
  deptOrderList?: AddCollegeContactUserRequestDeptOrderList[];
  deptPositionSet?: AddCollegeContactUserRequestDeptPositionSet[];
  deptTitleList?: AddCollegeContactUserRequestDeptTitleList[];
  /**
   * @example
   * test@xxx.com
   */
  email?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * college_student
   */
  empType?: string;
  extension?: { [key: string]: string };
  hideMobile?: boolean;
  /**
   * @example
   * 1597573616828
   */
  hiredDate?: number;
  /**
   * @example
   * 666666
   */
  jobNumber?: string;
  /**
   * @example
   * test@xxx.com
   */
  loginEmail?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  mainDeptId?: number;
  /**
   * @example
   * 001
   */
  managerUserid?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 185xxxx8888
   */
  mobile?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * test@xxx.com
   */
  orgEmail?: string;
  /**
   * @example
   * profession
   */
  orgEmailType?: string;
  /**
   * @example
   * 备注
   */
  remark?: string;
  sendActiveSms?: boolean;
  seniorMode?: boolean;
  /**
   * @example
   * 010-86123456-2345
   */
  telephone?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * zhangsan666
   */
  userid?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptIdList: 'deptIdList',
      deptOrderList: 'deptOrderList',
      deptPositionSet: 'deptPositionSet',
      deptTitleList: 'deptTitleList',
      email: 'email',
      empType: 'empType',
      extension: 'extension',
      hideMobile: 'hideMobile',
      hiredDate: 'hiredDate',
      jobNumber: 'jobNumber',
      loginEmail: 'loginEmail',
      mainDeptId: 'mainDeptId',
      managerUserid: 'managerUserid',
      mobile: 'mobile',
      name: 'name',
      orgEmail: 'orgEmail',
      orgEmailType: 'orgEmailType',
      remark: 'remark',
      sendActiveSms: 'sendActiveSms',
      seniorMode: 'seniorMode',
      telephone: 'telephone',
      title: 'title',
      userid: 'userid',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptIdList: { 'type': 'array', 'itemType': 'number' },
      deptOrderList: { 'type': 'array', 'itemType': AddCollegeContactUserRequestDeptOrderList },
      deptPositionSet: { 'type': 'array', 'itemType': AddCollegeContactUserRequestDeptPositionSet },
      deptTitleList: { 'type': 'array', 'itemType': AddCollegeContactUserRequestDeptTitleList },
      email: 'string',
      empType: 'string',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      hideMobile: 'boolean',
      hiredDate: 'number',
      jobNumber: 'string',
      loginEmail: 'string',
      mainDeptId: 'number',
      managerUserid: 'string',
      mobile: 'string',
      name: 'string',
      orgEmail: 'string',
      orgEmailType: 'string',
      remark: 'string',
      sendActiveSms: 'boolean',
      seniorMode: 'boolean',
      telephone: 'string',
      title: 'string',
      userid: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserResponseBody extends $tea.Model {
  result?: AddCollegeContactUserResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: AddCollegeContactUserResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddCollegeContactUserResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddCollegeContactUserResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCompetitionRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCompetitionRecordRequest extends $tea.Model {
  /**
   * @example
   * 5F44C
   */
  competitionCode?: string;
  /**
   * @example
   * edu
   */
  groupTemplateCode?: string;
  joinGroup?: boolean;
  /**
   * @example
   * 小明
   */
  participantName?: string;
  /**
   * @example
   * VYn5fYjORJMi
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      competitionCode: 'competitionCode',
      groupTemplateCode: 'groupTemplateCode',
      joinGroup: 'joinGroup',
      participantName: 'participantName',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      competitionCode: 'string',
      groupTemplateCode: 'string',
      joinGroup: 'boolean',
      participantName: 'string',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCompetitionRecordResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCompetitionRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddCompetitionRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddCompetitionRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123123
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * M-123123
   */
  model?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 支付设备
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn1234324234
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  status?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      merchantId: 'merchantId',
      model: 'model',
      name: 'name',
      scene: 'scene',
      sn: 'sn',
      status: 'status',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      merchantId: 'string',
      model: 'string',
      name: 'string',
      scene: 'number',
      sn: 'string',
      status: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddDeviceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1002
   */
  id?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  status?: number;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      id: 'id',
      merchantId: 'merchantId',
      sn: 'sn',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      id: 'number',
      merchantId: 'string',
      sn: 'string',
      status: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddEvaluatePerformanceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddEvaluatePerformanceRequest extends $tea.Model {
  evaluationData?: AddEvaluatePerformanceRequestEvaluationData[];
  static names(): { [key: string]: string } {
    return {
      evaluationData: 'evaluationData',
    };
  }

  static types(): { [key: string]: any } {
    return {
      evaluationData: { 'type': 'array', 'itemType': AddEvaluatePerformanceRequestEvaluationData },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddEvaluatePerformanceResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddEvaluatePerformanceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddEvaluatePerformanceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddEvaluatePerformanceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddSchoolConfigHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddSchoolConfigRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 操作人id
   */
  operatorId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 操作人名称
   */
  operatorName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 测温上限
   */
  temperatureUpLimit?: number;
  static names(): { [key: string]: string } {
    return {
      operatorId: 'operatorId',
      operatorName: 'operatorName',
      temperatureUpLimit: 'temperatureUpLimit',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operatorId: 'string',
      operatorName: 'string',
      temperatureUpLimit: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddSchoolConfigResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddSchoolConfigResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddSchoolConfigResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddSchoolConfigResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddTraceEventHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddTraceEventRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  actionKey?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  actionTime?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  bizReq?: string;
  bizResp?: string;
  deviceId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  eventId?: string;
  eventType?: string;
  eventUnit?: string;
  eventValue?: string;
  extend?: string;
  platform?: string;
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      actionKey: 'actionKey',
      actionTime: 'actionTime',
      bizCode: 'bizCode',
      bizReq: 'bizReq',
      bizResp: 'bizResp',
      deviceId: 'deviceId',
      eventId: 'eventId',
      eventType: 'eventType',
      eventUnit: 'eventUnit',
      eventValue: 'eventValue',
      extend: 'extend',
      platform: 'platform',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionKey: 'string',
      actionTime: 'string',
      bizCode: 'string',
      bizReq: 'string',
      bizResp: 'string',
      deviceId: 'string',
      eventId: 'string',
      eventType: 'string',
      eventUnit: 'string',
      eventValue: 'string',
      extend: 'string',
      platform: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddTraceEventResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddTraceEventResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AddTraceEventResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AddTraceEventResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustCourseRequest extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * classRoom_xxx
   */
  classRoomId?: string;
  /**
   * @example
   * 音乐教室
   */
  classRoomName?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * code_xxx
   */
  courseCode?: string;
  /**
   * @example
   * 0
   */
  courseDate?: number;
  /**
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 1
   */
  courseWeek?: number;
  /**
   * @example
   * 1
   */
  endTime?: number;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseId
   */
  isvCourseId?: string;
  /**
   * @example
   * memo_xxx
   */
  memo?: string;
  /**
   * @example
   * 2024
   */
  schoolYear?: string;
  /**
   * @example
   * 1
   */
  semester?: number;
  /**
   * @example
   * 0
   */
  startTime?: number;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 1
   */
  teachWeek?: number;
  /**
   * @example
   * 第一节
   */
  timeslotName?: string;
  /**
   * @example
   * 1
   */
  timeslotNum?: number;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      className: 'className',
      classRoomId: 'classRoomId',
      classRoomName: 'classRoomName',
      classType: 'classType',
      corpId: 'corpId',
      courseCode: 'courseCode',
      courseDate: 'courseDate',
      courseName: 'courseName',
      courseWeek: 'courseWeek',
      endTime: 'endTime',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      memo: 'memo',
      schoolYear: 'schoolYear',
      semester: 'semester',
      startTime: 'startTime',
      status: 'status',
      teachWeek: 'teachWeek',
      timeslotName: 'timeslotName',
      timeslotNum: 'timeslotNum',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      className: 'string',
      classRoomId: 'string',
      classRoomName: 'string',
      classType: 'number',
      corpId: 'string',
      courseCode: 'string',
      courseDate: 'number',
      courseName: 'string',
      courseWeek: 'number',
      endTime: 'number',
      isvCode: 'string',
      isvCourseId: 'string',
      memo: 'string',
      schoolYear: 'string',
      semester: 'number',
      startTime: 'number',
      status: 'number',
      teachWeek: 'number',
      timeslotName: 'string',
      timeslotNum: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustCourseResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AdjustCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AdjustCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustKitHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustKitRequest extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * 0
   */
  openEndTime?: number;
  /**
   * @example
   * 0
   */
  openStartTime?: number;
  /**
   * @example
   * staffxxx
   */
  openUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      openEndTime: 'openEndTime',
      openStartTime: 'openStartTime',
      openUserId: 'openUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
      openEndTime: 'number',
      openStartTime: 'number',
      openUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustKitResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AdjustKitResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AdjustKitResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AdjustKitResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AssignClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AssignClassRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 353534
   */
  classId?: number;
  isFinish?: boolean;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * staff234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 675656
   */
  studentId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 4240028
   */
  taskId?: number;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      isFinish: 'isFinish',
      operator: 'operator',
      studentId: 'studentId',
      taskId: 'taskId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      isFinish: 'boolean',
      operator: 'string',
      studentId: 'number',
      taskId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AssignClassResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AssignClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: AssignClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: AssignClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  data?: BatchCreateRequestData;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * AFC35F13-8A88-728F-27C5-3616AD7DFF2E
   */
  identifier?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 4
   */
  jsVersion?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * QUPEIYIN
   */
  sourceType?: string;
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      data: 'data',
      identifier: 'identifier',
      jsVersion: 'jsVersion',
      sourceType: 'sourceType',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      data: BatchCreateRequestData,
      identifier: 'string',
      jsVersion: 'number',
      sourceType: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateResponseBody extends $tea.Model {
  result?: BatchCreateResponseBodyResult;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: BatchCreateResponseBodyResult,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchCreateResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchCreateResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseRequest extends $tea.Model {
  /**
   * @example
   * class_xxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  courseDetailItemList?: BatchCreateCourseRequestCourseDetailItemList[];
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * 2024
   */
  schoolYear?: string;
  /**
   * @example
   * 1
   */
  semester?: number;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      className: 'className',
      classType: 'classType',
      corpId: 'corpId',
      courseDetailItemList: 'courseDetailItemList',
      isvCode: 'isvCode',
      schoolYear: 'schoolYear',
      semester: 'semester',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      className: 'string',
      classType: 'number',
      corpId: 'string',
      courseDetailItemList: { 'type': 'array', 'itemType': BatchCreateCourseRequestCourseDetailItemList },
      isvCode: 'string',
      schoolYear: 'string',
      semester: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchCreateCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchCreateCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateStudentClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateStudentClassRequest extends $tea.Model {
  /**
   * @example
   * classxxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  studentList?: BatchCreateStudentClassRequestStudentList[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      className: 'className',
      classType: 'classType',
      corpId: 'corpId',
      isvCode: 'isvCode',
      studentList: 'studentList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      className: 'string',
      classType: 'number',
      corpId: 'string',
      isvCode: 'string',
      studentList: { 'type': 'array', 'itemType': BatchCreateStudentClassRequestStudentList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateStudentClassResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateStudentClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchCreateStudentClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchCreateStudentClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateTeacherCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateTeacherCourseRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  teacherCourseDetailItemList?: BatchCreateTeacherCourseRequestTeacherCourseDetailItemList[];
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * staffxxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      teacherCourseDetailItemList: 'teacherCourseDetailItemList',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      teacherCourseDetailItemList: { 'type': 'array', 'itemType': BatchCreateTeacherCourseRequestTeacherCourseDetailItemList },
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateTeacherCourseResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateTeacherCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchCreateTeacherCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchCreateTeacherCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchInvalidCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchInvalidCourseRequest extends $tea.Model {
  /**
   * @example
   * class_xxx
   */
  classId?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseId
   */
  isvCourseId?: string;
  isvCourseIds?: string[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      isvCourseIds: 'isvCourseIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
      isvCourseIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchInvalidCourseResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchInvalidCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchInvalidCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchInvalidCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  attributes?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  courseName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  hwContent?: string;
  hwDeadline?: number;
  /**
   * @example
   * Y
   * 
   * **if can be null:**
   * false
   */
  hwDeadlineOpen?: string;
  hwMedia?: string;
  hwPhoto?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  hwTitle?: string;
  hwType?: string;
  hwVideo?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  identifier?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  openSelectItemList?: BatchOrgCreateHWRequestOpenSelectItemList[];
  scheduledRelease?: string;
  scheduledTime?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  status?: string;
  targetRole?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      bizCode: 'bizCode',
      courseName: 'courseName',
      hwContent: 'hwContent',
      hwDeadline: 'hwDeadline',
      hwDeadlineOpen: 'hwDeadlineOpen',
      hwMedia: 'hwMedia',
      hwPhoto: 'hwPhoto',
      hwTitle: 'hwTitle',
      hwType: 'hwType',
      hwVideo: 'hwVideo',
      identifier: 'identifier',
      openSelectItemList: 'openSelectItemList',
      scheduledRelease: 'scheduledRelease',
      scheduledTime: 'scheduledTime',
      status: 'status',
      targetRole: 'targetRole',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      bizCode: 'string',
      courseName: 'string',
      hwContent: 'string',
      hwDeadline: 'number',
      hwDeadlineOpen: 'string',
      hwMedia: 'string',
      hwPhoto: 'string',
      hwTitle: 'string',
      hwType: 'string',
      hwVideo: 'string',
      identifier: 'string',
      openSelectItemList: { 'type': 'array', 'itemType': BatchOrgCreateHWRequestOpenSelectItemList },
      scheduledRelease: 'string',
      scheduledTime: 'string',
      status: 'string',
      targetRole: 'string',
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWResponseBody extends $tea.Model {
  result?: BatchOrgCreateHWResponseBodyResult;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: BatchOrgCreateHWResponseBodyResult,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchOrgCreateHWResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: BatchOrgCreateHWResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelKitTaskHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelKitTaskRequest extends $tea.Model {
  /**
   * @example
   * CARD_EVENT
   */
  bizType?: string;
  /**
   * @example
   * ding12123
   */
  corpId?: string;
  /**
   * @example
   * 2023234234234
   */
  identifier?: string;
  /**
   * @example
   * CHENZHI
   */
  isvCode?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      corpId: 'corpId',
      identifier: 'identifier',
      isvCode: 'isvCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'string',
      corpId: 'string',
      identifier: 'string',
      isvCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelKitTaskResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelKitTaskResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CancelKitTaskResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CancelKitTaskResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  orderNo?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  sn?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      orderNo: 'orderNo',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      orderNo: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelOrderResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * false
   */
  needRetry?: boolean;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * refund
   */
  tradeAction?: string;
  static names(): { [key: string]: string } {
    return {
      needRetry: 'needRetry',
      tradeAction: 'tradeAction',
    };
  }

  static types(): { [key: string]: any } {
    return {
      needRetry: 'boolean',
      tradeAction: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CancelOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CancelOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelSnsOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelSnsOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * CM000001
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100000
   */
  timestamp?: number;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      signature: 'signature',
      timestamp: 'timestamp',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      orderNo: 'string',
      signature: 'string',
      timestamp: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelSnsOrderResponseBody extends $tea.Model {
  /**
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M000001
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001234
   */
  orderNo?: string;
  payStatus?: number;
  refundStatus?: number;
  totalAmount?: number;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
      payStatus: 'payStatus',
      refundStatus: 'refundStatus',
      totalAmount: 'totalAmount',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
      payStatus: 'number',
      refundStatus: 'number',
      totalAmount: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelSnsOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CancelSnsOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CancelSnsOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelUserOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelUserOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * CM000001
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100000
   */
  timestamp?: number;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      signature: 'signature',
      timestamp: 'timestamp',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      orderNo: 'string',
      signature: 'string',
      timestamp: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelUserOrderResponseBody extends $tea.Model {
  /**
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M000001
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001234
   */
  orderNo?: string;
  payStatus?: number;
  refundStatus?: number;
  totalAmount?: number;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
      payStatus: 'payStatus',
      refundStatus: 'refundStatus',
      totalAmount: 'totalAmount',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
      payStatus: 'number',
      refundStatus: 'number',
      totalAmount: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CancelUserOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CancelUserOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CancelUserOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  cardIds?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1678445875001
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      cardIds: 'cardIds',
      sourceType: 'sourceType',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      cardIds: { 'type': 'array', 'itemType': 'number' },
      sourceType: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsResponseBody extends $tea.Model {
  result?: CardBatchQueryCardsResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CardBatchQueryCardsResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardBatchQueryCardsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardBatchQueryCardsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardDeleteCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardDeleteCardRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 23424234
   */
  cardBizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234234234
   */
  cardId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234234234
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      cardBizId: 'cardBizId',
      cardId: 'cardId',
      sourceType: 'sourceType',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      cardBizId: 'string',
      cardId: 'number',
      sourceType: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardDeleteCardResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardDeleteCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardDeleteCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardDeleteCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardEndCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardEndCardRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 856237470
   */
  cardBizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 80264668258
   */
  cardId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager7741
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      cardBizId: 'cardBizId',
      cardId: 'cardId',
      sourceType: 'sourceType',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      cardBizId: 'string',
      cardId: 'number',
      sourceType: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardEndCardResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardEndCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardEndCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardEndCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 80264668258
   */
  cardId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  static names(): { [key: string]: string } {
    return {
      cardId: 'cardId',
      sourceType: 'sourceType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardId: 'number',
      sourceType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardResponseBody extends $tea.Model {
  result?: CardGetCardResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CardGetCardResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardGetCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardGetCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 856237470
   */
  cardBizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 80264668258
   */
  cardId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @example
   * 3000000000847390208
   */
  studentId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager7741
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      cardBizId: 'cardBizId',
      cardId: 'cardId',
      sourceType: 'sourceType',
      studentId: 'studentId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      cardBizId: 'string',
      cardId: 'number',
      sourceType: 'string',
      studentId: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponseBody extends $tea.Model {
  result?: CardGetCardFinishProgressResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CardGetCardFinishProgressResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardGetCardFinishProgressResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardGetCardFinishProgressResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 3
   */
  bizType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 856237470
   */
  cardBizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 80264668258
   */
  cardId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 5
   */
  count?: number;
  cursor?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  feedType?: number;
  needFinishProcess?: boolean;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @example
   * 3000000000847390208
   */
  studentId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * CARD_TASK_CODE_0
   */
  subBizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager7741
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      cardBizCode: 'cardBizCode',
      cardBizId: 'cardBizId',
      cardId: 'cardId',
      count: 'count',
      cursor: 'cursor',
      feedType: 'feedType',
      needFinishProcess: 'needFinishProcess',
      sourceType: 'sourceType',
      studentId: 'studentId',
      subBizId: 'subBizId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      cardBizCode: 'string',
      cardBizId: 'string',
      cardId: 'number',
      count: 'number',
      cursor: 'number',
      feedType: 'number',
      needFinishProcess: 'boolean',
      sourceType: 'string',
      studentId: 'string',
      subBizId: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponseBody extends $tea.Model {
  result?: CardQueryCardFeedsResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CardQueryCardFeedsResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CardQueryCardFeedsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CardQueryCardFeedsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CheckRestrictionHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CheckRestrictionRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      faceId: 'faceId',
      scene: 'scene',
      sn: 'sn',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      faceId: 'string',
      scene: 'number',
      sn: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CheckRestrictionResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CheckRestrictionResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CheckRestrictionResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CheckRestrictionResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ClearEvaluatePerformanceCountHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ClearEvaluatePerformanceCountRequest extends $tea.Model {
  studentIdList?: string[];
  static names(): { [key: string]: string } {
    return {
      studentIdList: 'studentIdList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      studentIdList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ClearEvaluatePerformanceCountResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ClearEvaluatePerformanceCountResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ClearEvaluatePerformanceCountResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ClearEvaluatePerformanceCountResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ConsumePointHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ConsumePointRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  amount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  bizId?: string;
  /**
   * @example
   * point_exchange
   */
  description?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * FAMILY_GIFT_MALL
   */
  productCode?: string;
  static names(): { [key: string]: string } {
    return {
      amount: 'amount',
      bizId: 'bizId',
      description: 'description',
      productCode: 'productCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      amount: 'number',
      bizId: 'string',
      description: 'string',
      productCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ConsumePointResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ConsumePointResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ConsumePointResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ConsumePointResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CourseSchedulingComplimentNoticeHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CourseSchedulingComplimentNoticeRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 行政老师A
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CourseSchedulingComplimentNoticeResponseBody extends $tea.Model {
  /**
   * @example
   * true：成功 false：失败
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CourseSchedulingComplimentNoticeResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CourseSchedulingComplimentNoticeResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CourseSchedulingComplimentNoticeResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRequest extends $tea.Model {
  answerContent?: string;
  difficultyLevel?: number;
  explainAudio?: string;
  explainContent?: string;
  generateTime?: number;
  knowledgePointList?: string[];
  ownerCode?: string;
  ownerType?: string;
  proficiencyLevel?: number;
  questionAudio?: string;
  questionContent?: string;
  questionExtension?: { [key: string]: string };
  questionPicUrl?: string;
  questionType?: string;
  sourceCode?: string;
  studentUserId?: string;
  subject?: string;
  static names(): { [key: string]: string } {
    return {
      answerContent: 'answerContent',
      difficultyLevel: 'difficultyLevel',
      explainAudio: 'explainAudio',
      explainContent: 'explainContent',
      generateTime: 'generateTime',
      knowledgePointList: 'knowledgePointList',
      ownerCode: 'ownerCode',
      ownerType: 'ownerType',
      proficiencyLevel: 'proficiencyLevel',
      questionAudio: 'questionAudio',
      questionContent: 'questionContent',
      questionExtension: 'questionExtension',
      questionPicUrl: 'questionPicUrl',
      questionType: 'questionType',
      sourceCode: 'sourceCode',
      studentUserId: 'studentUserId',
      subject: 'subject',
    };
  }

  static types(): { [key: string]: any } {
    return {
      answerContent: 'string',
      difficultyLevel: 'number',
      explainAudio: 'string',
      explainContent: 'string',
      generateTime: 'number',
      knowledgePointList: { 'type': 'array', 'itemType': 'string' },
      ownerCode: 'string',
      ownerType: 'string',
      proficiencyLevel: 'number',
      questionAudio: 'string',
      questionContent: 'string',
      questionExtension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      questionPicUrl: 'string',
      questionType: 'string',
      sourceCode: 'string',
      studentUserId: 'string',
      subject: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAppOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAppOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  bizCode?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  detailList?: CreateAppOrderRequestDetailList[];
  /**
   * @example
   * 1
   */
  labelAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * M00001
   */
  merchantOrderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  outerUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 数字图书
   */
  subject?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100000
   */
  timestamp?: number;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      bizCode: 'bizCode',
      detailList: 'detailList',
      labelAmount: 'labelAmount',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      outerUserId: 'outerUserId',
      signature: 'signature',
      subject: 'subject',
      timestamp: 'timestamp',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      bizCode: 'number',
      detailList: { 'type': 'array', 'itemType': CreateAppOrderRequestDetailList },
      labelAmount: 'number',
      merchantId: 'string',
      merchantOrderNo: 'string',
      outerUserId: 'string',
      signature: 'string',
      subject: 'string',
      timestamp: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAppOrderResponseBody extends $tea.Model {
  /**
   * @example
   * 1
   */
  actualAmount?: number;
  /**
   * @example
   * 1234
   */
  alipayAppId?: string;
  /**
   * @example
   * alipay_sdk=alipay-sdk-java-dynamicVersionNo&version=1.0
   */
  body?: string;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M00001
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001
   */
  orderNo?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      body: 'body',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      body: 'string',
      merchantId: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAppOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateAppOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateAppOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAwaitingCorrectionDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAwaitingCorrectionDataRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://example.com/files/corrected_math_hw_T250401-001.pdf
   */
  allAssignmentPdfUrl?: string;
  /**
   * @example
   * 501
   * 
   * **if can be null:**
   * false
   */
  className?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding8196cd122f5cc6abecb851
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * {\"paperSize\":\"A4\",\"duplex\":false,\"color\":true}
   */
  printInfo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * PRINTER1
   */
  printerCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 数学
   */
  subjectName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * DING_GRADING_1
   */
  taskCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 80
   */
  totalPages?: number;
  static names(): { [key: string]: string } {
    return {
      allAssignmentPdfUrl: 'allAssignmentPdfUrl',
      className: 'className',
      corpId: 'corpId',
      printInfo: 'printInfo',
      printerCode: 'printerCode',
      subjectName: 'subjectName',
      taskCode: 'taskCode',
      totalPages: 'totalPages',
    };
  }

  static types(): { [key: string]: any } {
    return {
      allAssignmentPdfUrl: 'string',
      className: 'string',
      corpId: 'string',
      printInfo: 'string',
      printerCode: 'string',
      subjectName: 'string',
      taskCode: 'string',
      totalPages: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAwaitingCorrectionDataResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAwaitingCorrectionDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateAwaitingCorrectionDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateAwaitingCorrectionDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptRequest extends $tea.Model {
  autoApproveApply?: boolean;
  /**
   * @example
   * 这是组织单元简介
   */
  brief?: string;
  /**
   * @example
   * 20000
   */
  code?: string;
  createDeptGroup?: boolean;
  /**
   * @example
   * dept456
   */
  deptCode?: string;
  /**
   * @example
   * 234567
   */
  deptId?: number;
  deptPermits?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * contact_class_dept
   */
  deptType?: string;
  empApplyJoinDept?: boolean;
  extension?: { [key: string]: string };
  hideDept?: boolean;
  hideSceneConfig?: CreateCollegeContactDeptRequestHideSceneConfig;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 软件工程
   */
  name?: string;
  /**
   * @example
   * 20
   */
  order?: number;
  outerDept?: boolean;
  outerDeptOnlySelf?: boolean;
  outerPermitDepts?: number[];
  outerPermitUsers?: string[];
  outerSceneConfig?: CreateCollegeContactDeptRequestOuterSceneConfig;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  parentId?: number;
  /**
   * @example
   * 软件工程标识
   */
  sourceIdentifier?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  struId?: number;
  /**
   * @example
   * 138xxxx0000
   */
  telephone?: string;
  userPermits?: string[];
  static names(): { [key: string]: string } {
    return {
      autoApproveApply: 'autoApproveApply',
      brief: 'brief',
      code: 'code',
      createDeptGroup: 'createDeptGroup',
      deptCode: 'deptCode',
      deptId: 'deptId',
      deptPermits: 'deptPermits',
      deptType: 'deptType',
      empApplyJoinDept: 'empApplyJoinDept',
      extension: 'extension',
      hideDept: 'hideDept',
      hideSceneConfig: 'hideSceneConfig',
      name: 'name',
      order: 'order',
      outerDept: 'outerDept',
      outerDeptOnlySelf: 'outerDeptOnlySelf',
      outerPermitDepts: 'outerPermitDepts',
      outerPermitUsers: 'outerPermitUsers',
      outerSceneConfig: 'outerSceneConfig',
      parentId: 'parentId',
      sourceIdentifier: 'sourceIdentifier',
      struId: 'struId',
      telephone: 'telephone',
      userPermits: 'userPermits',
    };
  }

  static types(): { [key: string]: any } {
    return {
      autoApproveApply: 'boolean',
      brief: 'string',
      code: 'string',
      createDeptGroup: 'boolean',
      deptCode: 'string',
      deptId: 'number',
      deptPermits: { 'type': 'array', 'itemType': 'number' },
      deptType: 'string',
      empApplyJoinDept: 'boolean',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      hideDept: 'boolean',
      hideSceneConfig: CreateCollegeContactDeptRequestHideSceneConfig,
      name: 'string',
      order: 'number',
      outerDept: 'boolean',
      outerDeptOnlySelf: 'boolean',
      outerPermitDepts: { 'type': 'array', 'itemType': 'number' },
      outerPermitUsers: { 'type': 'array', 'itemType': 'string' },
      outerSceneConfig: CreateCollegeContactDeptRequestOuterSceneConfig,
      parentId: 'number',
      sourceIdentifier: 'string',
      struId: 'number',
      telephone: 'string',
      userPermits: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptResponseBody extends $tea.Model {
  result?: CreateCollegeContactDeptResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateCollegeContactDeptResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCollegeContactDeptResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCollegeContactDeptResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactSceneStruHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactSceneStruRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  hasStruFixedDept?: boolean;
  /**
   * @example
   * 20
   */
  order?: number;
  /**
   * @example
   * 场景架构标识
   */
  sourceIdentifier?: string;
  /**
   * @example
   * 这是场景架构简介
   */
  struBrief?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 科研架构
   */
  struName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * stru_research_dept
   */
  struType?: string;
  static names(): { [key: string]: string } {
    return {
      hasStruFixedDept: 'hasStruFixedDept',
      order: 'order',
      sourceIdentifier: 'sourceIdentifier',
      struBrief: 'struBrief',
      struName: 'struName',
      struType: 'struType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasStruFixedDept: 'boolean',
      order: 'number',
      sourceIdentifier: 'string',
      struBrief: 'string',
      struName: 'string',
      struType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactSceneStruResponseBody extends $tea.Model {
  result?: CreateCollegeContactSceneStruResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateCollegeContactSceneStruResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactSceneStruResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCollegeContactSceneStruResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCollegeContactSceneStruResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCorrectionDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCorrectionDataRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  correctedDataJsonUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  taskCode?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      correctedDataJsonUrl: 'correctedDataJsonUrl',
      taskCode: 'taskCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      correctedDataJsonUrl: 'string',
      taskCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCorrectionDataResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCorrectionDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCorrectionDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCorrectionDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCourseRequest extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * class_xxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * classRoom_xxx
   */
  classRoomId?: string;
  /**
   * @example
   * 音乐教室
   */
  classRoomName?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * code_xxx
   */
  courseCode?: string;
  /**
   * @example
   * 0
   */
  courseDate?: number;
  /**
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 1
   */
  courseWeek?: number;
  /**
   * @example
   * 0
   */
  endTime?: number;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseId
   */
  isvCourseId?: string;
  /**
   * @example
   * memo_xxx
   */
  memo?: string;
  /**
   * @example
   * 2024
   */
  schoolYear?: string;
  /**
   * @example
   * 1
   */
  semester?: number;
  /**
   * @example
   * 0
   */
  startTime?: number;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 1
   */
  teachWeek?: number;
  teacherList?: CreateCourseRequestTeacherList[];
  /**
   * @example
   * 第一节
   */
  timeslotName?: string;
  /**
   * @example
   * 1
   */
  timeslotNum?: number;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      classRoomId: 'classRoomId',
      classRoomName: 'classRoomName',
      classType: 'classType',
      corpId: 'corpId',
      courseCode: 'courseCode',
      courseDate: 'courseDate',
      courseName: 'courseName',
      courseWeek: 'courseWeek',
      endTime: 'endTime',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      memo: 'memo',
      schoolYear: 'schoolYear',
      semester: 'semester',
      startTime: 'startTime',
      status: 'status',
      teachWeek: 'teachWeek',
      teacherList: 'teacherList',
      timeslotName: 'timeslotName',
      timeslotNum: 'timeslotNum',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      classRoomId: 'string',
      classRoomName: 'string',
      classType: 'number',
      corpId: 'string',
      courseCode: 'string',
      courseDate: 'number',
      courseName: 'string',
      courseWeek: 'number',
      endTime: 'number',
      isvCode: 'string',
      isvCourseId: 'string',
      memo: 'string',
      schoolYear: 'string',
      semester: 'number',
      startTime: 'number',
      status: 'number',
      teachWeek: 'number',
      teacherList: { 'type': 'array', 'itemType': CreateCourseRequestTeacherList },
      timeslotName: 'string',
      timeslotNum: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCourseResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  customClass?: CreateCustomClassRequestCustomClass;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12345
   */
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      customClass: 'customClass',
      operator: 'operator',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      customClass: CreateCustomClassRequestCustomClass,
      operator: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassResponseBody extends $tea.Model {
  result?: CreateCustomClassResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateCustomClassResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCustomClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCustomClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  customDept?: CreateCustomDeptRequestCustomDept;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12345
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1233
   */
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      customDept: 'customDept',
      operator: 'operator',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      customDept: CreateCustomDeptRequestCustomDept,
      operator: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptResponseBody extends $tea.Model {
  result?: CreateCustomDeptResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateCustomDeptResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateCustomDeptResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateCustomDeptResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateEduAssetSpaceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateEduAssetSpaceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 目前仅支持soke
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 存放语文教研文件
   */
  spaceDesc?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://gw.alicdn.com/imgextra/i4/O1CN01QGjRTl27z8YPPEQdr_!!6000000007867-2-tps-99-78.png
   */
  spaceIcon?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 语文教研组空间
   */
  spaceName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * aa12324
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      spaceDesc: 'spaceDesc',
      spaceIcon: 'spaceIcon',
      spaceName: 'spaceName',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      spaceDesc: 'string',
      spaceIcon: 'string',
      spaceName: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateEduAssetSpaceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  createTimeMillis?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  modifyTimeMillis?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * acl：acl授权 ; custom：自定义授权
   */
  permissionMode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  quota?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  spaceId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  spaceName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * custom：自定义类型
   */
  spaceType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  usedQuota?: number;
  static names(): { [key: string]: string } {
    return {
      createTimeMillis: 'createTimeMillis',
      modifyTimeMillis: 'modifyTimeMillis',
      permissionMode: 'permissionMode',
      quota: 'quota',
      spaceId: 'spaceId',
      spaceName: 'spaceName',
      spaceType: 'spaceType',
      usedQuota: 'usedQuota',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createTimeMillis: 'number',
      modifyTimeMillis: 'number',
      permissionMode: 'string',
      quota: 'number',
      spaceId: 'string',
      spaceName: 'string',
      spaceType: 'string',
      usedQuota: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateEduAssetSpaceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateEduAssetSpaceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateEduAssetSpaceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateFulfilRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateFulfilRecordRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1647503420000
   */
  bizTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * {"key":"value"}
   */
  extInfo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * F123123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * SN123456
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12312312444
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizTime: 'bizTime',
      extInfo: 'extInfo',
      faceId: 'faceId',
      scene: 'scene',
      sn: 'sn',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizTime: 'number',
      extInfo: 'string',
      faceId: 'string',
      scene: 'number',
      sn: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateFulfilRecordResponseBody extends $tea.Model {
  /**
   * @example
   * success
   */
  successInfo?: string;
  static names(): { [key: string]: string } {
    return {
      successInfo: 'successInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      successInfo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateFulfilRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateFulfilRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateFulfilRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateInviteUrlHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateInviteUrlRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  targetCorpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  targetOperator?: string;
  static names(): { [key: string]: string } {
    return {
      authCode: 'authCode',
      targetCorpId: 'targetCorpId',
      targetOperator: 'targetOperator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authCode: 'string',
      targetCorpId: 'string',
      targetOperator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateInviteUrlResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: CreateInviteUrlResponseBodyResult;
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateInviteUrlResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateInviteUrlResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateInviteUrlResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateInviteUrlResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateItemHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateItemRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  description?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  effectType?: number;
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  optUser?: string;
  periodType?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  price?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  scene?: number;
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  status?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      description: 'description',
      effectType: 'effectType',
      endTime: 'endTime',
      merchantId: 'merchantId',
      name: 'name',
      optUser: 'optUser',
      periodType: 'periodType',
      price: 'price',
      scene: 'scene',
      startTime: 'startTime',
      status: 'status',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      description: 'string',
      effectType: 'number',
      endTime: 'number',
      merchantId: 'string',
      name: 'string',
      optUser: 'string',
      periodType: 'number',
      price: 'number',
      scene: 'number',
      startTime: 'number',
      status: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateItemResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  id?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  status?: number;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      id: 'id',
      merchantId: 'merchantId',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      id: 'number',
      merchantId: 'string',
      status: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateItemResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateItemResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateItemResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateKitTaskHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateKitTaskRequest extends $tea.Model {
  /**
   * @example
   * 0
   */
  actionTime?: number;
  bizData?: string;
  /**
   * @example
   * CARD_EVENT
   */
  bizType?: string;
  /**
   * @example
   * ding13424
   */
  corpId?: string;
  /**
   * @example
   * 20241213123213
   */
  identifier?: string;
  /**
   * @example
   * CHENZHI
   */
  isvCode?: string;
  memo?: string;
  static names(): { [key: string]: string } {
    return {
      actionTime: 'actionTime',
      bizData: 'bizData',
      bizType: 'bizType',
      corpId: 'corpId',
      identifier: 'identifier',
      isvCode: 'isvCode',
      memo: 'memo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionTime: 'number',
      bizData: 'string',
      bizType: 'string',
      corpId: 'string',
      identifier: 'string',
      isvCode: 'string',
      memo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateKitTaskResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateKitTaskResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateKitTaskResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateKitTaskResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  actualAmount?: number;
  /**
   * @example
   * 1644413947909
   */
  createTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  detailList?: CreateOrderRequestDetailList[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * FACE_010100b0555Xczd4ePVLaB5V3cCzrONYpHWOENzRxDDqcnVjYXLso0U_1642665071746
   */
  ftoken?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * QA62021121908E
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * {\"terminalType\":\"IOT\"}
   */
  terminalParams?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  totalAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1643334234626
   */
  userId?: string;
  /**
   * @example
   * 1.0
   */
  version?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      createTime: 'createTime',
      detailList: 'detailList',
      faceId: 'faceId',
      ftoken: 'ftoken',
      signature: 'signature',
      sn: 'sn',
      terminalParams: 'terminalParams',
      timestamp: 'timestamp',
      totalAmount: 'totalAmount',
      userId: 'userId',
      version: 'version',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      createTime: 'number',
      detailList: { 'type': 'array', 'itemType': CreateOrderRequestDetailList },
      faceId: 'string',
      ftoken: 'string',
      signature: 'string',
      sn: 'string',
      terminalParams: 'string',
      timestamp: 'number',
      totalAmount: 'number',
      userId: 'string',
      version: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderResponseBody extends $tea.Model {
  /**
   * @example
   * 20220124001
   */
  orderNo?: string;
  static names(): { [key: string]: string } {
    return {
      orderNo: 'orderNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      orderNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderFlowHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderFlowRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  actualAmount?: number;
  /**
   * @example
   * 2088112532248965
   */
  alipayUid?: string;
  /**
   * @example
   * 1644413947909
   */
  createTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  detailList?: CreateOrderFlowRequestDetailList[];
  /**
   * @example
   * 123123
   */
  faceId?: string;
  /**
   * @example
   * 123455
   */
  guardianUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2088821434894708
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2022012717252021400100822002
   */
  orderNo?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @example
   * QA62021121908E
   */
  sn?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  totalAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1643334234626
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayUid: 'alipayUid',
      createTime: 'createTime',
      detailList: 'detailList',
      faceId: 'faceId',
      guardianUserId: 'guardianUserId',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      totalAmount: 'totalAmount',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayUid: 'string',
      createTime: 'number',
      detailList: { 'type': 'array', 'itemType': CreateOrderFlowRequestDetailList },
      faceId: 'string',
      guardianUserId: 'string',
      merchantId: 'string',
      orderNo: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      totalAmount: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderFlowResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderFlowResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateOrderFlowResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateOrderFlowResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreatePhysicalClassroomHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreatePhysicalClassroomRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 主楼
   */
  classroomBuilding?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 主校区
   */
  classroomCampus?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2层
   */
  classroomFloor?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 实验室
   */
  classroomName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 201
   */
  classroomNumber?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * Y
   */
  directBroadcast?: string;
  /**
   * @example
   * {}
   */
  ext?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classroomBuilding: 'classroomBuilding',
      classroomCampus: 'classroomCampus',
      classroomFloor: 'classroomFloor',
      classroomName: 'classroomName',
      classroomNumber: 'classroomNumber',
      directBroadcast: 'directBroadcast',
      ext: 'ext',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomBuilding: 'string',
      classroomCampus: 'string',
      classroomFloor: 'string',
      classroomName: 'string',
      classroomNumber: 'string',
      directBroadcast: 'string',
      ext: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreatePhysicalClassroomResponseBody extends $tea.Model {
  /**
   * @example
   * 10001
   */
  classroomId?: number;
  static names(): { [key: string]: string } {
    return {
      classroomId: 'classroomId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreatePhysicalClassroomResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreatePhysicalClassroomResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreatePhysicalClassroomResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRefundFlowHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRefundFlowRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * S123
   */
  operatorId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张三
   */
  operatorName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  orderNo?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  sn?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      operatorId: 'operatorId',
      operatorName: 'operatorName',
      orderNo: 'orderNo',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      operatorId: 'string',
      operatorName: 'string',
      orderNo: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRefundFlowResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRefundFlowResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateRefundFlowResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateRefundFlowResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  attendParticipants?: CreateRemoteClassCourseRequestAttendParticipants[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * bab02f63c1e030fbbxxxx
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 春天来了
   */
  courseName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1634184000000
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1634176800000
   */
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  teachingParticipant?: CreateRemoteClassCourseRequestTeachingParticipant;
  static names(): { [key: string]: string } {
    return {
      attendParticipants: 'attendParticipants',
      authCode: 'authCode',
      courseName: 'courseName',
      endTime: 'endTime',
      startTime: 'startTime',
      teachingParticipant: 'teachingParticipant',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attendParticipants: { 'type': 'array', 'itemType': CreateRemoteClassCourseRequestAttendParticipants },
      authCode: 'string',
      courseName: 'string',
      endTime: 'number',
      startTime: 'number',
      teachingParticipant: CreateRemoteClassCourseRequestTeachingParticipant,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseResponseBody extends $tea.Model {
  result?: CreateRemoteClassCourseResponseBodyResult;
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: CreateRemoteClassCourseResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateRemoteClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateRemoteClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequest extends $tea.Model {
  /**
   * @example
   * 扩展参数
   */
  ext?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionConfigs?: CreateSectionConfigRequestSectionConfigs[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager235
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      ext: 'ext',
      sectionConfigs: 'sectionConfigs',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      ext: 'string',
      sectionConfigs: { 'type': 'array', 'itemType': CreateSectionConfigRequestSectionConfigs },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateSectionConfigResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateSectionConfigResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSnsAppOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSnsAppOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  bizCode?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  detailList?: CreateSnsAppOrderRequestDetailList[];
  /**
   * @example
   * 1
   */
  labelAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * M00001
   */
  merchantOrderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 数字图书
   */
  subject?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100000
   */
  timestamp?: number;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      bizCode: 'bizCode',
      detailList: 'detailList',
      labelAmount: 'labelAmount',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      signature: 'signature',
      subject: 'subject',
      timestamp: 'timestamp',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      bizCode: 'number',
      detailList: { 'type': 'array', 'itemType': CreateSnsAppOrderRequestDetailList },
      labelAmount: 'number',
      merchantId: 'string',
      merchantOrderNo: 'string',
      signature: 'string',
      subject: 'string',
      timestamp: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSnsAppOrderResponseBody extends $tea.Model {
  /**
   * @example
   * 1
   */
  actualAmount?: number;
  /**
   * @example
   * 1234
   */
  alipayAppId?: string;
  /**
   * @example
   * alipay_sdk=alipay-sdk-java-dynamicVersionNo&version=1.0
   */
  body?: string;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M00001
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001
   */
  orderNo?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      body: 'body',
      merchantId: 'merchantId',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      body: 'string',
      merchantId: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSnsAppOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateSnsAppOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateSnsAppOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStsTokenHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStsTokenRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fjke/12-131jk
   */
  deviceSn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sls
   */
  stsType?: string;
  static names(): { [key: string]: string } {
    return {
      deviceSn: 'deviceSn',
      stsType: 'stsType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deviceSn: 'string',
      stsType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStsTokenResponseBody extends $tea.Model {
  /**
   * @example
   * fdasfad
   */
  accessKeyId?: string;
  /**
   * @example
   * fdsfwdsfdsafdaf
   */
  accessKeySecret?: string;
  /**
   * @example
   * 3600000
   */
  expiration?: string;
  /**
   * @example
   * {}
   */
  extInfo?: string;
  /**
   * @example
   * fdasgtwtgfds
   */
  securityToken?: string;
  /**
   * @example
   * 200
   */
  status?: string;
  static names(): { [key: string]: string } {
    return {
      accessKeyId: 'accessKeyId',
      accessKeySecret: 'accessKeySecret',
      expiration: 'expiration',
      extInfo: 'extInfo',
      securityToken: 'securityToken',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      accessKeyId: 'string',
      accessKeySecret: 'string',
      expiration: 'string',
      extInfo: 'string',
      securityToken: 'string',
      status: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStsTokenResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateStsTokenResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateStsTokenResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStudentClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStudentClassRequest extends $tea.Model {
  /**
   * @example
   * {"key":"value"}
   */
  attributes?: string;
  /**
   * @example
   * classIdxxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * 0
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * 小明
   */
  studentName?: string;
  /**
   * @example
   * staffxxx
   */
  studentUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      classType: 'classType',
      corpId: 'corpId',
      isvCode: 'isvCode',
      studentName: 'studentName',
      studentUserId: 'studentUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      classType: 'number',
      corpId: 'string',
      isvCode: 'string',
      studentName: 'string',
      studentUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStudentClassResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateStudentClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateStudentClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateStudentClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTeacherCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTeacherCourseRequest extends $tea.Model {
  /**
   * @example
   * {"key":"value"}
   */
  attributes?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseIdxxx
   */
  isvCourseId?: string;
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * staffxxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTeacherCourseResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTeacherCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateTeacherCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateTeacherCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTimerCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTimerCardRequest extends $tea.Model {
  /**
   * @example
   * 0
   */
  actionTime?: number;
  bizData?: string;
  /**
   * @example
   * CARD_EVENT
   */
  bizType?: string;
  /**
   * @example
   * ding13424
   */
  corpId?: string;
  /**
   * @example
   * 20241213123213
   */
  identifier?: string;
  /**
   * @example
   * XIWO
   */
  isvCode?: string;
  memo?: string;
  static names(): { [key: string]: string } {
    return {
      actionTime: 'actionTime',
      bizData: 'bizData',
      bizType: 'bizType',
      corpId: 'corpId',
      identifier: 'identifier',
      isvCode: 'isvCode',
      memo: 'memo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionTime: 'number',
      bizData: 'string',
      bizType: 'string',
      corpId: 'string',
      identifier: 'string',
      isvCode: 'string',
      memo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTimerCardResponseBody extends $tea.Model {
  result?: boolean;
  sucess?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      sucess: 'sucess',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      sucess: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTimerCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateTimerCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateTimerCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTokenHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTokenRequest extends $tea.Model {
  sn?: string;
  type?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTokenResponseBody extends $tea.Model {
  accessKeyId?: string;
  accessKeySecret?: string;
  expiration?: string;
  extInfo?: string;
  securityToken?: string;
  status?: string;
  static names(): { [key: string]: string } {
    return {
      accessKeyId: 'accessKeyId',
      accessKeySecret: 'accessKeySecret',
      expiration: 'expiration',
      extInfo: 'extInfo',
      securityToken: 'securityToken',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      accessKeyId: 'string',
      accessKeySecret: 'string',
      expiration: 'string',
      extInfo: 'string',
      securityToken: 'string',
      status: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTokenResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateTokenResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateTokenResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTransferRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTransferRecordRequest extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * classIdx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * record
   */
  isvRecordId?: string;
  /**
   * @example
   * courseCode
   */
  srcCourseCode?: string;
  /**
   * @example
   * 0
   */
  srcCourseDate?: number;
  /**
   * @example
   * 语文
   */
  srcCourseName?: string;
  /**
   * @example
   * courseId
   */
  srcIsvCourseId?: string;
  /**
   * @example
   * 第一节
   */
  srcTimeslotName?: string;
  /**
   * @example
   * 1
   */
  srcTimeslotNum?: number;
  /**
   * @example
   * courseCode
   */
  tarCourseCode?: string;
  /**
   * @example
   * 0
   */
  tarCourseDate?: number;
  /**
   * @example
   * 语文
   */
  tarCourseName?: string;
  /**
   * @example
   * courseId
   */
  tarIsvCourseId?: string;
  /**
   * @example
   * 第二节
   */
  tarTimeslotName?: string;
  /**
   * @example
   * 1
   */
  tarTimeslotNum?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvRecordId: 'isvRecordId',
      srcCourseCode: 'srcCourseCode',
      srcCourseDate: 'srcCourseDate',
      srcCourseName: 'srcCourseName',
      srcIsvCourseId: 'srcIsvCourseId',
      srcTimeslotName: 'srcTimeslotName',
      srcTimeslotNum: 'srcTimeslotNum',
      tarCourseCode: 'tarCourseCode',
      tarCourseDate: 'tarCourseDate',
      tarCourseName: 'tarCourseName',
      tarIsvCourseId: 'tarIsvCourseId',
      tarTimeslotName: 'tarTimeslotName',
      tarTimeslotNum: 'tarTimeslotNum',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvRecordId: 'string',
      srcCourseCode: 'string',
      srcCourseDate: 'number',
      srcCourseName: 'string',
      srcIsvCourseId: 'string',
      srcTimeslotName: 'string',
      srcTimeslotNum: 'number',
      tarCourseCode: 'string',
      tarCourseDate: 'number',
      tarCourseName: 'string',
      tarIsvCourseId: 'string',
      tarTimeslotName: 'string',
      tarTimeslotNum: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTransferRecordResponseBody extends $tea.Model {
  result?: number;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'number',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateTransferRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateTransferRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateTransferRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高数
   */
  courseGroupIntroduce?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张老师_高数
   */
  courseGroupName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemModels?: CreateUniversityCourseGroupRequestCourserGroupItemModels[];
  /**
   * @example
   * {}
   */
  ext?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GZ1001
   */
  isvCourseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 大学：university
   */
  periodCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021-2022
   */
  schoolYear?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  semester?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高等数学
   */
  subjectName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherInfos?: CreateUniversityCourseGroupRequestTeacherInfos[];
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupIntroduce: 'courseGroupIntroduce',
      courseGroupName: 'courseGroupName',
      courserGroupItemModels: 'courserGroupItemModels',
      ext: 'ext',
      isvCourseGroupCode: 'isvCourseGroupCode',
      periodCode: 'periodCode',
      schoolYear: 'schoolYear',
      semester: 'semester',
      subjectName: 'subjectName',
      teacherInfos: 'teacherInfos',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupIntroduce: 'string',
      courseGroupName: 'string',
      courserGroupItemModels: { 'type': 'array', 'itemType': CreateUniversityCourseGroupRequestCourserGroupItemModels },
      ext: 'string',
      isvCourseGroupCode: 'string',
      periodCode: 'string',
      schoolYear: 'string',
      semester: 'number',
      subjectName: 'string',
      teacherInfos: { 'type': 'array', 'itemType': CreateUniversityCourseGroupRequestTeacherInfos },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupResponseBody extends $tea.Model {
  courseGroupInfo?: CreateUniversityCourseGroupResponseBodyCourseGroupInfo;
  static names(): { [key: string]: string } {
    return {
      courseGroupInfo: 'courseGroupInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupInfo: CreateUniversityCourseGroupResponseBodyCourseGroupInfo,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityStudentHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityStudentRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  gender?: string;
  identityNumber?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  mobile?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  studentNumber?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      gender: 'gender',
      identityNumber: 'identityNumber',
      mobile: 'mobile',
      name: 'name',
      studentNumber: 'studentNumber',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      gender: 'string',
      identityNumber: 'string',
      mobile: 'string',
      name: 'string',
      studentNumber: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityStudentResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityStudentResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateUniversityStudentResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateUniversityStudentResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityTeacherHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityTeacherRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100987
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * headmaster:班主任；instructor:辅导员
   */
  role?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10877892
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      opUserId: 'opUserId',
      role: 'role',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      opUserId: 'string',
      role: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityTeacherResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityTeacherResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateUniversityTeacherResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateUniversityTeacherResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateWrongQuestionsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateWrongQuestionsRequest extends $tea.Model {
  answerContent?: string;
  difficultyLevel?: number;
  explainAudio?: string;
  explainContent?: string;
  generateTime?: number;
  knowledgePointList?: string[];
  ownerCode?: string;
  ownerType?: string;
  proficiencyLevel?: number;
  questionAudio?: string;
  questionContent?: string;
  questionExtension?: { [key: string]: string };
  questionPicUrl?: string;
  questionType?: string;
  sourceCode?: string;
  studentUserId?: string;
  subject?: string;
  static names(): { [key: string]: string } {
    return {
      answerContent: 'answerContent',
      difficultyLevel: 'difficultyLevel',
      explainAudio: 'explainAudio',
      explainContent: 'explainContent',
      generateTime: 'generateTime',
      knowledgePointList: 'knowledgePointList',
      ownerCode: 'ownerCode',
      ownerType: 'ownerType',
      proficiencyLevel: 'proficiencyLevel',
      questionAudio: 'questionAudio',
      questionContent: 'questionContent',
      questionExtension: 'questionExtension',
      questionPicUrl: 'questionPicUrl',
      questionType: 'questionType',
      sourceCode: 'sourceCode',
      studentUserId: 'studentUserId',
      subject: 'subject',
    };
  }

  static types(): { [key: string]: any } {
    return {
      answerContent: 'string',
      difficultyLevel: 'number',
      explainAudio: 'string',
      explainContent: 'string',
      generateTime: 'number',
      knowledgePointList: { 'type': 'array', 'itemType': 'string' },
      ownerCode: 'string',
      ownerType: 'string',
      proficiencyLevel: 'number',
      questionAudio: 'string',
      questionContent: 'string',
      questionExtension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      questionPicUrl: 'string',
      questionType: 'string',
      sourceCode: 'string',
      studentUserId: 'string',
      subject: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateWrongQuestionsResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateWrongQuestionsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: CreateWrongQuestionsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: CreateWrongQuestionsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeactivateDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeactivateDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * model1
   */
  model?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fdafds-432432
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      model: 'model',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      model: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeactivateDeviceResponseBody extends $tea.Model {
  /**
   * @example
   * 2
   */
  activateTimes?: number;
  static names(): { [key: string]: string } {
    return {
      activateTimes: 'activateTimes',
    };
  }

  static types(): { [key: string]: any } {
    return {
      activateTimes: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeactivateDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeactivateDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeactivateDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeductPointHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeductPointRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * biz01
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 兑换商品
   */
  deductDesc?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://www.dingtalk.com/
   */
  deductDetailUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deductNum?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * personal
   */
  pointType?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      deductDesc: 'deductDesc',
      deductDetailUrl: 'deductDetailUrl',
      deductNum: 'deductNum',
      pointType: 'pointType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      deductDesc: 'string',
      deductDetailUrl: 'string',
      deductNum: 'number',
      pointType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeductPointResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeductPointResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeductPointResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeductPointResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniDeptHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniDeptRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  deptId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniDeptResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniDeptResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteCollegeAlumniDeptResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteCollegeAlumniDeptResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniUserInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniUserInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  deptId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userIds?: string[];
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      operator: 'operator',
      userIds: 'userIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      operator: 'string',
      userIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniUserInfoResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeAlumniUserInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteCollegeAlumniUserInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteCollegeAlumniUserInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeContactSceneStruHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeContactSceneStruRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  struId?: number;
  static names(): { [key: string]: string } {
    return {
      struId: 'struId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      struId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeContactSceneStruResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteCollegeContactSceneStruResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteCollegeContactSceneStruResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteCollegeContactSceneStruResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeptHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeptRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager1234
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeptResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeptResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteDeptResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteDeptResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testSn
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceResponseBody extends $tea.Model {
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceOrgHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceOrgRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceCode?: string;
  static names(): { [key: string]: string } {
    return {
      authCode: 'authCode',
      deviceCode: 'deviceCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authCode: 'string',
      deviceCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceOrgResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteDeviceOrgResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteDeviceOrgResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteDeviceOrgResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteEvaluatePerformanceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteEvaluatePerformanceRequest extends $tea.Model {
  evaluationIdList?: string[];
  static names(): { [key: string]: string } {
    return {
      evaluationIdList: 'evaluationIdList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      evaluationIdList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteEvaluatePerformanceResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteEvaluatePerformanceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteEvaluatePerformanceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteEvaluatePerformanceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteGuardianHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteGuardianRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager123
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1345
   */
  stuId?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      stuId: 'stuId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      stuId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteGuardianResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteGuardianResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteGuardianResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteGuardianResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteOrgRelationHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteOrgRelationRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  targetCorpId?: string;
  static names(): { [key: string]: string } {
    return {
      authCode: 'authCode',
      targetCorpId: 'targetCorpId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authCode: 'string',
      targetCorpId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteOrgRelationResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteOrgRelationResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteOrgRelationResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteOrgRelationResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeletePhysicalClassroomHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeletePhysicalClassroomRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100016
   */
  classroomId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classroomId: 'classroomId',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomId: 'number',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeletePhysicalClassroomResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeletePhysicalClassroomResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeletePhysicalClassroomResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeletePhysicalClassroomResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteRemoteClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteRemoteClassCourseRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * bab02f63c1e030fbbxxxx
   */
  authCode?: string;
  static names(): { [key: string]: string } {
    return {
      authCode: 'authCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteRemoteClassCourseResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteRemoteClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteRemoteClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteRemoteClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteSchoolReportHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteSchoolReportRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  schoolReportId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      schoolReportId: 'schoolReportId',
      teacherId: 'teacherId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      schoolReportId: 'number',
      teacherId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteSchoolReportResponseBody extends $tea.Model {
  result?: DeleteSchoolReportResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: DeleteSchoolReportResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteSchoolReportResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteSchoolReportResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteSchoolReportResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteStudentHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteStudentRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteStudentResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteStudentResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteStudentResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteStudentResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteTeacherHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteTeacherRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  adviser?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1235
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      adviser: 'adviser',
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      adviser: 'number',
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteTeacherResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteTeacherResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteTeacherResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteTeacherResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GS1002
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityCourseGroupResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityStudentHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityStudentRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 76781
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * uu1234
   */
  studentUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      opUserId: 'opUserId',
      studentUserId: 'studentUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      opUserId: 'string',
      studentUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityStudentResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityStudentResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteUniversityStudentResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteUniversityStudentResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityTeacherHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityTeacherRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 65781
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * headmaster：班主任；instructor：辅导员
   */
  role?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ujo2344
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      opUserId: 'opUserId',
      role: 'role',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      opUserId: 'string',
      role: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityTeacherResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteUniversityTeacherResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteUniversityTeacherResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeleteUniversityTeacherResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeviceHeartbeatHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeviceHeartbeatRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeviceHeartbeatResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0心跳正常，1增量更新，2上传日志，3全量更新
   */
  command?: number;
  static names(): { [key: string]: string } {
    return {
      command: 'command',
    };
  }

  static types(): { [key: string]: any } {
    return {
      command: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeviceHeartbeatResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeviceHeartbeatResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DeviceHeartbeatResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DisableCollegeContactSceneStruHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DisableCollegeContactSceneStruRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  struId?: number;
  static names(): { [key: string]: string } {
    return {
      struId: 'struId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      struId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DisableCollegeContactSceneStruResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DisableCollegeContactSceneStruResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DisableCollegeContactSceneStruResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: DisableCollegeContactSceneStruResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIGCCallbackHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIGCCallbackRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * test
   */
  channelCode?: string;
  commitTime?: number;
  completeTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * http://xxxxx.doc
   */
  content?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1500
   */
  contentSize?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * url
   */
  contentType?: string;
  ext?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 请帮我写一篇读后感
   */
  prompt?: string;
  remark?: string;
  static names(): { [key: string]: string } {
    return {
      channelCode: 'channelCode',
      commitTime: 'commitTime',
      completeTime: 'completeTime',
      content: 'content',
      contentSize: 'contentSize',
      contentType: 'contentType',
      ext: 'ext',
      prompt: 'prompt',
      remark: 'remark',
    };
  }

  static types(): { [key: string]: any } {
    return {
      channelCode: 'string',
      commitTime: 'number',
      completeTime: 'number',
      content: 'string',
      contentSize: 'number',
      contentType: 'string',
      ext: 'string',
      prompt: 'string',
      remark: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIGCCallbackResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIGCCallbackResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduAIGCCallbackResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduAIGCCallbackResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIModelCompleteHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIModelCompleteRequest extends $tea.Model {
  maxTokens?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * qwen-max
   */
  model?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  prompt?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  scene?: string;
  temperature?: number;
  topP?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      maxTokens: 'maxTokens',
      model: 'model',
      prompt: 'prompt',
      scene: 'scene',
      temperature: 'temperature',
      topP: 'top_p',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      maxTokens: 'number',
      model: 'string',
      prompt: 'string',
      scene: 'string',
      temperature: 'number',
      topP: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIModelCompleteResponseBody extends $tea.Model {
  result?: EduAIModelCompleteResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: EduAIModelCompleteResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIModelCompleteResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduAIModelCompleteResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduAIModelCompleteResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduFindUserRolesByUserIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduFindUserRolesByUserIdRequest extends $tea.Model {
  /**
   * @example
   * 666666
   */
  classId?: number;
  /**
   * @example
   * ding123456
   */
  corpId?: string;
  hasOrgRole?: boolean;
  /**
   * @example
   * 123456
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      hasOrgRole: 'hasOrgRole',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      hasOrgRole: 'boolean',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduFindUserRolesByUserIdResponseBody extends $tea.Model {
  result?: string[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduFindUserRolesByUserIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduFindUserRolesByUserIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduFindUserRolesByUserIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduGetFileSpaceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduGetFileSpaceRequest extends $tea.Model {
  channelCode?: string;
  static names(): { [key: string]: string } {
    return {
      channelCode: 'channelCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      channelCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduGetFileSpaceResponseBody extends $tea.Model {
  result?: EduGetFileSpaceResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: EduGetFileSpaceResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduGetFileSpaceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduGetFileSpaceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduGetFileSpaceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduListUserByFromUserIdsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduListUserByFromUserIdsRequest extends $tea.Model {
  classId?: number;
  /**
   * @example
   * ding123456
   */
  corpId?: string;
  /**
   * @example
   * 123456
   */
  guardianUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      guardianUserId: 'guardianUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      guardianUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduListUserByFromUserIdsResponseBody extends $tea.Model {
  result?: EduListUserByFromUserIdsResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': EduListUserByFromUserIdsResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduListUserByFromUserIdsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduListUserByFromUserIdsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduListUserByFromUserIdsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  pageSize?: number;
  static names(): { [key: string]: string } {
    return {
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pageNumber: 'number',
      pageSize: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: EduTeacherListResponseBodyResult;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: EduTeacherListResponseBodyResult,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EduTeacherListResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EduTeacherListResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EnableCollegeContactSceneStruHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EnableCollegeContactSceneStruRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  struId?: number;
  static names(): { [key: string]: string } {
    return {
      struId: 'struId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      struId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EnableCollegeContactSceneStruResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EnableCollegeContactSceneStruResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EnableCollegeContactSceneStruResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EnableCollegeContactSceneStruResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseRequest extends $tea.Model {
  /**
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @example
   * extData
   */
  ext?: string;
  /**
   * @example
   * DDIsv
   */
  isvCode?: string;
  livePlayInfoList?: EndCourseRequestLivePlayInfoList[];
  /**
   * @example
   * 1
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      ext: 'ext',
      isvCode: 'isvCode',
      livePlayInfoList: 'livePlayInfoList',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      ext: 'string',
      isvCode: 'string',
      livePlayInfoList: { 'type': 'array', 'itemType': EndCourseRequestLivePlayInfoList },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  universityCourseCommonResponse?: EndCourseResponseBodyUniversityCourseCommonResponse;
  static names(): { [key: string]: string } {
    return {
      universityCourseCommonResponse: 'universityCourseCommonResponse',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universityCourseCommonResponse: EndCourseResponseBodyUniversityCourseCommonResponse,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EndCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EndCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EventTrackHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EventTrackRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  actionKey?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  actionTime?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  bizReq?: string;
  bizResp?: string;
  deviceId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  eventId?: string;
  eventType?: string;
  eventUnit?: string;
  eventValue?: string;
  extend?: string;
  platform?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      actionKey: 'actionKey',
      actionTime: 'actionTime',
      bizCode: 'bizCode',
      bizReq: 'bizReq',
      bizResp: 'bizResp',
      deviceId: 'deviceId',
      eventId: 'eventId',
      eventType: 'eventType',
      eventUnit: 'eventUnit',
      eventValue: 'eventValue',
      extend: 'extend',
      platform: 'platform',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionKey: 'string',
      actionTime: 'string',
      bizCode: 'string',
      bizReq: 'string',
      bizResp: 'string',
      deviceId: 'string',
      eventId: 'string',
      eventType: 'string',
      eventUnit: 'string',
      eventValue: 'string',
      extend: 'string',
      platform: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EventTrackResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EventTrackResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: EventTrackResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: EventTrackResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GenerateTaskIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GenerateTaskIdRequest extends $tea.Model {
  maxTokens?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * qwen-max
   */
  model?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  prompt?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  scene?: string;
  temperature?: number;
  topP?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      maxTokens: 'maxTokens',
      model: 'model',
      prompt: 'prompt',
      scene: 'scene',
      temperature: 'temperature',
      topP: 'top_p',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      maxTokens: 'number',
      model: 'string',
      prompt: 'string',
      scene: 'string',
      temperature: 'number',
      topP: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GenerateTaskIdResponseBody extends $tea.Model {
  result?: string;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GenerateTaskIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GenerateTaskIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GenerateTaskIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetBindChildInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetBindChildInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding95eef8003c9ca8ca24f2f5cc6abecb85
   */
  schoolCorpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 3000000000307711730
   */
  studentUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * X5y5kd8XiiqiScCl4Qlfy5GgiEiE
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      schoolCorpId: 'schoolCorpId',
      studentUserId: 'studentUserId',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      schoolCorpId: 'string',
      studentUserId: 'string',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetBindChildInfoResponseBody extends $tea.Model {
  /**
   * @example
   * 3000000000307711730
   */
  childUserId?: string;
  /**
   * @example
   * 3000000000433459511
   */
  currentUserId?: string;
  /**
   * @example
   * ding95eef8003c9ca8ca24f2f5cc6abecb85
   */
  familyCorpId?: string;
  static names(): { [key: string]: string } {
    return {
      childUserId: 'childUserId',
      currentUserId: 'currentUserId',
      familyCorpId: 'familyCorpId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      childUserId: 'string',
      currentUserId: 'string',
      familyCorpId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetBindChildInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetBindChildInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetBindChildInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetChildrenHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetChildrenResponseBody extends $tea.Model {
  result?: GetChildrenResponseBodyResult[];
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': GetChildrenResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetChildrenResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetChildrenResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetChildrenResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniDeptsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniDeptsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  deptId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * staff234
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniDeptsResponseBody extends $tea.Model {
  result?: GetCollegeAlumniDeptsResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': GetCollegeAlumniDeptsResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniDeptsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetCollegeAlumniDeptsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetCollegeAlumniDeptsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoResponseBody extends $tea.Model {
  result?: GetCollegeAlumniUserInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetCollegeAlumniUserInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetCollegeAlumniUserInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetCollegeAlumniUserInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  deptId?: number;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      language: 'language',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      language: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailResponseBody extends $tea.Model {
  result?: GetCollegeContactDeptDetailResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetCollegeContactDeptDetailResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetCollegeContactDeptDetailResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetCollegeContactDeptDetailResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactStandardStruDeptDetailHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactStandardStruDeptDetailRequest extends $tea.Model {
  /**
   * @example
   * zh_CN
   */
  language?: string;
  static names(): { [key: string]: string } {
    return {
      language: 'language',
    };
  }

  static types(): { [key: string]: any } {
    return {
      language: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactStandardStruDeptDetailResponseBody extends $tea.Model {
  result?: GetCollegeContactStandardStruDeptDetailResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetCollegeContactStandardStruDeptDetailResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactStandardStruDeptDetailResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetCollegeContactStandardStruDeptDetailResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetCollegeContactStandardStruDeptDetailResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetDefaultChildHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetDefaultChildResponseBody extends $tea.Model {
  avatar?: string;
  bindStudents?: GetDefaultChildResponseBodyBindStudents[];
  grade?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  nick?: string;
  period?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      avatar: 'avatar',
      bindStudents: 'bindStudents',
      grade: 'grade',
      name: 'name',
      nick: 'nick',
      period: 'period',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      avatar: 'string',
      bindStudents: { 'type': 'array', 'itemType': GetDefaultChildResponseBodyBindStudents },
      grade: 'number',
      name: 'string',
      nick: 'string',
      period: 'string',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetDefaultChildResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetDefaultChildResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetDefaultChildResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetEduUserIdentityHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetEduUserIdentityRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VYn5fYjORJMi
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetEduUserIdentityResponseBody extends $tea.Model {
  data?: GetEduUserIdentityResponseBodyData;
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      data: 'data',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      data: GetEduUserIdentityResponseBodyData,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetEduUserIdentityResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetEduUserIdentityResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetEduUserIdentityResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  fileIdList?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  spaceId?: number;
  static names(): { [key: string]: string } {
    return {
      fileIdList: 'fileIdList',
      spaceId: 'spaceId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      fileIdList: { 'type': 'array', 'itemType': 'string' },
      spaceId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoResponseBody extends $tea.Model {
  result?: { [key: string]: ResultValue };
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'map', 'keyType': 'string', 'valueType': ResultValue },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetFileDownloadInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetFileDownloadInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoByPackageIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoByPackageIdRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  packageId?: string;
  static names(): { [key: string]: string } {
    return {
      packageId: 'packageId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      packageId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoByPackageIdResponseBody extends $tea.Model {
  result?: GetFileDownloadInfoByPackageIdResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': GetFileDownloadInfoByPackageIdResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoByPackageIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetFileDownloadInfoByPackageIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetFileDownloadInfoByPackageIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetImageTempDownloadUrlHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetImageTempDownloadUrlRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  mediaId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sourceType?: string;
  static names(): { [key: string]: string } {
    return {
      mediaId: 'mediaId',
      sourceType: 'sourceType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      mediaId: 'string',
      sourceType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetImageTempDownloadUrlResponseBody extends $tea.Model {
  result?: GetImageTempDownloadUrlResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetImageTempDownloadUrlResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetImageTempDownloadUrlResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetImageTempDownloadUrlResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetImageTempDownloadUrlResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCourseDetailHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCourseDetailResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fdjakl-fdaf-ds
   */
  courseId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  courseType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://static.dingtalk.com/media/lALPDgCwRt4FagzMi8yZ_153_139.png
   */
  coverUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 开学的第一堂课
   */
  introduction?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  pushModel?: GetOpenCourseDetailResponseBodyPushModel;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1618369786000
   */
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123124312314
   */
  teacherId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张老师
   */
  teacherName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 开学第一课
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      courseId: 'courseId',
      courseType: 'courseType',
      coverUrl: 'coverUrl',
      introduction: 'introduction',
      pushModel: 'pushModel',
      startTime: 'startTime',
      teacherId: 'teacherId',
      teacherName: 'teacherName',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseId: 'string',
      courseType: 'number',
      coverUrl: 'string',
      introduction: 'string',
      pushModel: GetOpenCourseDetailResponseBodyPushModel,
      startTime: 'number',
      teacherId: 'string',
      teacherName: 'string',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCourseDetailResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetOpenCourseDetailResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetOpenCourseDetailResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCoursesHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCoursesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  pageSize?: number;
  static names(): { [key: string]: string } {
    return {
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pageNumber: 'number',
      pageSize: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCoursesResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  courseList?: GetOpenCoursesResponseBodyCourseList[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 68
   */
  totalCount?: number;
  static names(): { [key: string]: string } {
    return {
      courseList: 'courseList',
      totalCount: 'totalCount',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseList: { 'type': 'array', 'itemType': GetOpenCoursesResponseBodyCourseList },
      totalCount: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCoursesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetOpenCoursesResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetOpenCoursesResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordRequest extends $tea.Model {
  body?: GetPointActionRecordRequestBody;
  static names(): { [key: string]: string } {
    return {
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      body: GetPointActionRecordRequestBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordShrinkRequest extends $tea.Model {
  bodyShrink?: string;
  static names(): { [key: string]: string } {
    return {
      bodyShrink: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bodyShrink: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordResponseBody extends $tea.Model {
  result?: GetPointActionRecordResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetPointActionRecordResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetPointActionRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetPointActionRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * personal
   */
  pointType?: string;
  static names(): { [key: string]: string } {
    return {
      pointType: 'pointType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pointType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointInfoResponseBody extends $tea.Model {
  result?: GetPointInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetPointInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetPointInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetPointInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager1234
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponseBody extends $tea.Model {
  result?: GetRemoteClassCourseResponseBodyResult;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: GetRemoteClassCourseResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetRemoteClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetRemoteClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRoleMembersHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRoleMembersResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: GetShareRoleMembersResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': GetShareRoleMembersResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRoleMembersResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetShareRoleMembersResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetShareRoleMembersResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRolesHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRolesResponseBody extends $tea.Model {
  result?: GetShareRolesResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': GetShareRolesResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRolesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetShareRolesResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetShareRolesResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskListHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * staff234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  pageSize?: number;
  /**
   * @example
   * 2023
   */
  taskYear?: number;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
      taskYear: 'taskYear',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      pageNumber: 'number',
      pageSize: 'number',
      taskYear: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskListResponseBody extends $tea.Model {
  /**
   * @example
   * 2
   */
  count?: number;
  taskList?: GetTaskListResponseBodyTaskList[];
  static names(): { [key: string]: string } {
    return {
      count: 'count',
      taskList: 'taskList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      count: 'number',
      taskList: { 'type': 'array', 'itemType': GetTaskListResponseBodyTaskList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetTaskListResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetTaskListResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskStudentListHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskStudentListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * staff234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 50
   */
  pageSize?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 4240028
   */
  taskId?: number;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
      taskId: 'taskId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      pageNumber: 'number',
      pageSize: 'number',
      taskId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskStudentListResponseBody extends $tea.Model {
  /**
   * @example
   * 2000
   */
  count?: number;
  studentList?: GetTaskStudentListResponseBodyStudentList[];
  /**
   * @example
   * 4240028
   */
  taskId?: number;
  static names(): { [key: string]: string } {
    return {
      count: 'count',
      studentList: 'studentList',
      taskId: 'taskId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      count: 'number',
      studentList: { 'type': 'array', 'itemType': GetTaskStudentListResponseBodyStudentList },
      taskId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskStudentListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: GetTaskStudentListResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: GetTaskStudentListResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  courses?: InitCoursesOfClassRequestCourses[];
  /**
   * @remarks
   * This parameter is required.
   */
  sectionConfig?: InitCoursesOfClassRequestSectionConfig;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager235
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courses: 'courses',
      sectionConfig: 'sectionConfig',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courses: { 'type': 'array', 'itemType': InitCoursesOfClassRequestCourses },
      sectionConfig: InitCoursesOfClassRequestSectionConfig,
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InitCoursesOfClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InitCoursesOfClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sdf34DFf2344
   */
  encryptPubKey?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sdf34DFfffdf2344
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * SN123456
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1231245511
   */
  timestamp?: number;
  /**
   * @example
   * 1.0
   */
  version?: string;
  static names(): { [key: string]: string } {
    return {
      encryptPubKey: 'encryptPubKey',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      version: 'version',
    };
  }

  static types(): { [key: string]: any } {
    return {
      encryptPubKey: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      version: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitDeviceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * success
   */
  successInfo?: string;
  static names(): { [key: string]: string } {
    return {
      successInfo: 'successInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      successInfo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InitDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InitDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitVPaasDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitVPaasDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fsdfdsa-41231
   */
  sn?: string;
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
      timestamp: 'timestamp',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
      timestamp: 'number',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitVPaasDeviceResponseBody extends $tea.Model {
  /**
   * @example
   * fewupiehwioghj
   */
  pspk?: string;
  static names(): { [key: string]: string } {
    return {
      pspk: 'pspk',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pspk: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitVPaasDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InitVPaasDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InitVPaasDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequest extends $tea.Model {
  end?: InsertSectionConfigRequestEnd;
  /**
   * @example
   * 2020学年第一学期课表
   */
  scheduleName?: string;
  sectionModels?: InsertSectionConfigRequestSectionModels[];
  start?: InsertSectionConfigRequestStart;
  /**
   * @example
   * manager235
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      scheduleName: 'scheduleName',
      sectionModels: 'sectionModels',
      start: 'start',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: InsertSectionConfigRequestEnd,
      scheduleName: 'string',
      sectionModels: { 'type': 'array', 'itemType': InsertSectionConfigRequestSectionModels },
      start: InsertSectionConfigRequestStart,
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InsertSectionConfigResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InsertSectionConfigResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidCourseRequest extends $tea.Model {
  /**
   * @example
   * classId_xxx
   */
  classId?: string;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseId_xxx
   */
  isvCourseId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidCourseResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InvalidCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InvalidCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidKitHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidKitRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * staffxxx
   */
  openUserId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      openUserId: 'openUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
      openUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidKitResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidKitResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InvalidKitResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InvalidKitResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidStudentClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidStudentClassRequest extends $tea.Model {
  /**
   * @example
   * classxxx
   */
  classId?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  studentUserIds?: string[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      classType: 'classType',
      corpId: 'corpId',
      isvCode: 'isvCode',
      studentUserIds: 'studentUserIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      classType: 'number',
      corpId: 'string',
      isvCode: 'string',
      studentUserIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidStudentClassResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidStudentClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InvalidStudentClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InvalidStudentClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidTeacherCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidTeacherCourseRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  needDeleteCourseIdList?: string[];
  /**
   * @example
   * staffxxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      needDeleteCourseIdList: 'needDeleteCourseIdList',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      needDeleteCourseIdList: { 'type': 'array', 'itemType': 'string' },
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidTeacherCourseResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InvalidTeacherCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: InvalidTeacherCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: InvalidTeacherCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsYuwenCertifiedTeacherHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsYuwenCertifiedTeacherRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsYuwenCertifiedTeacherResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsYuwenCertifiedTeacherResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: IsYuwenCertifiedTeacherResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: IsYuwenCertifiedTeacherResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteRequest extends $tea.Model {
  /**
   * @example
   * tb_test01
   */
  objectCode?: string;
  rowValueList?: IsvDataWriteRequestRowValueList[][];
  static names(): { [key: string]: string } {
    return {
      objectCode: 'objectCode',
      rowValueList: 'rowValueList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      objectCode: 'string',
      rowValueList: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': IsvDataWriteRequestRowValueList } },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteResponseBody extends $tea.Model {
  result?: IsvDataWriteResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: IsvDataWriteResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: IsvDataWriteResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: IsvDataWriteResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryRequest extends $tea.Model {
  /**
   * @example
   * abc
   */
  objectCode?: string;
  static names(): { [key: string]: string } {
    return {
      objectCode: 'objectCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      objectCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryResponseBody extends $tea.Model {
  result?: IsvMetadataQueryResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: IsvMetadataQueryResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: IsvMetadataQueryResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: IsvMetadataQueryResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactDeptTypeConfigHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactDeptTypeConfigRequest extends $tea.Model {
  /**
   * @example
   * zh_CN
   */
  language?: string;
  static names(): { [key: string]: string } {
    return {
      language: 'language',
    };
  }

  static types(): { [key: string]: any } {
    return {
      language: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactDeptTypeConfigResponseBody extends $tea.Model {
  result?: ListCollegeContactDeptTypeConfigResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': ListCollegeContactDeptTypeConfigResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactDeptTypeConfigResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ListCollegeContactDeptTypeConfigResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ListCollegeContactDeptTypeConfigResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSceneStrusHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSceneStrusRequest extends $tea.Model {
  /**
   * @example
   * zh_CN
   */
  language?: string;
  static names(): { [key: string]: string } {
    return {
      language: 'language',
    };
  }

  static types(): { [key: string]: any } {
    return {
      language: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSceneStrusResponseBody extends $tea.Model {
  result?: ListCollegeContactSceneStrusResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': ListCollegeContactSceneStrusResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSceneStrusResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ListCollegeContactSceneStrusResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ListCollegeContactSceneStrusResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSubDeptsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSubDeptsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200
   */
  deptId?: number;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      language: 'language',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      language: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSubDeptsResponseBody extends $tea.Model {
  result?: ListCollegeContactSubDeptsResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': ListCollegeContactSubDeptsResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSubDeptsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ListCollegeContactSubDeptsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ListCollegeContactSubDeptsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListOrderRequest extends $tea.Model {
  /**
   * @example
   * 1647503420000
   */
  createTimeEnd?: number;
  /**
   * @example
   * 1647503420000
   */
  createTimeStart?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * SM123124124
   */
  merchantId?: string;
  /**
   * @example
   * 2022312312333
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200
   */
  pageSize?: number;
  /**
   * @example
   * 1
   */
  scene?: number;
  /**
   * @example
   * 20
   */
  status?: number;
  /**
   * @example
   * 202221312333
   */
  tradeNo?: string;
  /**
   * @example
   * 123123123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      createTimeEnd: 'createTimeEnd',
      createTimeStart: 'createTimeStart',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
      scene: 'scene',
      status: 'status',
      tradeNo: 'tradeNo',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createTimeEnd: 'number',
      createTimeStart: 'number',
      merchantId: 'string',
      orderNo: 'string',
      pageNumber: 'number',
      pageSize: 'number',
      scene: 'number',
      status: 'number',
      tradeNo: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListOrderResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  list?: ListOrderResponseBodyList[];
  total?: number;
  static names(): { [key: string]: string } {
    return {
      list: 'list',
      total: 'total',
    };
  }

  static types(): { [key: string]: any } {
    return {
      list: { 'type': 'array', 'itemType': ListOrderResponseBodyList },
      total: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ListOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ListOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class MoveStudentHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class MoveStudentRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2000
   */
  originClassId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2001
   */
  targetClassId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1000
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      originClassId: 'originClassId',
      targetClassId: 'targetClassId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      originClassId: 'number',
      targetClassId: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class MoveStudentResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class MoveStudentResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: MoveStudentResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: MoveStudentResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OpenKitHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OpenKitRequest extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * 0
   */
  openEndTime?: number;
  /**
   * @example
   * 0
   */
  openStartTime?: number;
  /**
   * @example
   * staffxxx
   */
  openUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      openEndTime: 'openEndTime',
      openStartTime: 'openStartTime',
      openUserId: 'openUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
      openEndTime: 'number',
      openStartTime: 'number',
      openUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OpenKitResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OpenKitResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: OpenKitResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: OpenKitResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoRequest extends $tea.Model {
  /**
   * @example
   * 80930501630545566xx
   */
  orderNo?: string;
  static names(): { [key: string]: string } {
    return {
      orderNo: 'orderNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      orderNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoResponseBody extends $tea.Model {
  result?: OrderInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: OrderInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: OrderInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: OrderInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryClassCourseRequest extends $tea.Model {
  /**
   * @example
   * classId_xxx
   */
  classId?: string;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * 0
   */
  endCourseDate?: number;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * 0
   */
  pageNumber?: number;
  /**
   * @example
   * 20
   */
  pageSize?: number;
  /**
   * @example
   * 0
   */
  startCourseDate?: number;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      endCourseDate: 'endCourseDate',
      isvCode: 'isvCode',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
      startCourseDate: 'startCourseDate',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      corpId: 'string',
      endCourseDate: 'number',
      isvCode: 'string',
      pageNumber: 'number',
      pageSize: 'number',
      startCourseDate: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryClassCourseResponseBody extends $tea.Model {
  result?: PageQueryClassCourseResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': PageQueryClassCourseResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PageQueryClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PageQueryClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryDevicesHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryDevicesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  maxResults?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  nextToken?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      maxResults: 'maxResults',
      nextToken: 'nextToken',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      maxResults: 'number',
      nextToken: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryDevicesResponseBody extends $tea.Model {
  list?: PageQueryDevicesResponseBodyList[];
  /**
   * @example
   * 2
   */
  nextToken?: string;
  /**
   * @example
   * 1300
   */
  totalCount?: number;
  static names(): { [key: string]: string } {
    return {
      list: 'list',
      nextToken: 'nextToken',
      totalCount: 'totalCount',
    };
  }

  static types(): { [key: string]: any } {
    return {
      list: { 'type': 'array', 'itemType': PageQueryDevicesResponseBodyList },
      nextToken: 'string',
      totalCount: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryDevicesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PageQueryDevicesResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PageQueryDevicesResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryKitOpenRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryKitOpenRecordRequest extends $tea.Model {
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * 1
   */
  pageNumber?: number;
  /**
   * @example
   * 1
   */
  pageSize?: number;
  static names(): { [key: string]: string } {
    return {
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
    };
  }

  static types(): { [key: string]: any } {
    return {
      isvCode: 'string',
      isvProductScene: 'string',
      pageNumber: 'number',
      pageSize: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryKitOpenRecordResponseBody extends $tea.Model {
  result?: PageQueryKitOpenRecordResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': PageQueryKitOpenRecordResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryKitOpenRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PageQueryKitOpenRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PageQueryKitOpenRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PayOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PayOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  orderNo?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  /**
   * @example
   * 1.0
   */
  version?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      orderNo: 'orderNo',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      userId: 'userId',
      version: 'version',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      orderNo: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      userId: 'string',
      version: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PayOrderResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PayOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PayOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PayOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusRequest extends $tea.Model {
  /**
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @example
   * testExt
   */
  ext?: string;
  /**
   * @example
   * DDIsv
   */
  isvCode?: string;
  /**
   * @example
   * 1
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      ext: 'ext',
      isvCode: 'isvCode',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      ext: 'string',
      isvCode: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  universityPollingCourseStatusResponse?: PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponse;
  static names(): { [key: string]: string } {
    return {
      universityPollingCourseStatusResponse: 'universityPollingCourseStatusResponse',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universityPollingCourseStatusResponse: PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponse,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PollingConfirmStatusResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PollingConfirmStatusResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PreDialHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PreDialRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 00003213130
   */
  callerUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 312000030213120
   */
  receiverUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fdaf-2132
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      callerUserId: 'callerUserId',
      receiverUserId: 'receiverUserId',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      callerUserId: 'string',
      receiverUserId: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PreDialResponseBody extends $tea.Model {
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PreDialResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PreDialResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PreDialResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ProvidePointHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ProvidePointRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * action01
   */
  actionCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * biz01
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * personal
   */
  pointType?: string;
  static names(): { [key: string]: string } {
    return {
      actionCode: 'actionCode',
      bizId: 'bizId',
      pointType: 'pointType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionCode: 'string',
      bizId: 'string',
      pointType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ProvidePointResponseBody extends $tea.Model {
  result?: ProvidePointResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: ProvidePointResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ProvidePointResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ProvidePointResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ProvidePointResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  classDetailItems?: PublishSchoolReportRequestClassDetailItems[];
  /**
   * @remarks
   * This parameter is required.
   */
  examClass?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  examTitle?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  identifier?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  publishScope?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  scoreType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  share?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  showRank?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  showStatisticsScore?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  subScoreType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  subjectList?: PublishSchoolReportRequestSubjectList[];
  /**
   * @remarks
   * This parameter is required.
   */
  subjects?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  teacherName?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      classDetailItems: 'classDetailItems',
      examClass: 'examClass',
      examTitle: 'examTitle',
      identifier: 'identifier',
      publishScope: 'publishScope',
      scoreType: 'scoreType',
      share: 'share',
      showRank: 'showRank',
      showStatisticsScore: 'showStatisticsScore',
      subScoreType: 'subScoreType',
      subjectList: 'subjectList',
      subjects: 'subjects',
      teacherId: 'teacherId',
      teacherName: 'teacherName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      classDetailItems: { 'type': 'array', 'itemType': PublishSchoolReportRequestClassDetailItems },
      examClass: 'string',
      examTitle: 'string',
      identifier: 'string',
      publishScope: 'string',
      scoreType: 'string',
      share: 'boolean',
      showRank: 'boolean',
      showStatisticsScore: 'boolean',
      subScoreType: 'string',
      subjectList: { 'type': 'array', 'itemType': PublishSchoolReportRequestSubjectList },
      subjects: 'string',
      teacherId: 'string',
      teacherName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportResponseBody extends $tea.Model {
  result?: PublishSchoolReportResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: PublishSchoolReportResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PublishSchoolReportResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PublishSchoolReportResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PushClassGroupCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PushClassGroupCardRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  classId?: number;
  groupTypeList?: string[];
  privateCardData?: { [key: string]: {[key: string]: any} };
  /**
   * @remarks
   * This parameter is required.
   */
  publicCardData?: { [key: string]: string };
  /**
   * @remarks
   * This parameter is required.
   */
  senderUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  studentUserIds?: string[];
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      classId: 'classId',
      groupTypeList: 'groupTypeList',
      privateCardData: 'privateCardData',
      publicCardData: 'publicCardData',
      senderUserId: 'senderUserId',
      studentUserIds: 'studentUserIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      classId: 'number',
      groupTypeList: { 'type': 'array', 'itemType': 'string' },
      privateCardData: { 'type': 'map', 'keyType': 'string', 'valueType': '{[key: string]: any}' },
      publicCardData: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      senderUserId: 'string',
      studentUserIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PushClassGroupCardResponseBody extends $tea.Model {
  result?: string;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PushClassGroupCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: PushClassGroupCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: PushClassGroupCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryResponseBody extends $tea.Model {
  result?: QueryResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleRequest extends $tea.Model {
  classIds?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 34524523543
   */
  opUserId?: string;
  /**
   * @example
   * KINDERGARTEN
   */
  periodCode?: string;
  static names(): { [key: string]: string } {
    return {
      classIds: 'classIds',
      opUserId: 'opUserId',
      periodCode: 'periodCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIds: { 'type': 'array', 'itemType': 'number' },
      opUserId: 'string',
      periodCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleShrinkRequest extends $tea.Model {
  classIdsShrink?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 34524523543
   */
  opUserId?: string;
  /**
   * @example
   * KINDERGARTEN
   */
  periodCode?: string;
  static names(): { [key: string]: string } {
    return {
      classIdsShrink: 'classIds',
      opUserId: 'opUserId',
      periodCode: 'periodCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIdsShrink: 'string',
      opUserId: 'string',
      periodCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleResponseBody extends $tea.Model {
  result?: QueryAllSubjectsFromClassScheduleResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryAllSubjectsFromClassScheduleResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryAllSubjectsFromClassScheduleResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryAllSubjectsFromClassScheduleResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  sectionIndexList?: number[];
  /**
   * @remarks
   * This parameter is required.
   */
  subscriberIds?: string[];
  /**
   * @example
   * 168454674745
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234623456
   */
  opUserId?: string;
  /**
   * @example
   * 168454674745
   */
  startTime?: number;
  /**
   * @example
   * USER
   */
  subscriberType?: string;
  static names(): { [key: string]: string } {
    return {
      sectionIndexList: 'sectionIndexList',
      subscriberIds: 'subscriberIds',
      endTime: 'endTime',
      opUserId: 'opUserId',
      startTime: 'startTime',
      subscriberType: 'subscriberType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionIndexList: { 'type': 'array', 'itemType': 'number' },
      subscriberIds: { 'type': 'array', 'itemType': 'string' },
      endTime: 'number',
      opUserId: 'string',
      startTime: 'number',
      subscriberType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBody extends $tea.Model {
  config?: QueryClassScheduleResponseBodyConfig;
  courseDTOS?: QueryClassScheduleResponseBodyCourseDTOS[];
  static names(): { [key: string]: string } {
    return {
      config: 'config',
      courseDTOS: 'courseDTOS',
    };
  }

  static types(): { [key: string]: any } {
    return {
      config: QueryClassScheduleResponseBodyConfig,
      courseDTOS: { 'type': 'array', 'itemType': QueryClassScheduleResponseBodyCourseDTOS },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryClassScheduleResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryClassScheduleResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  startTime?: number;
  static names(): { [key: string]: string } {
    return {
      endTime: 'endTime',
      opUserId: 'opUserId',
      startTime: 'startTime',
    };
  }

  static types(): { [key: string]: any } {
    return {
      endTime: 'number',
      opUserId: 'string',
      startTime: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolResponseBody extends $tea.Model {
  result?: QueryClassScheduleByTimeSchoolResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryClassScheduleByTimeSchoolResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryClassScheduleByTimeSchoolResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryClassScheduleByTimeSchoolResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigRequest extends $tea.Model {
  classIds?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2534522534
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classIds: 'classIds',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIds: { 'type': 'array', 'itemType': 'number' },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigShrinkRequest extends $tea.Model {
  classIdsShrink?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2534522534
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classIdsShrink: 'classIds',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIdsShrink: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBody extends $tea.Model {
  result?: QueryClassScheduleConfigResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryClassScheduleConfigResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryClassScheduleConfigResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryClassScheduleConfigResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailRequest extends $tea.Model {
  /**
   * @example
   * 12122294
   */
  jobNumber?: string;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  /**
   * @example
   * zhangsan666
   */
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      jobNumber: 'jobNumber',
      language: 'language',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      jobNumber: 'string',
      language: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBody extends $tea.Model {
  result?: QueryCollegeContactUserDetailResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryCollegeContactUserDetailResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryCollegeContactUserDetailResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryCollegeContactUserDetailResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fadf-8008
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceResponseBody extends $tea.Model {
  /**
   * @example
   * 1680227019000
   */
  gmtExpiry?: number;
  /**
   * @example
   * model1
   */
  model?: string;
  /**
   * @example
   * 三年级1班班牌
   */
  name?: string;
  /**
   * @example
   * fada-8008
   */
  sn?: string;
  /**
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      gmtExpiry: 'gmtExpiry',
      model: 'model',
      name: 'name',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      gmtExpiry: 'number',
      model: 'string',
      name: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  pageSize?: number;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
      pageNumber: 'number',
      pageSize: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: QueryDeviceListByCorpIdResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryDeviceListByCorpIdResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryDeviceListByCorpIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryDeviceListByCorpIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryEduAssetSpacesHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryEduAssetSpacesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * soke
   */
  bizCode?: string;
  /**
   * @example
   * 10
   */
  maxResults?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20110
   */
  nextToken?: number;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      maxResults: 'maxResults',
      nextToken: 'nextToken',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      maxResults: 'number',
      nextToken: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryEduAssetSpacesResponseBody extends $tea.Model {
  hasMore?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  nextToken?: string;
  spaces?: QueryEduAssetSpacesResponseBodySpaces[];
  static names(): { [key: string]: string } {
    return {
      hasMore: 'hasMore',
      nextToken: 'nextToken',
      spaces: 'spaces',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasMore: 'boolean',
      nextToken: 'string',
      spaces: { 'type': 'array', 'itemType': QueryEduAssetSpacesResponseBodySpaces },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryEduAssetSpacesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryEduAssetSpacesResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryEduAssetSpacesResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryGroupIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryGroupIdRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryGroupIdResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingding123
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * NTK300001
   */
  groupId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200001
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 某某商户
   */
  merchantName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 阿里云教育
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100001
   */
  pid?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      groupId: 'groupId',
      merchantId: 'merchantId',
      merchantName: 'merchantName',
      name: 'name',
      pid: 'pid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      groupId: 'string',
      merchantId: 'string',
      merchantName: 'string',
      name: 'string',
      pid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryGroupIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryGroupIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryGroupIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryKitOpenRecordHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryKitOpenRecordRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryKitOpenRecordResponseBody extends $tea.Model {
  result?: QueryKitOpenRecordResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryKitOpenRecordResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryKitOpenRecordResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryKitOpenRecordResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryKitOpenRecordResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryModelResultByTaskIdHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryModelResultByTaskIdRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  taskId?: string;
  static names(): { [key: string]: string } {
    return {
      taskId: 'taskId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      taskId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryModelResultByTaskIdResponseBody extends $tea.Model {
  result?: QueryModelResultByTaskIdResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryModelResultByTaskIdResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryModelResultByTaskIdResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryModelResultByTaskIdResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryModelResultByTaskIdResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * CM00001
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      signature: 'signature',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      orderNo: 'string',
      signature: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrderResponseBody extends $tea.Model {
  actualAmount?: number;
  /**
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  closeTime?: string;
  /**
   * @example
   * 1672973971107
   */
  closeTimestamp?: number;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  createTime?: string;
  /**
   * @example
   * 1672973971107
   */
  createTimestamp?: number;
  labelAmount?: number;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M20000100
   */
  merchantMergeOrderNo?: string;
  /**
   * @example
   * M20000100
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001
   */
  orderNo?: string;
  /**
   * @example
   * 1
   */
  orderType?: string;
  /**
   * @example
   * fagweefdsdgfa
   */
  outerUserId?: string;
  /**
   * @example
   * 138***
   */
  payLogonId?: string;
  payStatus?: number;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  payTime?: string;
  /**
   * @example
   * 1672973971107
   */
  payTimestamp?: number;
  /**
   * @example
   * 1
   */
  payType?: string;
  refundAmount?: number;
  refundStatus?: number;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  refundTime?: string;
  /**
   * @example
   * 1672973971107
   */
  refundTimestamp?: number;
  /**
   * @example
   * 教育产品
   */
  subject?: string;
  /**
   * @example
   * 2022080311111
   */
  tradeNo?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      closeTime: 'closeTime',
      closeTimestamp: 'closeTimestamp',
      createTime: 'createTime',
      createTimestamp: 'createTimestamp',
      labelAmount: 'labelAmount',
      merchantId: 'merchantId',
      merchantMergeOrderNo: 'merchantMergeOrderNo',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
      orderType: 'orderType',
      outerUserId: 'outerUserId',
      payLogonId: 'payLogonId',
      payStatus: 'payStatus',
      payTime: 'payTime',
      payTimestamp: 'payTimestamp',
      payType: 'payType',
      refundAmount: 'refundAmount',
      refundStatus: 'refundStatus',
      refundTime: 'refundTime',
      refundTimestamp: 'refundTimestamp',
      subject: 'subject',
      tradeNo: 'tradeNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      closeTime: 'string',
      closeTimestamp: 'number',
      createTime: 'string',
      createTimestamp: 'number',
      labelAmount: 'number',
      merchantId: 'string',
      merchantMergeOrderNo: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
      orderType: 'string',
      outerUserId: 'string',
      payLogonId: 'string',
      payStatus: 'number',
      payTime: 'string',
      payTimestamp: 'number',
      payType: 'string',
      refundAmount: 'number',
      refundStatus: 'number',
      refundTime: 'string',
      refundTimestamp: 'number',
      subject: 'string',
      tradeNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgRelationListHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgRelationListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  static names(): { [key: string]: string } {
    return {
      operator: 'operator',
    };
  }

  static types(): { [key: string]: any } {
    return {
      operator: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgRelationListResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: QueryOrgRelationListResponseBodyResult[];
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryOrgRelationListResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgRelationListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryOrgRelationListResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryOrgRelationListResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgSecretKeyHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgSecretKeyRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * DDISV
   */
  isvCode?: string;
  /**
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      isvCode: 'isvCode',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      isvCode: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgSecretKeyResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  universitySecretKeyInfo?: QueryOrgSecretKeyResponseBodyUniversitySecretKeyInfo;
  static names(): { [key: string]: string } {
    return {
      universitySecretKeyInfo: 'universitySecretKeyInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universitySecretKeyInfo: QueryOrgSecretKeyResponseBodyUniversitySecretKeyInfo,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgSecretKeyResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryOrgSecretKeyResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryOrgSecretKeyResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgTypeHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgTypeResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1, "省级教育厅";2, "市级教育局";3, "区县教育局";4, "中心校";5, "普通学校"
   */
  orgType?: number;
  static names(): { [key: string]: string } {
    return {
      orgType: 'orgType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      orgType: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgTypeResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryOrgTypeResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryOrgTypeResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPayResultHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPayResultRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12312333
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 202201240001
   */
  orderNo?: string;
  /**
   * @example
   * KSwZiSL1O7DiUNwjV168j3cP9ktp4bJTi5OQxAXre26KyBXza7+gCl/g1d0K3n3+9JhMqc2fUjBiENcAELw3Jb5xO/zslOeV4qFoMQfzW51+sdL/SSZCYvXEMhu9P6FAPhGZQ3vu6gr3oxUAXPIpWNb+sIfzR9epumoOXYeofH8=
   */
  signature?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn1234
   */
  sn?: string;
  /**
   * @example
   * 1644413947909
   */
  timestamp?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20200231
   */
  userId?: string;
  /**
   * @example
   * 1.0
   */
  version?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      orderNo: 'orderNo',
      signature: 'signature',
      sn: 'sn',
      timestamp: 'timestamp',
      userId: 'userId',
      version: 'version',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      orderNo: 'string',
      signature: 'string',
      sn: 'string',
      timestamp: 'number',
      userId: 'string',
      version: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPayResultResponseBody extends $tea.Model {
  /**
   * @example
   * 状态，取值：10：待支付，11：关单，20：支付成功
   */
  status?: number;
  static names(): { [key: string]: string } {
    return {
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      status: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPayResultResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryPayResultResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryPayResultResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPhysicalClassroomHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPhysicalClassroomRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  classroomId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classroomId: 'classroomId',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomId: 'number',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPhysicalClassroomResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  result?: QueryPhysicalClassroomResponseBodyResult;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryPhysicalClassroomResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPhysicalClassroomResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryPhysicalClassroomResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryPhysicalClassroomResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPurchaseInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPurchaseInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 300001
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1代表视频通话
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20001
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      merchantId: 'merchantId',
      scene: 'scene',
      sn: 'sn',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      merchantId: 'string',
      scene: 'number',
      sn: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPurchaseInfoResponseBody extends $tea.Model {
  /**
   * @example
   * dingding123
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 300001
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 小明
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1视频通话
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10、已订购；11、未订购（包含已过期）；12、取消
   */
  status?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200001
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      merchantId: 'merchantId',
      name: 'name',
      scene: 'scene',
      status: 'status',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      merchantId: 'string',
      name: 'string',
      scene: 'number',
      status: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPurchaseInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryPurchaseInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryPurchaseInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1635436800000
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager1234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1634832000000
   */
  startTime?: number;
  static names(): { [key: string]: string } {
    return {
      endTime: 'endTime',
      operator: 'operator',
      startTime: 'startTime',
    };
  }

  static types(): { [key: string]: any } {
    return {
      endTime: 'number',
      operator: 'string',
      startTime: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseResponseBody extends $tea.Model {
  result?: QueryRemoteClassCourseResponseBodyResult[];
  /**
   * @remarks
   * This parameter is required.
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryRemoteClassCourseResponseBodyResult },
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryRemoteClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryRemoteClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySchoolUserFaceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySchoolUserFaceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 从0开始
   */
  pageNumber?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 大于0小于200
   */
  pageSize?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1全量模式，2增量模式
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      pageNumber: 'pageNumber',
      pageSize: 'pageSize',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pageNumber: 'number',
      pageSize: 'number',
      sn: 'string',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySchoolUserFaceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingding123
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true/false
   */
  hasMore?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  userFaceList?: QuerySchoolUserFaceResponseBodyUserFaceList[];
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      hasMore: 'hasMore',
      userFaceList: 'userFaceList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      hasMore: 'boolean',
      userFaceList: { 'type': 'array', 'itemType': QuerySchoolUserFaceResponseBodyUserFaceList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySchoolUserFaceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QuerySchoolUserFaceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QuerySchoolUserFaceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupBaseInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupBaseInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupBaseInfoResponseBody extends $tea.Model {
  result?: QuerySelfBuildGroupBaseInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QuerySelfBuildGroupBaseInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupBaseInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QuerySelfBuildGroupBaseInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QuerySelfBuildGroupBaseInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  roles?: string[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      roles: 'roles',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      roles: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoResponseBody extends $tea.Model {
  result?: QuerySelfBuildGroupUserInfoResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QuerySelfBuildGroupUserInfoResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QuerySelfBuildGroupUserInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QuerySelfBuildGroupUserInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySnsOrderHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySnsOrderRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * CM00001
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * WWrhziOLF/XuRd3IyKwLkLeSFgKnUfeg2yLEVD9Bw+8
   */
  signature?: string;
  static names(): { [key: string]: string } {
    return {
      alipayAppId: 'alipayAppId',
      merchantId: 'merchantId',
      orderNo: 'orderNo',
      signature: 'signature',
    };
  }

  static types(): { [key: string]: any } {
    return {
      alipayAppId: 'string',
      merchantId: 'string',
      orderNo: 'string',
      signature: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySnsOrderResponseBody extends $tea.Model {
  actualAmount?: number;
  /**
   * @example
   * 123400
   */
  alipayAppId?: string;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  closeTime?: string;
  /**
   * @example
   * 1672973971107
   */
  closeTimestamp?: number;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  createTime?: string;
  /**
   * @example
   * 1672973971107
   */
  createTimestamp?: number;
  labelAmount?: number;
  /**
   * @example
   * 10000
   */
  merchantId?: string;
  /**
   * @example
   * M20000100
   */
  merchantMergeOrderNo?: string;
  /**
   * @example
   * M20000100
   */
  merchantOrderNo?: string;
  /**
   * @example
   * CM0001
   */
  orderNo?: string;
  /**
   * @example
   * 1
   */
  orderType?: string;
  outerUserId?: string;
  /**
   * @example
   * 138***
   */
  payLogonId?: string;
  payStatus?: number;
  /**
   * @example
   * 2022-11-04T17:15Z
   */
  payTime?: string;
  /**
   * @example
   * 1672973971107
   */
  payTimestamp?: number;
  /**
   * @example
   * 1
   */
  payType?: string;
  refundAmount?: number;
  refundStatus?: number;
  refundTime?: string;
  /**
   * @example
   * 1672973971107
   */
  refundTimestamp?: number;
  /**
   * @example
   * 教育产品
   */
  subject?: string;
  /**
   * @example
   * 2022080311111
   */
  tradeNo?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      alipayAppId: 'alipayAppId',
      closeTime: 'closeTime',
      closeTimestamp: 'closeTimestamp',
      createTime: 'createTime',
      createTimestamp: 'createTimestamp',
      labelAmount: 'labelAmount',
      merchantId: 'merchantId',
      merchantMergeOrderNo: 'merchantMergeOrderNo',
      merchantOrderNo: 'merchantOrderNo',
      orderNo: 'orderNo',
      orderType: 'orderType',
      outerUserId: 'outerUserId',
      payLogonId: 'payLogonId',
      payStatus: 'payStatus',
      payTime: 'payTime',
      payTimestamp: 'payTimestamp',
      payType: 'payType',
      refundAmount: 'refundAmount',
      refundStatus: 'refundStatus',
      refundTime: 'refundTime',
      refundTimestamp: 'refundTimestamp',
      subject: 'subject',
      tradeNo: 'tradeNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      alipayAppId: 'string',
      closeTime: 'string',
      closeTimestamp: 'number',
      createTime: 'string',
      createTimestamp: 'number',
      labelAmount: 'number',
      merchantId: 'string',
      merchantMergeOrderNo: 'string',
      merchantOrderNo: 'string',
      orderNo: 'string',
      orderType: 'string',
      outerUserId: 'string',
      payLogonId: 'string',
      payStatus: 'number',
      payTime: 'string',
      payTimestamp: 'number',
      payType: 'string',
      refundAmount: 'number',
      refundStatus: 'number',
      refundTime: 'string',
      refundTimestamp: 'number',
      subject: 'string',
      tradeNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySnsOrderResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QuerySnsOrderResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QuerySnsOrderResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStatisticsDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStatisticsDataRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  sectionIndexList?: number[];
  /**
   * @remarks
   * This parameter is required.
   */
  teacherUserIds?: string[];
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  startTime?: number;
  static names(): { [key: string]: string } {
    return {
      sectionIndexList: 'sectionIndexList',
      teacherUserIds: 'teacherUserIds',
      endTime: 'endTime',
      opUserId: 'opUserId',
      startTime: 'startTime',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionIndexList: { 'type': 'array', 'itemType': 'number' },
      teacherUserIds: { 'type': 'array', 'itemType': 'string' },
      endTime: 'number',
      opUserId: 'string',
      startTime: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStatisticsDataResponseBody extends $tea.Model {
  result?: QueryStatisticsDataResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryStatisticsDataResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStatisticsDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryStatisticsDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryStatisticsDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassRequest extends $tea.Model {
  /**
   * @example
   * classIdxxx
   */
  classId?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  studentUserIds?: string[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      classType: 'classType',
      corpId: 'corpId',
      isvCode: 'isvCode',
      studentUserIds: 'studentUserIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      classType: 'number',
      corpId: 'string',
      isvCode: 'string',
      studentUserIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassResponseBody extends $tea.Model {
  result?: QueryStudentClassResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryStudentClassResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryStudentClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryStudentClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySubjectTeachersHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySubjectTeachersRequest extends $tea.Model {
  classIds?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 行政老师A
   */
  opUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  static names(): { [key: string]: string } {
    return {
      classIds: 'classIds',
      opUserId: 'opUserId',
      subjectCode: 'subjectCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIds: { 'type': 'array', 'itemType': 'number' },
      opUserId: 'string',
      subjectCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySubjectTeachersResponseBody extends $tea.Model {
  result?: QuerySubjectTeachersResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QuerySubjectTeachersResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySubjectTeachersResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QuerySubjectTeachersResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QuerySubjectTeachersResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeachSubjectsHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeachSubjectsRequest extends $tea.Model {
  classIds?: number[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 24275037451244334
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classIds: 'classIds',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classIds: { 'type': 'array', 'itemType': 'number' },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeachSubjectsResponseBody extends $tea.Model {
  result?: QueryTeachSubjectsResponseBodyResult[];
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: { 'type': 'array', 'itemType': QueryTeachSubjectsResponseBodyResult },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeachSubjectsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryTeachSubjectsResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryTeachSubjectsResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  isvCourseIdList?: string[];
  /**
   * @example
   * staffxxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvCourseIdList: 'isvCourseIdList',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      isvCourseIdList: { 'type': 'array', 'itemType': 'string' },
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseResponseBody extends $tea.Model {
  result?: QueryTeacherCourseResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryTeacherCourseResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryTeacherCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryTeacherCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTransferCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTransferCourseRequest extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * recordId
   */
  isvRecordId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvRecordId: 'isvRecordId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      isvRecordId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTransferCourseResponseBody extends $tea.Model {
  result?: QueryTransferCourseResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryTransferCourseResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTransferCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryTransferCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryTransferCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GS10001
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponseBody extends $tea.Model {
  universityCourseGroupInfo?: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfo;
  static names(): { [key: string]: string } {
    return {
      universityCourseGroupInfo: 'universityCourseGroupInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universityCourseGroupInfo: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfo,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserFaceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserFaceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 30001
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserFaceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingding123
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 30001
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 小明
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 40001
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      faceId: 'faceId',
      name: 'name',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      faceId: 'string',
      name: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserFaceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryUserFaceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryUserFaceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserPayInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserPayInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      sn: 'sn',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      sn: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserPayInfoResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  signNo?: string;
  static names(): { [key: string]: string } {
    return {
      signNo: 'signNo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      signNo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUserPayInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryUserPayInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryUserPayInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RemoveDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RemoveDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  merchantId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * SN123
   */
  sn?: string;
  static names(): { [key: string]: string } {
    return {
      merchantId: 'merchantId',
      sn: 'sn',
    };
  }

  static types(): { [key: string]: any } {
    return {
      merchantId: 'string',
      sn: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RemoveDeviceResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: string;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RemoveDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: RemoveDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: RemoveDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceLogHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceLogRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * xdfsf20001
   */
  mediaId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * file：普通文件
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      mediaId: 'mediaId',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      mediaId: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceLogResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 失败false，成功true。
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceLogResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ReportDeviceLogResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ReportDeviceLogResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceUseLogHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceUseLogRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  action?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * sn123
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 312323321111
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      action: 'action',
      orderNo: 'orderNo',
      sn: 'sn',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      action: 'string',
      orderNo: 'string',
      sn: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceUseLogResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ReportDeviceUseLogResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ReportDeviceUseLogResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ReportDeviceUseLogResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RollbackDeductPointHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RollbackDeductPointRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * biz01
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * personal
   */
  pointType?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      pointType: 'pointType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      pointType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RollbackDeductPointResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class RollbackDeductPointResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: RollbackDeductPointResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: RollbackDeductPointResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveClassLearningDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveClassLearningDataRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  assignNum?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  assignStudentUserIds?: string[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * HOMEWORK
   */
  bizType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingxxxxxxxxxxxxxxxxx
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  deptId?: number;
  /**
   * @example
   * .jpeg
   */
  fileSuffix?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1672502400000
   */
  generatedTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  questionNum?: number;
  /**
   * @example
   * 1
   */
  questionPictureNum?: number;
  /**
   * @example
   * 1
   */
  standardAnswerPictureNum?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * shuxue
   */
  subjectCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0123456
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      assignNum: 'assignNum',
      assignStudentUserIds: 'assignStudentUserIds',
      bizId: 'bizId',
      bizType: 'bizType',
      corpId: 'corpId',
      deptId: 'deptId',
      fileSuffix: 'fileSuffix',
      generatedTime: 'generatedTime',
      questionNum: 'questionNum',
      questionPictureNum: 'questionPictureNum',
      standardAnswerPictureNum: 'standardAnswerPictureNum',
      subjectCode: 'subjectCode',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      assignNum: 'number',
      assignStudentUserIds: { 'type': 'array', 'itemType': 'string' },
      bizId: 'string',
      bizType: 'string',
      corpId: 'string',
      deptId: 'number',
      fileSuffix: 'string',
      generatedTime: 'number',
      questionNum: 'number',
      questionPictureNum: 'number',
      standardAnswerPictureNum: 'number',
      subjectCode: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveClassLearningDataResponseBody extends $tea.Model {
  result?: SaveClassLearningDataResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: SaveClassLearningDataResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveClassLearningDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SaveClassLearningDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SaveClassLearningDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  assignNum?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * HOMEWORK
   */
  bizType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingxxxxxxxxxxxxxxxxxxxxx
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  correctNum?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  deptId?: number;
  /**
   * @example
   * .jpeg
   */
  fileSuffix?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1672502400000
   */
  generatedTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  questionNum?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0123456
   */
  studentUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * shuxue
   */
  subjectCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  submitNum?: number;
  wrongQuestions?: SaveStudentLearningDataRequestWrongQuestions[];
  static names(): { [key: string]: string } {
    return {
      assignNum: 'assignNum',
      bizId: 'bizId',
      bizType: 'bizType',
      corpId: 'corpId',
      correctNum: 'correctNum',
      deptId: 'deptId',
      fileSuffix: 'fileSuffix',
      generatedTime: 'generatedTime',
      questionNum: 'questionNum',
      studentUserId: 'studentUserId',
      subjectCode: 'subjectCode',
      submitNum: 'submitNum',
      wrongQuestions: 'wrongQuestions',
    };
  }

  static types(): { [key: string]: any } {
    return {
      assignNum: 'number',
      bizId: 'string',
      bizType: 'string',
      corpId: 'string',
      correctNum: 'number',
      deptId: 'number',
      fileSuffix: 'string',
      generatedTime: 'number',
      questionNum: 'number',
      studentUserId: 'string',
      subjectCode: 'string',
      submitNum: 'number',
      wrongQuestions: { 'type': 'array', 'itemType': SaveStudentLearningDataRequestWrongQuestions },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataResponseBody extends $tea.Model {
  result?: SaveStudentLearningDataResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: SaveStudentLearningDataResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SaveStudentLearningDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SaveStudentLearningDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SchoolReportDetailReadedHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SchoolReportDetailReadedRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  schoolReportId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  studentIds?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      schoolReportId: 'schoolReportId',
      studentIds: 'studentIds',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      schoolReportId: 'number',
      studentIds: { 'type': 'array', 'itemType': 'string' },
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SchoolReportDetailReadedResponseBody extends $tea.Model {
  result?: SchoolReportDetailReadedResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: SchoolReportDetailReadedResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SchoolReportDetailReadedResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SchoolReportDetailReadedResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SchoolReportDetailReadedResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SearchTeachersHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SearchTeachersRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 李
   */
  nameKeyword?: string;
  static names(): { [key: string]: string } {
    return {
      nameKeyword: 'nameKeyword',
    };
  }

  static types(): { [key: string]: any } {
    return {
      nameKeyword: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SearchTeachersResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  users?: SearchTeachersResponseBodyUsers[];
  static names(): { [key: string]: string } {
    return {
      users: 'users',
    };
  }

  static types(): { [key: string]: any } {
    return {
      users: { 'type': 'array', 'itemType': SearchTeachersResponseBodyUsers },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SearchTeachersResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SearchTeachersResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SearchTeachersResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendAiCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendAiCardRequest extends $tea.Model {
  /**
   * @example
   * aaa_event
   */
  actionType?: string;
  bizData?: string;
  /**
   * @example
   * AI_MANAGER_PRINCIPAL
   */
  cardChannel?: string;
  /**
   * @example
   * ding23423
   */
  corpId?: string;
  /**
   * @example
   * 234234234
   */
  identifier?: string;
  /**
   * @example
   * XIWO
   */
  isvCode?: string;
  static names(): { [key: string]: string } {
    return {
      actionType: 'actionType',
      bizData: 'bizData',
      cardChannel: 'cardChannel',
      corpId: 'corpId',
      identifier: 'identifier',
      isvCode: 'isvCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionType: 'string',
      bizData: 'string',
      cardChannel: 'string',
      corpId: 'string',
      identifier: 'string',
      isvCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendAiCardResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendAiCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SendAiCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SendAiCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendCollegeAiAssistantMsgHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendCollegeAiAssistantMsgRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  content?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  contentType?: string;
  openConversationId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      content: 'content',
      contentType: 'contentType',
      openConversationId: 'openConversationId',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      content: 'string',
      contentType: 'string',
      openConversationId: 'string',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendCollegeAiAssistantMsgResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendCollegeAiAssistantMsgResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SendCollegeAiAssistantMsgResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SendCollegeAiAssistantMsgResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendFileMessageHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendFileMessageRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  extension?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  fileName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  fileSize?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  fileUrl?: string;
  sendType?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      extension: 'extension',
      fileName: 'fileName',
      fileSize: 'fileSize',
      fileUrl: 'fileUrl',
      sendType: 'sendType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      extension: 'string',
      fileName: 'string',
      fileSize: 'number',
      fileUrl: 'string',
      sendType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendFileMessageResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendFileMessageResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SendFileMessageResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SendFileMessageResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendMessageHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendMessageRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123123123123
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  fromUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * SN123456
   */
  sn?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  toUserIdList?: string[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      fromUserId: 'fromUserId',
      sn: 'sn',
      toUserIdList: 'toUserIdList',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      fromUserId: 'string',
      sn: 'string',
      toUserIdList: { 'type': 'array', 'itemType': 'string' },
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendMessageResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * success
   */
  successInfo?: string;
  static names(): { [key: string]: string } {
    return {
      successInfo: 'successInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      successInfo: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendMessageResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SendMessageResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SendMessageResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendPrintOrderNoticeMsgHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendPrintOrderNoticeMsgRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  createOrderTime?: string;
  deliveryCompanyName?: string;
  deliveryNumber?: string;
  deliveryTime?: string;
  paymentTime?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  price?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sceneCode?: string;
  static names(): { [key: string]: string } {
    return {
      createOrderTime: 'createOrderTime',
      deliveryCompanyName: 'deliveryCompanyName',
      deliveryNumber: 'deliveryNumber',
      deliveryTime: 'deliveryTime',
      paymentTime: 'paymentTime',
      price: 'price',
      sceneCode: 'sceneCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createOrderTime: 'string',
      deliveryCompanyName: 'string',
      deliveryNumber: 'string',
      deliveryTime: 'string',
      paymentTime: 'string',
      price: 'string',
      sceneCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendPrintOrderNoticeMsgResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SendPrintOrderNoticeMsgResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SendPrintOrderNoticeMsgResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SendPrintOrderNoticeMsgResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseRequest extends $tea.Model {
  /**
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @example
   * extData
   */
  ext?: string;
  /**
   * @example
   * DDIsv
   */
  isvCode?: string;
  livePlayInfoList?: StartCourseRequestLivePlayInfoList[];
  /**
   * @example
   * 1
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      ext: 'ext',
      isvCode: 'isvCode',
      livePlayInfoList: 'livePlayInfoList',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      ext: 'string',
      isvCode: 'string',
      livePlayInfoList: { 'type': 'array', 'itemType': StartCourseRequestLivePlayInfoList },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  universityCourseCommonResponse?: StartCourseResponseBodyUniversityCourseCommonResponse;
  static names(): { [key: string]: string } {
    return {
      universityCourseCommonResponse: 'universityCourseCommonResponse',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universityCourseCommonResponse: StartCourseResponseBodyUniversityCourseCommonResponse,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: StartCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: StartCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCoursePrepareHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCoursePrepareRequest extends $tea.Model {
  /**
   * @example
   * 2021-11-16
   */
  courseDate?: string;
  /**
   * @example
   * course1
   */
  courseGroupCode?: string;
  /**
   * @example
   * device1
   */
  deviceId?: string;
  /**
   * @example
   * extNumber
   */
  ext?: string;
  /**
   * @example
   * DDISV
   */
  isvCode?: string;
  /**
   * @example
   * ""
   */
  liveCoverImage?: string;
  sectionIndex?: number[];
  /**
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseDate: 'courseDate',
      courseGroupCode: 'courseGroupCode',
      deviceId: 'deviceId',
      ext: 'ext',
      isvCode: 'isvCode',
      liveCoverImage: 'liveCoverImage',
      sectionIndex: 'sectionIndex',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseDate: 'string',
      courseGroupCode: 'string',
      deviceId: 'string',
      ext: 'string',
      isvCode: 'string',
      liveCoverImage: 'string',
      sectionIndex: { 'type': 'array', 'itemType': 'number' },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCoursePrepareResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  universityCourseCommonResponse?: StartCoursePrepareResponseBodyUniversityCourseCommonResponse;
  static names(): { [key: string]: string } {
    return {
      universityCourseCommonResponse: 'universityCourseCommonResponse',
    };
  }

  static types(): { [key: string]: any } {
    return {
      universityCourseCommonResponse: StartCoursePrepareResponseBodyUniversityCourseCommonResponse,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCoursePrepareResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: StartCoursePrepareResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: StartCoursePrepareResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubmitAiSportDataHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubmitAiSportDataRequest extends $tea.Model {
  data?: { [key: string]: string };
  dataType?: string;
  operateType?: string;
  static names(): { [key: string]: string } {
    return {
      data: 'data',
      dataType: 'dataType',
      operateType: 'operateType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      data: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      dataType: 'string',
      operateType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubmitAiSportDataResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubmitAiSportDataResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SubmitAiSportDataResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SubmitAiSportDataResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubscribeUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubscribeUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @example
   * DDS10002
   */
  courseGroupCode?: string;
  studentUserIds?: string[];
  /**
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      studentUserIds: 'studentUserIds',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      studentUserIds: { 'type': 'array', 'itemType': 'string' },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubscribeUniversityCourseGroupResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SubscribeUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: SubscribeUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: SubscribeUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UnsubscribeUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UnsubscribeUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GSS10023
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  studentUserIds?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      studentUserIds: 'studentUserIds',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      studentUserIds: { 'type': 'array', 'itemType': 'string' },
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UnsubscribeUniversityCourseGroupResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UnsubscribeUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UnsubscribeUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UnsubscribeUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 23424324324
   */
  deptId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  gradeLevel?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  openClass?: UpdateClassRequestOpenClass;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager234234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 23423423
   */
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      gradeLevel: 'gradeLevel',
      openClass: 'openClass',
      operator: 'operator',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      gradeLevel: 'number',
      openClass: UpdateClassRequestOpenClass,
      operator: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassResponseBody extends $tea.Model {
  result?: UpdateClassResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: UpdateClassResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassGroupCardHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassGroupCardRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizCardId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  groupTypeList?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  isFinalUpdate?: boolean;
  privateCardData?: { [key: string]: {[key: string]: any} };
  publicCardData?: { [key: string]: string };
  static names(): { [key: string]: string } {
    return {
      bizCardId: 'bizCardId',
      classId: 'classId',
      groupTypeList: 'groupTypeList',
      isFinalUpdate: 'isFinalUpdate',
      privateCardData: 'privateCardData',
      publicCardData: 'publicCardData',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCardId: 'string',
      classId: 'number',
      groupTypeList: { 'type': 'array', 'itemType': 'string' },
      isFinalUpdate: 'boolean',
      privateCardData: { 'type': 'map', 'keyType': 'string', 'valueType': '{[key: string]: any}' },
      publicCardData: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassGroupCardResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassGroupCardResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateClassGroupCardResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateClassGroupCardResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeAlumniUserInfoHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeAlumniUserInfoRequest extends $tea.Model {
  address?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deptIds?: number[];
  email?: string;
  intake?: string;
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  operator?: string;
  outtake?: string;
  studentNumber?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      address: 'address',
      deptIds: 'deptIds',
      email: 'email',
      intake: 'intake',
      name: 'name',
      operator: 'operator',
      outtake: 'outtake',
      studentNumber: 'studentNumber',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      address: 'string',
      deptIds: { 'type': 'array', 'itemType': 'number' },
      email: 'string',
      intake: 'string',
      name: 'string',
      operator: 'string',
      outtake: 'string',
      studentNumber: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeAlumniUserInfoResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeAlumniUserInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeAlumniUserInfoResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeAlumniUserInfoResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptRequest extends $tea.Model {
  autoAddUser?: boolean;
  autoApproveApply?: boolean;
  /**
   * @example
   * 这是组织单元简介
   */
  brief?: string;
  /**
   * @example
   * 20000
   */
  code?: string;
  createDeptGroup?: boolean;
  /**
   * @example
   * dept456
   */
  deptCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200
   */
  deptId?: number;
  deptManagerUseridList?: string[];
  deptPermits?: number[];
  /**
   * @example
   * contact_class_dept
   */
  deptType?: string;
  empApplyJoinDept?: boolean;
  extension?: { [key: string]: string };
  forceUpdateFields?: string[];
  groupContainHiddenDept?: boolean;
  groupContainOuterDept?: boolean;
  groupContainSubDept?: boolean;
  hideDept?: boolean;
  hideSceneConfig?: UpdateCollegeContactDeptRequestHideSceneConfig;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  /**
   * @example
   * 软件工程
   */
  name?: string;
  /**
   * @example
   * 20
   */
  order?: number;
  /**
   * @example
   * user234
   */
  orgDeptOwner?: string;
  outerDept?: boolean;
  outerDeptOnlySelf?: boolean;
  outerPermitDepts?: number[];
  outerPermitUsers?: string[];
  outerSceneConfig?: UpdateCollegeContactDeptRequestOuterSceneConfig;
  /**
   * @example
   * 20
   */
  parentId?: number;
  /**
   * @example
   * 软件工程标识
   */
  sourceIdentifier?: string;
  /**
   * @example
   * 138xxxx0000
   */
  telephone?: string;
  userPermits?: string[];
  static names(): { [key: string]: string } {
    return {
      autoAddUser: 'autoAddUser',
      autoApproveApply: 'autoApproveApply',
      brief: 'brief',
      code: 'code',
      createDeptGroup: 'createDeptGroup',
      deptCode: 'deptCode',
      deptId: 'deptId',
      deptManagerUseridList: 'deptManagerUseridList',
      deptPermits: 'deptPermits',
      deptType: 'deptType',
      empApplyJoinDept: 'empApplyJoinDept',
      extension: 'extension',
      forceUpdateFields: 'forceUpdateFields',
      groupContainHiddenDept: 'groupContainHiddenDept',
      groupContainOuterDept: 'groupContainOuterDept',
      groupContainSubDept: 'groupContainSubDept',
      hideDept: 'hideDept',
      hideSceneConfig: 'hideSceneConfig',
      language: 'language',
      name: 'name',
      order: 'order',
      orgDeptOwner: 'orgDeptOwner',
      outerDept: 'outerDept',
      outerDeptOnlySelf: 'outerDeptOnlySelf',
      outerPermitDepts: 'outerPermitDepts',
      outerPermitUsers: 'outerPermitUsers',
      outerSceneConfig: 'outerSceneConfig',
      parentId: 'parentId',
      sourceIdentifier: 'sourceIdentifier',
      telephone: 'telephone',
      userPermits: 'userPermits',
    };
  }

  static types(): { [key: string]: any } {
    return {
      autoAddUser: 'boolean',
      autoApproveApply: 'boolean',
      brief: 'string',
      code: 'string',
      createDeptGroup: 'boolean',
      deptCode: 'string',
      deptId: 'number',
      deptManagerUseridList: { 'type': 'array', 'itemType': 'string' },
      deptPermits: { 'type': 'array', 'itemType': 'number' },
      deptType: 'string',
      empApplyJoinDept: 'boolean',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      forceUpdateFields: { 'type': 'array', 'itemType': 'string' },
      groupContainHiddenDept: 'boolean',
      groupContainOuterDept: 'boolean',
      groupContainSubDept: 'boolean',
      hideDept: 'boolean',
      hideSceneConfig: UpdateCollegeContactDeptRequestHideSceneConfig,
      language: 'string',
      name: 'string',
      order: 'number',
      orgDeptOwner: 'string',
      outerDept: 'boolean',
      outerDeptOnlySelf: 'boolean',
      outerPermitDepts: { 'type': 'array', 'itemType': 'number' },
      outerPermitUsers: { 'type': 'array', 'itemType': 'string' },
      outerSceneConfig: UpdateCollegeContactDeptRequestOuterSceneConfig,
      parentId: 'number',
      sourceIdentifier: 'string',
      telephone: 'string',
      userPermits: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeContactDeptResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeContactDeptResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveRequest extends $tea.Model {
  /**
   * @example
   * @lALPDfmVUw19YdrNA-jNA-g
   */
  avatarMediaId?: string;
  deptIdList?: number[];
  deptOrderList?: UpdateCollegeContactExclusiveRequestDeptOrderList[];
  deptPositionSet?: UpdateCollegeContactExclusiveRequestDeptPositionSet[];
  deptTitleList?: UpdateCollegeContactExclusiveRequestDeptTitleList[];
  /**
   * @example
   * test@xxx.com
   */
  email?: string;
  /**
   * @example
   * college_student
   */
  empType?: string;
  extension?: { [key: string]: string };
  /**
   * @example
   * manager_userid
   */
  forceUpdateFields?: string;
  hideMobile?: boolean;
  /**
   * @example
   * 1597573616828
   */
  hiredDate?: number;
  /**
   * @example
   * 666666
   */
  jobNumber?: string;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  /**
   * @example
   * studentNo
   */
  loginIdType?: string;
  /**
   * @example
   * 123456
   */
  mainDeptId?: number;
  /**
   * @example
   * 001
   */
  managerUserid?: string;
  /**
   * @example
   * 185xxxx8888
   */
  mobile?: string;
  /**
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * 昵称
   */
  nickname?: string;
  /**
   * @example
   * test@xxx.com
   */
  orgEmail?: string;
  /**
   * @example
   * profession
   */
  orgEmailType?: string;
  /**
   * @example
   * 备注
   */
  remark?: string;
  seniorMode?: boolean;
  /**
   * @example
   * 010-86123456-2345
   */
  telephone?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * zhangsan666
   */
  userid?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      avatarMediaId: 'avatarMediaId',
      deptIdList: 'deptIdList',
      deptOrderList: 'deptOrderList',
      deptPositionSet: 'deptPositionSet',
      deptTitleList: 'deptTitleList',
      email: 'email',
      empType: 'empType',
      extension: 'extension',
      forceUpdateFields: 'forceUpdateFields',
      hideMobile: 'hideMobile',
      hiredDate: 'hiredDate',
      jobNumber: 'jobNumber',
      language: 'language',
      loginIdType: 'loginIdType',
      mainDeptId: 'mainDeptId',
      managerUserid: 'managerUserid',
      mobile: 'mobile',
      name: 'name',
      nickname: 'nickname',
      orgEmail: 'orgEmail',
      orgEmailType: 'orgEmailType',
      remark: 'remark',
      seniorMode: 'seniorMode',
      telephone: 'telephone',
      title: 'title',
      userid: 'userid',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      avatarMediaId: 'string',
      deptIdList: { 'type': 'array', 'itemType': 'number' },
      deptOrderList: { 'type': 'array', 'itemType': UpdateCollegeContactExclusiveRequestDeptOrderList },
      deptPositionSet: { 'type': 'array', 'itemType': UpdateCollegeContactExclusiveRequestDeptPositionSet },
      deptTitleList: { 'type': 'array', 'itemType': UpdateCollegeContactExclusiveRequestDeptTitleList },
      email: 'string',
      empType: 'string',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      forceUpdateFields: 'string',
      hideMobile: 'boolean',
      hiredDate: 'number',
      jobNumber: 'string',
      language: 'string',
      loginIdType: 'string',
      mainDeptId: 'number',
      managerUserid: 'string',
      mobile: 'string',
      name: 'string',
      nickname: 'string',
      orgEmail: 'string',
      orgEmailType: 'string',
      remark: 'string',
      seniorMode: 'boolean',
      telephone: 'string',
      title: 'string',
      userid: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeContactExclusiveResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeContactExclusiveResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactSceneStruHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactSceneStruRequest extends $tea.Model {
  /**
   * @example
   * 20
   */
  order?: number;
  /**
   * @example
   * 场景架构标识
   */
  sourceIdentifier?: string;
  /**
   * @example
   * 这是场景架构简介
   */
  struBrief?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 20
   */
  struId?: number;
  /**
   * @example
   * 科研架构
   */
  struName?: string;
  /**
   * @example
   * stru_research_dept
   */
  struType?: string;
  static names(): { [key: string]: string } {
    return {
      order: 'order',
      sourceIdentifier: 'sourceIdentifier',
      struBrief: 'struBrief',
      struId: 'struId',
      struName: 'struName',
      struType: 'struType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      order: 'number',
      sourceIdentifier: 'string',
      struBrief: 'string',
      struId: 'number',
      struName: 'string',
      struType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactSceneStruResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactSceneStruResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeContactSceneStruResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeContactSceneStruResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserRequest extends $tea.Model {
  deptIdList?: number[];
  deptOrderList?: UpdateCollegeContactUserRequestDeptOrderList[];
  deptPositionSet?: UpdateCollegeContactUserRequestDeptPositionSet[];
  deptTitleList?: UpdateCollegeContactUserRequestDeptTitleList[];
  /**
   * @example
   * test@xxx.com
   */
  email?: string;
  /**
   * @example
   * college_student
   */
  empType?: string;
  extension?: { [key: string]: string };
  /**
   * @example
   * manager_userid
   */
  forceUpdateFields?: string;
  hideMobile?: boolean;
  /**
   * @example
   * 1597573616828
   */
  hiredDate?: number;
  /**
   * @example
   * 666666
   */
  jobNumber?: string;
  /**
   * @example
   * zh_CN
   */
  language?: string;
  /**
   * @example
   * 123456
   */
  mainDeptId?: number;
  /**
   * @example
   * 001
   */
  managerUserid?: string;
  /**
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * test@xxx.com
   */
  orgEmail?: string;
  /**
   * @example
   * 备注
   */
  remark?: string;
  seniorMode?: boolean;
  /**
   * @example
   * 010-86123456-2345
   */
  telephone?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * zhangsan666
   */
  userid?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptIdList: 'deptIdList',
      deptOrderList: 'deptOrderList',
      deptPositionSet: 'deptPositionSet',
      deptTitleList: 'deptTitleList',
      email: 'email',
      empType: 'empType',
      extension: 'extension',
      forceUpdateFields: 'forceUpdateFields',
      hideMobile: 'hideMobile',
      hiredDate: 'hiredDate',
      jobNumber: 'jobNumber',
      language: 'language',
      mainDeptId: 'mainDeptId',
      managerUserid: 'managerUserid',
      name: 'name',
      orgEmail: 'orgEmail',
      remark: 'remark',
      seniorMode: 'seniorMode',
      telephone: 'telephone',
      title: 'title',
      userid: 'userid',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptIdList: { 'type': 'array', 'itemType': 'number' },
      deptOrderList: { 'type': 'array', 'itemType': UpdateCollegeContactUserRequestDeptOrderList },
      deptPositionSet: { 'type': 'array', 'itemType': UpdateCollegeContactUserRequestDeptPositionSet },
      deptTitleList: { 'type': 'array', 'itemType': UpdateCollegeContactUserRequestDeptTitleList },
      email: 'string',
      empType: 'string',
      extension: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      forceUpdateFields: 'string',
      hideMobile: 'boolean',
      hiredDate: 'number',
      jobNumber: 'string',
      language: 'string',
      mainDeptId: 'number',
      managerUserid: 'string',
      name: 'string',
      orgEmail: 'string',
      remark: 'string',
      seniorMode: 'boolean',
      telephone: 'string',
      title: 'string',
      userid: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeContactUserResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeContactUserResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeUserEmpTypeHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeUserEmpTypeRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * college_student
   */
  empType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * zhangsan666
   */
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      empType: 'empType',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      empType: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeUserEmpTypeResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeUserEmpTypeResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCollegeUserEmpTypeResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCollegeUserEmpTypeResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  courses?: UpdateCoursesOfClassRequestCourses[];
  /**
   * @remarks
   * This parameter is required.
   */
  sectionConfig?: UpdateCoursesOfClassRequestSectionConfig;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234536346
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courses: 'courses',
      sectionConfig: 'sectionConfig',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courses: { 'type': 'array', 'itemType': UpdateCoursesOfClassRequestCourses },
      sectionConfig: UpdateCoursesOfClassRequestSectionConfig,
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateCoursesOfClassResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateCoursesOfClassResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateEvaluatePerformanceCountHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateEvaluatePerformanceCountRequest extends $tea.Model {
  teacherId?: string;
  unreadData?: UpdateEvaluatePerformanceCountRequestUnreadData[];
  static names(): { [key: string]: string } {
    return {
      teacherId: 'teacherId',
      unreadData: 'unreadData',
    };
  }

  static types(): { [key: string]: any } {
    return {
      teacherId: 'string',
      unreadData: { 'type': 'array', 'itemType': UpdateEvaluatePerformanceCountRequestUnreadData },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateEvaluatePerformanceCountResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateEvaluatePerformanceCountResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateEvaluatePerformanceCountResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateEvaluatePerformanceCountResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateGuardianHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateGuardianRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 23434234234
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234324234
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 3545979
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * F
   */
  relation?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234234324
   */
  stuId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 324324324
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      classId: 'classId',
      operator: 'operator',
      relation: 'relation',
      stuId: 'stuId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      classId: 'number',
      operator: 'string',
      relation: 'string',
      stuId: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateGuardianResponseBody extends $tea.Model {
  result?: UpdateGuardianResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: UpdateGuardianResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateGuardianResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateGuardianResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateGuardianResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdatePhysicalClassroomHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdatePhysicalClassroomRequest extends $tea.Model {
  /**
   * @example
   * 主楼
   */
  classroomBuilding?: string;
  /**
   * @example
   * 主校区
   */
  classroomCampus?: string;
  /**
   * @example
   * 3层
   */
  classroomFloor?: string;
  /**
   * @example
   * 10001
   */
  classroomId?: number;
  /**
   * @example
   * 实验室
   */
  classroomName?: string;
  /**
   * @example
   * 301
   */
  classroomNumber?: string;
  /**
   * @example
   * Y
   */
  directBroadcast?: string;
  /**
   * @example
   * {}
   */
  ext?: string;
  /**
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classroomBuilding: 'classroomBuilding',
      classroomCampus: 'classroomCampus',
      classroomFloor: 'classroomFloor',
      classroomId: 'classroomId',
      classroomName: 'classroomName',
      classroomNumber: 'classroomNumber',
      directBroadcast: 'directBroadcast',
      ext: 'ext',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomBuilding: 'string',
      classroomCampus: 'string',
      classroomFloor: 'string',
      classroomId: 'number',
      classroomName: 'string',
      classroomNumber: 'string',
      directBroadcast: 'string',
      ext: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdatePhysicalClassroomResponseBody extends $tea.Model {
  /**
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdatePhysicalClassroomResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdatePhysicalClassroomResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdatePhysicalClassroomResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  attendParticipants?: UpdateRemoteClassCourseRequestAttendParticipants[];
  /**
   * @remarks
   * This parameter is required.
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * qdPP123456
   */
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 春天来了
   */
  courseName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1634184000000
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1634176800000
   */
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  teachingParticipant?: UpdateRemoteClassCourseRequestTeachingParticipant;
  static names(): { [key: string]: string } {
    return {
      attendParticipants: 'attendParticipants',
      authCode: 'authCode',
      courseCode: 'courseCode',
      courseName: 'courseName',
      endTime: 'endTime',
      startTime: 'startTime',
      teachingParticipant: 'teachingParticipant',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attendParticipants: { 'type': 'array', 'itemType': UpdateRemoteClassCourseRequestAttendParticipants },
      authCode: 'string',
      courseCode: 'string',
      courseName: 'string',
      endTime: 'number',
      startTime: 'number',
      teachingParticipant: UpdateRemoteClassCourseRequestTeachingParticipant,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseResponseBody extends $tea.Model {
  result?: string;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateRemoteClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateRemoteClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassDeviceHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassDeviceRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  authCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceName?: string;
  static names(): { [key: string]: string } {
    return {
      authCode: 'authCode',
      deviceCode: 'deviceCode',
      deviceName: 'deviceName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authCode: 'string',
      deviceCode: 'string',
      deviceName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassDeviceResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassDeviceResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateRemoteClassDeviceResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateRemoteClassDeviceResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateStudentHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateStudentRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 32432432432
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234324234
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 李四
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manager34234
   */
  operator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 23
   */
  studentNo?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234234234
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      classId: 'classId',
      name: 'name',
      operator: 'operator',
      studentNo: 'studentNo',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      classId: 'number',
      name: 'string',
      operator: 'string',
      studentNo: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateStudentResponseBody extends $tea.Model {
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateStudentResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateStudentResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateStudentResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GS1001
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高等数学
   */
  courseGroupIntroduce?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高等数学
   */
  courseGroupName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemModels?: UpdateUniversityCourseGroupRequestCourserGroupItemModels[];
  /**
   * @example
   * {}
   */
  ext?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * manger1234
   */
  opUserId?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      courseGroupIntroduce: 'courseGroupIntroduce',
      courseGroupName: 'courseGroupName',
      courserGroupItemModels: 'courserGroupItemModels',
      ext: 'ext',
      opUserId: 'opUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      courseGroupIntroduce: 'string',
      courseGroupName: 'string',
      courserGroupItemModels: { 'type': 'array', 'itemType': UpdateUniversityCourseGroupRequestCourserGroupItemModels },
      ext: 'string',
      opUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupResponseBody extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  result?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateUniversityCourseGroupResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UpdateUniversityCourseGroupResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UploadLearningDataCallbackHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UploadLearningDataCallbackRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * HOMEWORK
   */
  bizType?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * dingxxxxxxxxxxxxxxxxxxxx
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  deptId?: number;
  /**
   * @example
   * 1672502400000
   */
  generatedTime?: number;
  /**
   * @example
   * 0123456
   */
  studentUserId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * shuxue
   */
  subjectCode?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      bizType: 'bizType',
      corpId: 'corpId',
      deptId: 'deptId',
      generatedTime: 'generatedTime',
      studentUserId: 'studentUserId',
      subjectCode: 'subjectCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      bizType: 'string',
      corpId: 'string',
      deptId: 'number',
      generatedTime: 'number',
      studentUserId: 'string',
      subjectCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UploadLearningDataCallbackResponseBody extends $tea.Model {
  result?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UploadLearningDataCallbackResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UploadLearningDataCallbackResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: UploadLearningDataCallbackResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VPaasProxyHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VPaasProxyRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * init
   */
  actionCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * {"a":"testA","b":"testB"}
   */
  params?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVGpgpjjbBS1Pg1tYx23KDJiXokVdKFLdJznKxQe+fZcIOtcQDIYrfrBfHmiC/gASeF5NUTSrwjkr/i/2gqhIIxRinNJQm8L4GJ6fRGjN8tND7AfhfkGYIfOJCLFSiaYSa4TCM7WsmztkpR7DSvb4P+K/ppqYFfUB46a9nCcvecQIDAQAB
   */
  publicKey?: string;
  static names(): { [key: string]: string } {
    return {
      actionCode: 'actionCode',
      params: 'params',
      publicKey: 'publicKey',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionCode: 'string',
      params: 'string',
      publicKey: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VPaasProxyResponseBody extends $tea.Model {
  result?: string;
  ticket?: string;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      ticket: 'ticket',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: 'string',
      ticket: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VPaasProxyResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: VPaasProxyResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: VPaasProxyResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateNewGradeManagerHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateNewGradeManagerRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VYn5fYjORJMi
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateNewGradeManagerResponseBody extends $tea.Model {
  matchRule?: boolean;
  static names(): { [key: string]: string } {
    return {
      matchRule: 'matchRule',
    };
  }

  static types(): { [key: string]: any } {
    return {
      matchRule: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateNewGradeManagerResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ValidateNewGradeManagerResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ValidateNewGradeManagerResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateUserRoleHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateUserRoleRequest extends $tea.Model {
  /**
   * @example
   * 1677600000000
   */
  timeThreshold?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * VYn5fYjORJMi
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      timeThreshold: 'timeThreshold',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      timeThreshold: 'number',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateUserRoleResponseBody extends $tea.Model {
  matchParentIdentity?: boolean;
  matchTeacherIdentity?: boolean;
  static names(): { [key: string]: string } {
    return {
      matchParentIdentity: 'matchParentIdentity',
      matchTeacherIdentity: 'matchTeacherIdentity',
    };
  }

  static types(): { [key: string]: any } {
    return {
      matchParentIdentity: 'boolean',
      matchTeacherIdentity: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ValidateUserRoleResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: ValidateUserRoleResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: ValidateUserRoleResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduOrgCertificationHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduOrgCertificationRequest extends $tea.Model {
  /**
   * @example
   * TEST
   */
  bizCode?: string;
  /**
   * @example
   * ding1234
   */
  targetCorpId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      targetCorpId: 'targetCorpId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      targetCorpId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduOrgCertificationResponseBody extends $tea.Model {
  certificated?: boolean;
  static names(): { [key: string]: string } {
    return {
      certificated: 'certificated',
    };
  }

  static types(): { [key: string]: any } {
    return {
      certificated: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduOrgCertificationResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: VerifyEduOrgCertificationResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: VerifyEduOrgCertificationResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduUserCertificationHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduUserCertificationRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * EDU_TEST
   */
  bizCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding1234
   */
  targetCorpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * user123
   */
  targetUserId?: string;
  static names(): { [key: string]: string } {
    return {
      bizCode: 'bizCode',
      targetCorpId: 'targetCorpId',
      targetUserId: 'targetUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizCode: 'string',
      targetCorpId: 'string',
      targetUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduUserCertificationResponseBody extends $tea.Model {
  certificated?: boolean;
  certificatedCorpId?: string;
  certificatedOrgName?: string;
  certificatedUserId?: string;
  static names(): { [key: string]: string } {
    return {
      certificated: 'certificated',
      certificatedCorpId: 'certificatedCorpId',
      certificatedOrgName: 'certificatedOrgName',
      certificatedUserId: 'certificatedUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      certificated: 'boolean',
      certificatedCorpId: 'string',
      certificatedOrgName: 'string',
      certificatedUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class VerifyEduUserCertificationResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: VerifyEduUserCertificationResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: VerifyEduUserCertificationResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassCourseHeaders extends $tea.Model {
  commonHeaders?: { [key: string]: string };
  xAcsDingtalkAccessToken?: string;
  static names(): { [key: string]: string } {
    return {
      commonHeaders: 'commonHeaders',
      xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
    };
  }

  static types(): { [key: string]: any } {
    return {
      commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      xAcsDingtalkAccessToken: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassCourseRequest extends $tea.Model {
  /**
   * @example
   * class_xxx
   */
  classId?: string;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course_xxx
   */
  isvCourseId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassCourseResponseBody extends $tea.Model {
  result?: QueryClassCourseResponseBodyResult;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      result: 'result',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      result: QueryClassCourseResponseBodyResult,
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassCourseResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryClassCourseResponseBody;
  static names(): { [key: string]: string } {
    return {
      headers: 'headers',
      statusCode: 'statusCode',
      body: 'body',
    };
  }

  static types(): { [key: string]: any } {
    return {
      headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
      statusCode: 'number',
      body: QueryClassCourseResponseBody,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsRequestDepts extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniDeptsResponseBodyResult extends $tea.Model {
  corpId?: string;
  deptId?: number;
  deptType?: string;
  hasSubDept?: boolean;
  name?: string;
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      deptId: 'deptId',
      deptType: 'deptType',
      hasSubDept: 'hasSubDept',
      name: 'name',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      deptId: 'number',
      deptType: 'string',
      hasSubDept: 'boolean',
      name: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeAlumniUserInfoResponseBodyResult extends $tea.Model {
  success?: boolean;
  type?: string;
  static names(): { [key: string]: string } {
    return {
      success: 'success',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      success: 'boolean',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveRequestDeptOrderList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 1
   */
  order?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      order: 'order',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      order: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveRequestDeptPositionSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 001
   */
  managerUserId?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      managerUserId: 'managerUserId',
      title: 'title',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      managerUserId: 'string',
      title: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveRequestDeptTitleList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactExclusiveResponseBodyResult extends $tea.Model {
  createResult?: number;
  unionId?: string;
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      createResult: 'createResult',
      unionId: 'unionId',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createResult: 'number',
      unionId: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserRequestDeptOrderList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 1
   */
  order?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      order: 'order',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      order: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserRequestDeptPositionSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 001
   */
  managerUserId?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      managerUserId: 'managerUserId',
      title: 'title',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      managerUserId: 'string',
      title: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserRequestDeptTitleList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddCollegeContactUserResponseBodyResult extends $tea.Model {
  createResult?: number;
  unionId?: string;
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      createResult: 'createResult',
      unionId: 'unionId',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createResult: 'number',
      unionId: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class AddEvaluatePerformanceRequestEvaluationData extends $tea.Model {
  evaluationContent?: string;
  eventTime?: string;
  id?: string;
  studentId?: string;
  teacherId?: string;
  static names(): { [key: string]: string } {
    return {
      evaluationContent: 'evaluationContent',
      eventTime: 'eventTime',
      id: 'id',
      studentId: 'studentId',
      teacherId: 'teacherId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      evaluationContent: 'string',
      eventTime: 'string',
      id: 'string',
      studentId: 'string',
      teacherId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequestDataCardRuleItemParamList extends $tea.Model {
  cardRuleAttr?: string;
  cardTaskCode?: string;
  dailyDubbing?: number;
  relationId?: string;
  relationTitle?: string;
  relationUrl?: string;
  static names(): { [key: string]: string } {
    return {
      cardRuleAttr: 'cardRuleAttr',
      cardTaskCode: 'cardTaskCode',
      dailyDubbing: 'dailyDubbing',
      relationId: 'relationId',
      relationTitle: 'relationTitle',
      relationUrl: 'relationUrl',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardRuleAttr: 'string',
      cardTaskCode: 'string',
      dailyDubbing: 'number',
      relationId: 'string',
      relationTitle: 'string',
      relationUrl: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequestDataOrgClassStudentGroupListClassListStudents extends $tea.Model {
  name?: string;
  staffId?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      staffId: 'staffId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      staffId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequestDataOrgClassStudentGroupListClassList extends $tea.Model {
  classId?: number;
  className?: string;
  students?: BatchCreateRequestDataOrgClassStudentGroupListClassListStudents[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      className: 'className',
      students: 'students',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      className: 'string',
      students: { 'type': 'array', 'itemType': BatchCreateRequestDataOrgClassStudentGroupListClassListStudents },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequestDataOrgClassStudentGroupList extends $tea.Model {
  classList?: BatchCreateRequestDataOrgClassStudentGroupListClassList[];
  corpId?: string;
  static names(): { [key: string]: string } {
    return {
      classList: 'classList',
      corpId: 'corpId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classList: { 'type': 'array', 'itemType': BatchCreateRequestDataOrgClassStudentGroupListClassList },
      corpId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateRequestData extends $tea.Model {
  /**
   * @example
   * true
   */
  canReissueCard?: boolean;
  /**
   * @example
   * 3
   */
  cardCycle?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  cardFrequency?: number[];
  /**
   * @remarks
   * This parameter is required.
   */
  cardRuleItemParamList?: BatchCreateRequestDataCardRuleItemParamList[];
  classIds?: string[];
  classNames?: string[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 打卡的内容
   */
  content?: string;
  effectDate?: number;
  medias?: string;
  needMetering?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  orgClassStudentGroupList?: BatchCreateRequestDataOrgClassStudentGroupList[];
  /**
   * @remarks
   * This parameter is required.
   */
  remindHour?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  remindMinute?: number;
  targetRole?: string;
  templateId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  title?: string;
  unitOfMeasurement?: string;
  static names(): { [key: string]: string } {
    return {
      canReissueCard: 'canReissueCard',
      cardCycle: 'cardCycle',
      cardFrequency: 'cardFrequency',
      cardRuleItemParamList: 'cardRuleItemParamList',
      classIds: 'classIds',
      classNames: 'classNames',
      content: 'content',
      effectDate: 'effectDate',
      medias: 'medias',
      needMetering: 'needMetering',
      orgClassStudentGroupList: 'orgClassStudentGroupList',
      remindHour: 'remindHour',
      remindMinute: 'remindMinute',
      targetRole: 'targetRole',
      templateId: 'templateId',
      title: 'title',
      unitOfMeasurement: 'unitOfMeasurement',
    };
  }

  static types(): { [key: string]: any } {
    return {
      canReissueCard: 'boolean',
      cardCycle: 'number',
      cardFrequency: { 'type': 'array', 'itemType': 'number' },
      cardRuleItemParamList: { 'type': 'array', 'itemType': BatchCreateRequestDataCardRuleItemParamList },
      classIds: { 'type': 'array', 'itemType': 'string' },
      classNames: { 'type': 'array', 'itemType': 'string' },
      content: 'string',
      effectDate: 'number',
      medias: 'string',
      needMetering: 'string',
      orgClassStudentGroupList: { 'type': 'array', 'itemType': BatchCreateRequestDataOrgClassStudentGroupList },
      remindHour: 'number',
      remindMinute: 'number',
      targetRole: 'string',
      templateId: 'number',
      title: 'string',
      unitOfMeasurement: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateResponseBodyResult extends $tea.Model {
  corpIdCardIdMap?: { [key: string]: string };
  static names(): { [key: string]: string } {
    return {
      corpIdCardIdMap: 'corpIdCardIdMap',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpIdCardIdMap: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseRequestCourseDetailItemListTeacherList extends $tea.Model {
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * staff_xxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateCourseRequestCourseDetailItemList extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * classroom_xxx
   */
  classRoomId?: string;
  /**
   * @example
   * 音乐教室
   */
  classRoomName?: string;
  /**
   * @example
   * courseCode_xxx
   */
  courseCode?: string;
  /**
   * @example
   * 0
   */
  courseDate?: number;
  /**
   * @example
   * 语言
   */
  courseName?: string;
  /**
   * @example
   * 1
   */
  courseWeek?: number;
  /**
   * @example
   * 0
   */
  endTime?: number;
  /**
   * @example
   * courseId_xxx
   */
  isvCourseId?: string;
  /**
   * @example
   * memo_xxx
   */
  memo?: string;
  /**
   * @example
   * 0
   */
  startTime?: number;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 1
   */
  teachWeek?: number;
  teacherList?: BatchCreateCourseRequestCourseDetailItemListTeacherList[];
  /**
   * @example
   * 第一节
   */
  timeslotName?: string;
  /**
   * @example
   * 1
   */
  timeslotNum?: number;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classRoomId: 'classRoomId',
      classRoomName: 'classRoomName',
      courseCode: 'courseCode',
      courseDate: 'courseDate',
      courseName: 'courseName',
      courseWeek: 'courseWeek',
      endTime: 'endTime',
      isvCourseId: 'isvCourseId',
      memo: 'memo',
      startTime: 'startTime',
      status: 'status',
      teachWeek: 'teachWeek',
      teacherList: 'teacherList',
      timeslotName: 'timeslotName',
      timeslotNum: 'timeslotNum',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classRoomId: 'string',
      classRoomName: 'string',
      courseCode: 'string',
      courseDate: 'number',
      courseName: 'string',
      courseWeek: 'number',
      endTime: 'number',
      isvCourseId: 'string',
      memo: 'string',
      startTime: 'number',
      status: 'number',
      teachWeek: 'number',
      teacherList: { 'type': 'array', 'itemType': BatchCreateCourseRequestCourseDetailItemListTeacherList },
      timeslotName: 'string',
      timeslotNum: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateStudentClassRequestStudentList extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * 小明
   */
  studentName?: string;
  /**
   * @example
   * studentxxx
   */
  studentUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      studentName: 'studentName',
      studentUserId: 'studentUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      studentName: 'string',
      studentUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchCreateTeacherCourseRequestTeacherCourseDetailItemList extends $tea.Model {
  /**
   * @example
   * {"key":"value"}
   */
  attributes?: string;
  /**
   * @example
   * courseIdxxx
   */
  isvCourseId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      isvCourseId: 'isvCourseId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      isvCourseId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWRequestOpenSelectItemListClassListStudents extends $tea.Model {
  avatar?: string;
  name?: string;
  staffId?: string;
  static names(): { [key: string]: string } {
    return {
      avatar: 'avatar',
      name: 'name',
      staffId: 'staffId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      avatar: 'string',
      name: 'string',
      staffId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWRequestOpenSelectItemListClassList extends $tea.Model {
  all?: boolean;
  classId?: string;
  className?: string;
  students?: BatchOrgCreateHWRequestOpenSelectItemListClassListStudents[];
  static names(): { [key: string]: string } {
    return {
      all: 'all',
      classId: 'classId',
      className: 'className',
      students: 'students',
    };
  }

  static types(): { [key: string]: any } {
    return {
      all: 'boolean',
      classId: 'string',
      className: 'string',
      students: { 'type': 'array', 'itemType': BatchOrgCreateHWRequestOpenSelectItemListClassListStudents },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWRequestOpenSelectItemList extends $tea.Model {
  classList?: BatchOrgCreateHWRequestOpenSelectItemListClassList[];
  corpId?: string;
  selectedClassesDesc?: string;
  static names(): { [key: string]: string } {
    return {
      classList: 'classList',
      corpId: 'corpId',
      selectedClassesDesc: 'selectedClassesDesc',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classList: { 'type': 'array', 'itemType': BatchOrgCreateHWRequestOpenSelectItemListClassList },
      corpId: 'string',
      selectedClassesDesc: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWResponseBodyResultPublishList extends $tea.Model {
  corpid?: string;
  hwid?: number;
  static names(): { [key: string]: string } {
    return {
      corpid: 'corpid',
      hwid: 'hwid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpid: 'string',
      hwid: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class BatchOrgCreateHWResponseBodyResult extends $tea.Model {
  publishList?: BatchOrgCreateHWResponseBodyResultPublishList[];
  static names(): { [key: string]: string } {
    return {
      publishList: 'publishList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      publishList: { 'type': 'array', 'itemType': BatchOrgCreateHWResponseBodyResultPublishList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsResponseBodyResultCards extends $tea.Model {
  /**
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 234234234
   */
  cardId?: number;
  /**
   * @example
   * 2
   */
  cardStatus?: number;
  /**
   * @example
   * 打卡任务
   */
  content?: string;
  /**
   * @example
   * dingdf19b4ee0d73233735c2f4657eb6378f
   */
  corpId?: string;
  /**
   * @example
   * 2023-11-16
   */
  effectTime?: string;
  finished?: boolean;
  /**
   * @example
   * 2023-11-19
   */
  gmtCreate?: string;
  /**
   * @example
   * 2023-11-16
   */
  optEndTime?: string;
  /**
   * @example
   * 234234234
   */
  optEndUserId?: string;
  /**
   * @example
   * 张三
   */
  optEndUserName?: string;
  /**
   * @example
   * 2023-11-16
   */
  sendTime?: string;
  /**
   * @example
   * 2023-11-16
   */
  startTime?: string;
  /**
   * @example
   * 2
   */
  status?: number;
  /**
   * @example
   * 23234234
   */
  teacherId?: string;
  /**
   * @example
   * 张三
   */
  teacherName?: string;
  /**
   * @example
   * 每日锻炼
   */
  title?: string;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      cardBizCode: 'cardBizCode',
      cardId: 'cardId',
      cardStatus: 'cardStatus',
      content: 'content',
      corpId: 'corpId',
      effectTime: 'effectTime',
      finished: 'finished',
      gmtCreate: 'gmtCreate',
      optEndTime: 'optEndTime',
      optEndUserId: 'optEndUserId',
      optEndUserName: 'optEndUserName',
      sendTime: 'sendTime',
      startTime: 'startTime',
      status: 'status',
      teacherId: 'teacherId',
      teacherName: 'teacherName',
      title: 'title',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizCode: 'string',
      cardId: 'number',
      cardStatus: 'number',
      content: 'string',
      corpId: 'string',
      effectTime: 'string',
      finished: 'boolean',
      gmtCreate: 'string',
      optEndTime: 'string',
      optEndUserId: 'string',
      optEndUserName: 'string',
      sendTime: 'string',
      startTime: 'string',
      status: 'number',
      teacherId: 'string',
      teacherName: 'string',
      title: 'string',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardBatchQueryCardsResponseBodyResult extends $tea.Model {
  cards?: CardBatchQueryCardsResponseBodyResultCards[];
  static names(): { [key: string]: string } {
    return {
      cards: 'cards',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cards: { 'type': 'array', 'itemType': CardBatchQueryCardsResponseBodyResultCards },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardResponseBodyResult extends $tea.Model {
  /**
   * @example
   * www.dingtalk.com
   */
  attr?: string;
  /**
   * @example
   * industry_center
   */
  cardBizCode?: string;
  /**
   * @example
   * 23424234
   */
  cardBizId?: string;
  /**
   * @example
   * 1
   */
  cardContentCount?: number;
  /**
   * @example
   * 2
   */
  cardCycle?: number;
  cardFrequency?: number[];
  /**
   * @example
   * 234234234324
   */
  cardId?: number;
  /**
   * @example
   * 1
   */
  cardStatus?: number;
  /**
   * @example
   * www.dingtalk.com
   */
  cardUrl?: string;
  /**
   * @example
   * 音乐
   */
  categoryContentTag?: string;
  /**
   * @example
   * www.dingtalk.com
   */
  categoryCoverImageUrl?: string;
  /**
   * @example
   * www.dingtalk.com
   */
  categoryCreateCardSmallImageUrl?: string;
  /**
   * @example
   * www.dingtalk.com
   */
  categoryListSmallImageUrl?: string;
  /**
   * @example
   * 美术
   */
  categoryName?: string;
  classIds?: string[];
  classNames?: string[];
  /**
   * @example
   * 打卡任务
   */
  content?: string;
  /**
   * @example
   * dingdf19b4ee0d73233735c2f4657eb6378f
   */
  corpId?: string;
  /**
   * @example
   * 2023-11-15
   */
  effectTime?: string;
  finished?: boolean;
  /**
   * @example
   * www.dingtalk.com
   */
  media?: string;
  /**
   * @example
   * 2023-11-15
   */
  optEndTime?: string;
  /**
   * @example
   * 234234234
   */
  optEndUserId?: string;
  /**
   * @example
   * 张三
   */
  optEndUserName?: string;
  /**
   * @example
   * 20
   */
  remindNotPunchCardHour?: number;
  /**
   * @example
   * 10
   */
  remindNotPunchCardMinute?: number;
  /**
   * @example
   * 2023-11-15
   */
  sendTime?: string;
  /**
   * @example
   * YUFANAI
   */
  sourceType?: string;
  /**
   * @example
   * 2023-11-15
   */
  startTime?: string;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 424234324324
   */
  systemTime?: number;
  /**
   * @example
   * 234234234
   */
  teacherId?: string;
  /**
   * @example
   * 张三
   */
  teacherName?: string;
  /**
   * @example
   * www.dingtalk.com
   */
  templateCoverImageUrl?: string;
  /**
   * @example
   * 每日复习
   */
  title?: string;
  /**
   * @example
   * 3
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attr: 'attr',
      cardBizCode: 'cardBizCode',
      cardBizId: 'cardBizId',
      cardContentCount: 'cardContentCount',
      cardCycle: 'cardCycle',
      cardFrequency: 'cardFrequency',
      cardId: 'cardId',
      cardStatus: 'cardStatus',
      cardUrl: 'cardUrl',
      categoryContentTag: 'categoryContentTag',
      categoryCoverImageUrl: 'categoryCoverImageUrl',
      categoryCreateCardSmallImageUrl: 'categoryCreateCardSmallImageUrl',
      categoryListSmallImageUrl: 'categoryListSmallImageUrl',
      categoryName: 'categoryName',
      classIds: 'classIds',
      classNames: 'classNames',
      content: 'content',
      corpId: 'corpId',
      effectTime: 'effectTime',
      finished: 'finished',
      media: 'media',
      optEndTime: 'optEndTime',
      optEndUserId: 'optEndUserId',
      optEndUserName: 'optEndUserName',
      remindNotPunchCardHour: 'remindNotPunchCardHour',
      remindNotPunchCardMinute: 'remindNotPunchCardMinute',
      sendTime: 'sendTime',
      sourceType: 'sourceType',
      startTime: 'startTime',
      status: 'status',
      systemTime: 'systemTime',
      teacherId: 'teacherId',
      teacherName: 'teacherName',
      templateCoverImageUrl: 'templateCoverImageUrl',
      title: 'title',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attr: 'string',
      cardBizCode: 'string',
      cardBizId: 'string',
      cardContentCount: 'number',
      cardCycle: 'number',
      cardFrequency: { 'type': 'array', 'itemType': 'number' },
      cardId: 'number',
      cardStatus: 'number',
      cardUrl: 'string',
      categoryContentTag: 'string',
      categoryCoverImageUrl: 'string',
      categoryCreateCardSmallImageUrl: 'string',
      categoryListSmallImageUrl: 'string',
      categoryName: 'string',
      classIds: { 'type': 'array', 'itemType': 'string' },
      classNames: { 'type': 'array', 'itemType': 'string' },
      content: 'string',
      corpId: 'string',
      effectTime: 'string',
      finished: 'boolean',
      media: 'string',
      optEndTime: 'string',
      optEndUserId: 'string',
      optEndUserName: 'string',
      remindNotPunchCardHour: 'number',
      remindNotPunchCardMinute: 'number',
      sendTime: 'string',
      sourceType: 'string',
      startTime: 'string',
      status: 'number',
      systemTime: 'number',
      teacherId: 'string',
      teacherName: 'string',
      templateCoverImageUrl: 'string',
      title: 'string',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponseBodyResultClassStatisticsProcess extends $tea.Model {
  /**
   * @example
   * 2023-11-01
   */
  date?: string;
  /**
   * @example
   * 11
   */
  finishedStudentsNum?: number;
  /**
   * @example
   * 11
   */
  needFinishStudentsNum?: number;
  /**
   * @example
   * CARD_TASK_CODE_0
   */
  taskCode?: string;
  /**
   * @example
   * 2023-11-01
   */
  today?: string;
  static names(): { [key: string]: string } {
    return {
      date: 'date',
      finishedStudentsNum: 'finishedStudentsNum',
      needFinishStudentsNum: 'needFinishStudentsNum',
      taskCode: 'taskCode',
      today: 'today',
    };
  }

  static types(): { [key: string]: any } {
    return {
      date: 'string',
      finishedStudentsNum: 'number',
      needFinishStudentsNum: 'number',
      taskCode: 'string',
      today: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponseBodyResultClassStatistics extends $tea.Model {
  /**
   * @example
   * 234234234
   */
  cardBizId?: string;
  /**
   * @example
   * 二年级1班
   */
  cardBizName?: string;
  /**
   * @example
   * 3424234
   */
  classId?: string;
  /**
   * @example
   * 二年级1班
   */
  className?: string;
  process?: CardGetCardFinishProgressResponseBodyResultClassStatisticsProcess[];
  static names(): { [key: string]: string } {
    return {
      cardBizId: 'cardBizId',
      cardBizName: 'cardBizName',
      classId: 'classId',
      className: 'className',
      process: 'process',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardBizId: 'string',
      cardBizName: 'string',
      classId: 'string',
      className: 'string',
      process: { 'type': 'array', 'itemType': CardGetCardFinishProgressResponseBodyResultClassStatisticsProcess },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponseBodyResultPatriarchStatistics extends $tea.Model {
  /**
   * @example
   * CARD_TASK_CODE_0
   */
  cardTaskCode?: string;
  /**
   * @example
   * 2023-11-01
   */
  date?: string;
  isFinished?: boolean;
  isFinishedByReissueCard?: boolean;
  isLastDay?: boolean;
  reissueCard?: boolean;
  /**
   * @example
   * 23424234
   */
  studentId?: string;
  /**
   * @example
   * 李四
   */
  studentName?: string;
  /**
   * @example
   * 2023-11-01
   */
  today?: string;
  /**
   * @example
   * 234234234
   */
  userSubTaskId?: number;
  static names(): { [key: string]: string } {
    return {
      cardTaskCode: 'cardTaskCode',
      date: 'date',
      isFinished: 'isFinished',
      isFinishedByReissueCard: 'isFinishedByReissueCard',
      isLastDay: 'isLastDay',
      reissueCard: 'reissueCard',
      studentId: 'studentId',
      studentName: 'studentName',
      today: 'today',
      userSubTaskId: 'userSubTaskId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      cardTaskCode: 'string',
      date: 'string',
      isFinished: 'boolean',
      isFinishedByReissueCard: 'boolean',
      isLastDay: 'boolean',
      reissueCard: 'boolean',
      studentId: 'string',
      studentName: 'string',
      today: 'string',
      userSubTaskId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardGetCardFinishProgressResponseBodyResult extends $tea.Model {
  classStatistics?: CardGetCardFinishProgressResponseBodyResultClassStatistics[];
  patriarchStatistics?: CardGetCardFinishProgressResponseBodyResultPatriarchStatistics[];
  studentNameList?: string[];
  static names(): { [key: string]: string } {
    return {
      classStatistics: 'classStatistics',
      patriarchStatistics: 'patriarchStatistics',
      studentNameList: 'studentNameList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classStatistics: { 'type': 'array', 'itemType': CardGetCardFinishProgressResponseBodyResultClassStatistics },
      patriarchStatistics: { 'type': 'array', 'itemType': CardGetCardFinishProgressResponseBodyResultPatriarchStatistics },
      studentNameList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponseBodyResultPostsAuthor extends $tea.Model {
  /**
   * @example
   * 博澜爸爸
   */
  showName?: string;
  /**
   * @example
   * 234234234
   */
  userId?: string;
  /**
   * @example
   * guardian
   */
  userRole?: string;
  static names(): { [key: string]: string } {
    return {
      showName: 'showName',
      userId: 'userId',
      userRole: 'userRole',
    };
  }

  static types(): { [key: string]: any } {
    return {
      showName: 'string',
      userId: 'string',
      userRole: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponseBodyResultPostsContent extends $tea.Model {
  /**
   * @example
   * 0
   */
  contentType?: number;
  /**
   * @example
   * {\"cardEditRedirectDTO\":{\"jumpType\":\"internal\"},\"content\":\"测试\",\"medias\":\"\\\"[{\\\\\\\"type\\\\\\\":\\\\\\\"image\\\\\\\",\\\\\\\"data\\\\\\\":{\\\\\\\"mediaUrl\\\\\\\":\\\\\\\"https://static.dingtalk.com/media/lQDPNDWzHQNv3fjNBQDNAlCwKIvuyoJrOfAFLEMmYrpsAA_592_1280.jpg\\\\\\\",\\\\\\\"thumbnailUrl\\\\\\\":\\\\\\\"https://static.dingtalk.com/media/lQDPNDWzHQNv3fjNBQDNAlCwKIvuyoJrOfAFLEMmYrpsAA_592_1280.jpg_200x200.jpg?bizType=edu_card\\\\\\\"}}]\\\"\",\"reissueCard\":false,\"resultEvaluation\":\"\",\"showName\":\"博澜爸爸\",\"sourceType\":\"\",\"studentId\":\"3000000000847390208\",\"unitOfMeasurement\":\"\"}
   */
  text?: string;
  static names(): { [key: string]: string } {
    return {
      contentType: 'contentType',
      text: 'text',
    };
  }

  static types(): { [key: string]: any } {
    return {
      contentType: 'number',
      text: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponseBodyResultPosts extends $tea.Model {
  author?: CardQueryCardFeedsResponseBodyResultPostsAuthor;
  /**
   * @example
   * 3
   */
  bizType?: number;
  content?: CardQueryCardFeedsResponseBodyResultPostsContent;
  /**
   * @example
   * 23424234234
   */
  createAt?: number;
  /**
   * @example
   * 0
   */
  feedType?: number;
  /**
   * @example
   * 232423423
   */
  postId?: number;
  /**
   * @example
   * 0
   */
  status?: number;
  static names(): { [key: string]: string } {
    return {
      author: 'author',
      bizType: 'bizType',
      content: 'content',
      createAt: 'createAt',
      feedType: 'feedType',
      postId: 'postId',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      author: CardQueryCardFeedsResponseBodyResultPostsAuthor,
      bizType: 'number',
      content: CardQueryCardFeedsResponseBodyResultPostsContent,
      createAt: 'number',
      feedType: 'number',
      postId: 'number',
      status: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CardQueryCardFeedsResponseBodyResult extends $tea.Model {
  hasMore?: boolean;
  posts?: CardQueryCardFeedsResponseBodyResultPosts[];
  static names(): { [key: string]: string } {
    return {
      hasMore: 'hasMore',
      posts: 'posts',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasMore: 'boolean',
      posts: { 'type': 'array', 'itemType': CardQueryCardFeedsResponseBodyResultPosts },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateAppOrderRequestDetailList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234000
   */
  goodsId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 绘画图书
   */
  goodsName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  goodsPrice?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  goodsQuantity?: number;
  static names(): { [key: string]: string } {
    return {
      goodsId: 'goodsId',
      goodsName: 'goodsName',
      goodsPrice: 'goodsPrice',
      goodsQuantity: 'goodsQuantity',
    };
  }

  static types(): { [key: string]: any } {
    return {
      goodsId: 'string',
      goodsName: 'string',
      goodsPrice: 'number',
      goodsQuantity: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptRequestHideSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptRequestOuterSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactDeptResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 20
   */
  deptId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCollegeContactSceneStruResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 20
   */
  struId?: number;
  /**
   * @example
   * 20
   */
  studentDeptId?: number;
  /**
   * @example
   * 20
   */
  teacherDeptId?: number;
  static names(): { [key: string]: string } {
    return {
      struId: 'struId',
      studentDeptId: 'studentDeptId',
      teacherDeptId: 'teacherDeptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      struId: 'number',
      studentDeptId: 'number',
      teacherDeptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCourseRequestTeacherList extends $tea.Model {
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * staff_xxx
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassRequestCustomClass extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021级培训班
   */
  name?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomClassResponseBodyResult extends $tea.Model {
  deptId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptRequestCustomDept extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 紫金港校区
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * custom_dept
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateCustomDeptResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 1234
   */
  deptId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateInviteUrlResponseBodyResult extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  inviteUrl?: string;
  static names(): { [key: string]: string } {
    return {
      inviteUrl: 'inviteUrl',
    };
  }

  static types(): { [key: string]: any } {
    return {
      inviteUrl: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderRequestDetailList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  itemAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 测试商品
   */
  itemName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  scene?: number;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      itemAmount: 'itemAmount',
      itemName: 'itemName',
      scene: 'scene',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      itemAmount: 'number',
      itemName: 'string',
      scene: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateOrderFlowRequestDetailList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 100
   */
  itemAmount?: number;
  /**
   * @example
   * 123
   */
  itemId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 测试商品
   */
  itemName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  scene?: number;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      itemAmount: 'itemAmount',
      itemId: 'itemId',
      itemName: 'itemName',
      scene: 'scene',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      itemAmount: 'number',
      itemId: 'number',
      itemName: 'string',
      scene: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseRequestAttendParticipants extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding23456
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234567
   */
  participantId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      participantId: 'participantId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      participantId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseRequestTeachingParticipant extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding1234
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  participantId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      participantId: 'participantId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      participantId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateRemoteClassCourseResponseBodyResult extends $tea.Model {
  courseCode?: string;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSectionEndDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSectionModelsSectionEndTime extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSectionModelsSectionStartTime extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSectionModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  sectionEndTime?: CreateSectionConfigRequestSectionConfigsSectionModelsSectionEndTime;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 第一节
   */
  sectionName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionStartTime?: CreateSectionConfigRequestSectionConfigsSectionModelsSectionStartTime;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * COURSE：上课节次 REST：休息节次
   */
  sectionType?: string;
  static names(): { [key: string]: string } {
    return {
      sectionEndTime: 'sectionEndTime',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      sectionStartTime: 'sectionStartTime',
      sectionType: 'sectionType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionEndTime: CreateSectionConfigRequestSectionConfigsSectionModelsSectionEndTime,
      sectionIndex: 'number',
      sectionName: 'string',
      sectionStartTime: CreateSectionConfigRequestSectionConfigsSectionModelsSectionStartTime,
      sectionType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSectionStartDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 9
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSemesterEndDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigsSemesterStartDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 8
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSectionConfigRequestSectionConfigs extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 第一学期课表
   */
  scheduleName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021-2022
   */
  schoolYear?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionEndDate?: CreateSectionConfigRequestSectionConfigsSectionEndDate;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionModels?: CreateSectionConfigRequestSectionConfigsSectionModels[];
  /**
   * @remarks
   * This parameter is required.
   */
  sectionStartDate?: CreateSectionConfigRequestSectionConfigsSectionStartDate;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  semester?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  semesterEndDate?: CreateSectionConfigRequestSectionConfigsSemesterEndDate;
  /**
   * @remarks
   * This parameter is required.
   */
  semesterStartDate?: CreateSectionConfigRequestSectionConfigsSemesterStartDate;
  static names(): { [key: string]: string } {
    return {
      scheduleName: 'scheduleName',
      schoolYear: 'schoolYear',
      sectionEndDate: 'sectionEndDate',
      sectionModels: 'sectionModels',
      sectionStartDate: 'sectionStartDate',
      semester: 'semester',
      semesterEndDate: 'semesterEndDate',
      semesterStartDate: 'semesterStartDate',
    };
  }

  static types(): { [key: string]: any } {
    return {
      scheduleName: 'string',
      schoolYear: 'string',
      sectionEndDate: CreateSectionConfigRequestSectionConfigsSectionEndDate,
      sectionModels: { 'type': 'array', 'itemType': CreateSectionConfigRequestSectionConfigsSectionModels },
      sectionStartDate: CreateSectionConfigRequestSectionConfigsSectionStartDate,
      semester: 'number',
      semesterEndDate: CreateSectionConfigRequestSectionConfigsSemesterEndDate,
      semesterStartDate: CreateSectionConfigRequestSectionConfigsSemesterStartDate,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateSnsAppOrderRequestDetailList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1234000
   */
  goodsId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 绘画图书
   */
  goodsName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  goodsPrice?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  goodsQuantity?: number;
  static names(): { [key: string]: string } {
    return {
      goodsId: 'goodsId',
      goodsName: 'goodsName',
      goodsPrice: 'goodsPrice',
      goodsQuantity: 'goodsQuantity',
    };
  }

  static types(): { [key: string]: any } {
    return {
      goodsId: 'string',
      goodsName: 'string',
      goodsPrice: 'number',
      goodsQuantity: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupRequestCourserGroupItemModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1、单周；2、双周；3、全周
   */
  classPeriodType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10001
   */
  classroomId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1;音视频直播\2:线下课程\4:音视频及线下
   */
  courseType?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemEndDate?: CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemStartDate?: CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  dayOfWeek?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionIndex?: number[];
  static names(): { [key: string]: string } {
    return {
      classPeriodType: 'classPeriodType',
      classroomId: 'classroomId',
      courseType: 'courseType',
      courserGroupItemEndDate: 'courserGroupItemEndDate',
      courserGroupItemStartDate: 'courserGroupItemStartDate',
      dayOfWeek: 'dayOfWeek',
      sectionIndex: 'sectionIndex',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classPeriodType: 'number',
      classroomId: 'number',
      courseType: 'number',
      courserGroupItemEndDate: CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate,
      courserGroupItemStartDate: CreateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate,
      dayOfWeek: 'number',
      sectionIndex: { 'type': 'array', 'itemType': 'number' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupRequestTeacherInfos extends $tea.Model {
  /**
   * @example
   * TEACHER授课教师/TEACHING_ASSISTANT助教
   */
  participantRole?: string;
  /**
   * @example
   * manger1234
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      participantRole: 'participantRole',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      participantRole: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class CreateUniversityCourseGroupResponseBodyCourseGroupInfo extends $tea.Model {
  /**
   * @example
   * GS10001
   */
  courseGroupCode?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class DeleteSchoolReportResponseBodyResult extends $tea.Model {
  schoolReportId?: number;
  static names(): { [key: string]: string } {
    return {
      schoolReportId: 'schoolReportId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      schoolReportId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduAIModelCompleteResponseBodyResult extends $tea.Model {
  requestId?: string;
  result?: { [key: string]: any };
  static names(): { [key: string]: string } {
    return {
      requestId: 'requestId',
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      requestId: 'string',
      result: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduGetFileSpaceResponseBodyResult extends $tea.Model {
  folderId?: string;
  spaceId?: string;
  static names(): { [key: string]: string } {
    return {
      folderId: 'folderId',
      spaceId: 'spaceId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      folderId: 'string',
      spaceId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduListUserByFromUserIdsResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 666666
   */
  campusId?: number;
  /**
   * @example
   * 123456
   */
  classId?: number;
  /**
   * @example
   * 555555
   */
  gradeId?: number;
  /**
   * @example
   * 叔大
   */
  name?: string;
  /**
   * @example
   * 444444
   */
  periodId?: number;
  role?: string;
  /**
   * @example
   * 111111
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      campusId: 'campusId',
      classId: 'classId',
      gradeId: 'gradeId',
      name: 'name',
      periodId: 'periodId',
      role: 'role',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      campusId: 'number',
      classId: 'number',
      gradeId: 'number',
      name: 'string',
      periodId: 'number',
      role: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListResponseBodyResultTeacherDetails extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张三
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * teacher
   */
  role?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 人员的unionId。
   */
  unionId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 77621233
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      role: 'role',
      unionId: 'unionId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      role: 'string',
      unionId: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EduTeacherListResponseBodyResult extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  hasMore?: boolean;
  teacherDetails?: EduTeacherListResponseBodyResultTeacherDetails[];
  static names(): { [key: string]: string } {
    return {
      hasMore: 'hasMore',
      teacherDetails: 'teacherDetails',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasMore: 'boolean',
      teacherDetails: { 'type': 'array', 'itemType': EduTeacherListResponseBodyResultTeacherDetails },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseRequestLivePlayInfoList extends $tea.Model {
  /**
   * @example
   * testUrl
   */
  liveInputUrl?: string;
  /**
   * @example
   * testUrl
   */
  liveOutputFlvUrl?: string;
  /**
   * @example
   * testUrl
   */
  liveOutputHlsUrl?: string;
  /**
   * @example
   * 1
   */
  liveType?: number;
  /**
   * @example
   * testUrl
   */
  replayUrl?: string;
  static names(): { [key: string]: string } {
    return {
      liveInputUrl: 'liveInputUrl',
      liveOutputFlvUrl: 'liveOutputFlvUrl',
      liveOutputHlsUrl: 'liveOutputHlsUrl',
      liveType: 'liveType',
      replayUrl: 'replayUrl',
    };
  }

  static types(): { [key: string]: any } {
    return {
      liveInputUrl: 'string',
      liveOutputFlvUrl: 'string',
      liveOutputHlsUrl: 'string',
      liveType: 'number',
      replayUrl: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class EndCourseResponseBodyUniversityCourseCommonResponse extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetChildrenResponseBodyResultBindStudents extends $tea.Model {
  /**
   * @example
   * 1
   */
  gradeLevel?: number;
  /**
   * @example
   * dinge066bea21c63b79b35c2f4657eb6378f
   */
  identityId?: string;
  /**
   * @example
   * primary_school
   */
  periodCode?: string;
  static names(): { [key: string]: string } {
    return {
      gradeLevel: 'gradeLevel',
      identityId: 'identityId',
      periodCode: 'periodCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      gradeLevel: 'number',
      identityId: 'string',
      periodCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetChildrenResponseBodyResult extends $tea.Model {
  bindStudents?: GetChildrenResponseBodyResultBindStudents[];
  /**
   * @example
   * 杭州市
   */
  city?: string;
  /**
   * @example
   * 西湖区
   */
  district?: string;
  /**
   * @example
   * 1
   */
  gradeLevel?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * primary_school
   */
  periodCode?: string;
  /**
   * @example
   * 浙江省
   */
  province?: string;
  /**
   * @example
   * 330106
   */
  regionId?: string;
  static names(): { [key: string]: string } {
    return {
      bindStudents: 'bindStudents',
      city: 'city',
      district: 'district',
      gradeLevel: 'gradeLevel',
      name: 'name',
      periodCode: 'periodCode',
      province: 'province',
      regionId: 'regionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bindStudents: { 'type': 'array', 'itemType': GetChildrenResponseBodyResultBindStudents },
      city: 'string',
      district: 'string',
      gradeLevel: 'number',
      name: 'string',
      periodCode: 'string',
      province: 'string',
      regionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniDeptsResponseBodyResult extends $tea.Model {
  corpId?: string;
  deptId?: number;
  deptType?: string;
  hasSubDept?: boolean;
  name?: string;
  superId?: number;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      deptId: 'deptId',
      deptType: 'deptType',
      hasSubDept: 'hasSubDept',
      name: 'name',
      superId: 'superId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      deptId: 'number',
      deptType: 'string',
      hasSubDept: 'boolean',
      name: 'string',
      superId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoResponseBodyResultDepts extends $tea.Model {
  corpId?: string;
  deptId?: number;
  hasSubDept?: boolean;
  isIndustryDept?: boolean;
  name?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      deptId: 'deptId',
      hasSubDept: 'hasSubDept',
      isIndustryDept: 'isIndustryDept',
      name: 'name',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      deptId: 'number',
      hasSubDept: 'boolean',
      isIndustryDept: 'boolean',
      name: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeAlumniUserInfoResponseBodyResult extends $tea.Model {
  address?: string;
  avatar?: string;
  corpId?: string;
  depts?: GetCollegeAlumniUserInfoResponseBodyResultDepts[];
  email?: string;
  intake?: string;
  inviteId?: number;
  mobile?: string;
  name?: string;
  outtake?: string;
  studentNumber?: string;
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      address: 'address',
      avatar: 'avatar',
      corpId: 'corpId',
      depts: 'depts',
      email: 'email',
      intake: 'intake',
      inviteId: 'inviteId',
      mobile: 'mobile',
      name: 'name',
      outtake: 'outtake',
      studentNumber: 'studentNumber',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      address: 'string',
      avatar: 'string',
      corpId: 'string',
      depts: { 'type': 'array', 'itemType': GetCollegeAlumniUserInfoResponseBodyResultDepts },
      email: 'string',
      intake: 'string',
      inviteId: 'number',
      mobile: 'string',
      name: 'string',
      outtake: 'string',
      studentNumber: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailResponseBodyResultHideSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailResponseBodyResultOuterSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactDeptDetailResponseBodyResult extends $tea.Model {
  autoAddUser?: boolean;
  autoApproveApply?: boolean;
  /**
   * @example
   * 这是简介
   */
  brief?: string;
  /**
   * @example
   * 10000
   */
  code?: string;
  createDeptGroup?: boolean;
  /**
   * @example
   * dept456
   */
  deptCode?: string;
  /**
   * @example
   * chat234
   */
  deptGroupChatId?: string;
  /**
   * @example
   * 200
   */
  deptId?: number;
  deptManagerUseridList?: string[];
  deptPermits?: number[];
  /**
   * @example
   * contact_class_dept
   */
  deptType?: string;
  empApplyJoinDept?: boolean;
  /**
   * @example
   * {}
   */
  extension?: string;
  fromUnionOrg?: boolean;
  groupContainSubDept?: boolean;
  hideDept?: boolean;
  hideSceneConfig?: GetCollegeContactDeptDetailResponseBodyResultHideSceneConfig;
  /**
   * @example
   * 软件工程
   */
  name?: string;
  /**
   * @example
   * 200
   */
  order?: number;
  /**
   * @example
   * user345
   */
  orgDeptOwner?: string;
  outerDept?: boolean;
  outerPermitDepts?: number[];
  outerPermitUsers?: string[];
  outerSceneConfig?: GetCollegeContactDeptDetailResponseBodyResultOuterSceneConfig;
  /**
   * @example
   * 200
   */
  parentId?: number;
  /**
   * @example
   * 软件工程标识
   */
  sourceIdentifier?: string;
  /**
   * @example
   * 200
   */
  struId?: number;
  /**
   * @example
   * campus
   */
  tags?: string;
  /**
   * @example
   * 138xxxx0000
   */
  telephone?: string;
  userPermits?: string[];
  static names(): { [key: string]: string } {
    return {
      autoAddUser: 'autoAddUser',
      autoApproveApply: 'autoApproveApply',
      brief: 'brief',
      code: 'code',
      createDeptGroup: 'createDeptGroup',
      deptCode: 'deptCode',
      deptGroupChatId: 'deptGroupChatId',
      deptId: 'deptId',
      deptManagerUseridList: 'deptManagerUseridList',
      deptPermits: 'deptPermits',
      deptType: 'deptType',
      empApplyJoinDept: 'empApplyJoinDept',
      extension: 'extension',
      fromUnionOrg: 'fromUnionOrg',
      groupContainSubDept: 'groupContainSubDept',
      hideDept: 'hideDept',
      hideSceneConfig: 'hideSceneConfig',
      name: 'name',
      order: 'order',
      orgDeptOwner: 'orgDeptOwner',
      outerDept: 'outerDept',
      outerPermitDepts: 'outerPermitDepts',
      outerPermitUsers: 'outerPermitUsers',
      outerSceneConfig: 'outerSceneConfig',
      parentId: 'parentId',
      sourceIdentifier: 'sourceIdentifier',
      struId: 'struId',
      tags: 'tags',
      telephone: 'telephone',
      userPermits: 'userPermits',
    };
  }

  static types(): { [key: string]: any } {
    return {
      autoAddUser: 'boolean',
      autoApproveApply: 'boolean',
      brief: 'string',
      code: 'string',
      createDeptGroup: 'boolean',
      deptCode: 'string',
      deptGroupChatId: 'string',
      deptId: 'number',
      deptManagerUseridList: { 'type': 'array', 'itemType': 'string' },
      deptPermits: { 'type': 'array', 'itemType': 'number' },
      deptType: 'string',
      empApplyJoinDept: 'boolean',
      extension: 'string',
      fromUnionOrg: 'boolean',
      groupContainSubDept: 'boolean',
      hideDept: 'boolean',
      hideSceneConfig: GetCollegeContactDeptDetailResponseBodyResultHideSceneConfig,
      name: 'string',
      order: 'number',
      orgDeptOwner: 'string',
      outerDept: 'boolean',
      outerPermitDepts: { 'type': 'array', 'itemType': 'number' },
      outerPermitUsers: { 'type': 'array', 'itemType': 'string' },
      outerSceneConfig: GetCollegeContactDeptDetailResponseBodyResultOuterSceneConfig,
      parentId: 'number',
      sourceIdentifier: 'string',
      struId: 'number',
      tags: 'string',
      telephone: 'string',
      userPermits: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetCollegeContactStandardStruDeptDetailResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 456
   */
  struId?: number;
  /**
   * @example
   * 890
   */
  studentDeptId?: number;
  /**
   * @example
   * 678
   */
  teacherDeptId?: number;
  static names(): { [key: string]: string } {
    return {
      struId: 'struId',
      studentDeptId: 'studentDeptId',
      teacherDeptId: 'teacherDeptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      struId: 'number',
      studentDeptId: 'number',
      teacherDeptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetDefaultChildResponseBodyBindStudents extends $tea.Model {
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  period?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  staffId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      period: 'period',
      staffId: 'staffId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      period: 'string',
      staffId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetEduUserIdentityResponseBodyData extends $tea.Model {
  matchGuardianRule?: boolean;
  matchTeacherRule?: boolean;
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      matchGuardianRule: 'matchGuardianRule',
      matchTeacherRule: 'matchTeacherRule',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      matchGuardianRule: 'boolean',
      matchTeacherRule: 'boolean',
      unionId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetFileDownloadInfoByPackageIdResponseBodyResult extends $tea.Model {
  fileId?: string;
  mediaId?: string;
  spaceId?: number;
  static names(): { [key: string]: string } {
    return {
      fileId: 'fileId',
      mediaId: 'mediaId',
      spaceId: 'spaceId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      fileId: 'string',
      mediaId: 'string',
      spaceId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetImageTempDownloadUrlResponseBodyResult extends $tea.Model {
  extension?: string;
  fileName?: string;
  fileSize?: number;
  url?: string;
  static names(): { [key: string]: string } {
    return {
      extension: 'extension',
      fileName: 'fileName',
      fileSize: 'fileSize',
      url: 'url',
    };
  }

  static types(): { [key: string]: any } {
    return {
      extension: 'string',
      fileName: 'string',
      fileSize: 'number',
      url: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCourseDetailResponseBodyPushModel extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  pushOrgNameList?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  pushRoleNameList?: string[];
  static names(): { [key: string]: string } {
    return {
      pushOrgNameList: 'pushOrgNameList',
      pushRoleNameList: 'pushRoleNameList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      pushOrgNameList: { 'type': 'array', 'itemType': 'string' },
      pushRoleNameList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetOpenCoursesResponseBodyCourseList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * fdjakl-fdaf-ds
   */
  courseId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://static.dingtalk.com/media/lALPDgCwRt4FagzMi8yZ_153_139.png
   */
  coverUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  feedType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * https://h5.dingtalk.com/live/video_lesson.htm?feedId=4aa5ter-05d8-4aac-834a-3b3847cf642e&mcnId=7536041420201104593&feedProperty=1&itemId=4aa563e1-05d8-4aac-841a-3b3847cf642e&dd_nav_bgcolor=FF2C2D2F#/live
   */
  jumpUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1618369786000
   */
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123124312314
   */
  teacherId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 张老师
   */
  teacherName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 开学第一课
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      courseId: 'courseId',
      coverUrl: 'coverUrl',
      feedType: 'feedType',
      jumpUrl: 'jumpUrl',
      startTime: 'startTime',
      teacherId: 'teacherId',
      teacherName: 'teacherName',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseId: 'string',
      coverUrl: 'string',
      feedType: 'number',
      jumpUrl: 'string',
      startTime: 'number',
      teacherId: 'string',
      teacherName: 'string',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordRequestBody extends $tea.Model {
  bizId?: string;
  ownerId?: string;
  pointType?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      ownerId: 'ownerId',
      pointType: 'pointType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      ownerId: 'string',
      pointType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointActionRecordResponseBodyResult extends $tea.Model {
  actionTime?: string;
  quantity?: number;
  status?: string;
  static names(): { [key: string]: string } {
    return {
      actionTime: 'actionTime',
      quantity: 'quantity',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actionTime: 'string',
      quantity: 'number',
      status: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetPointInfoResponseBodyResult extends $tea.Model {
  availableQuota?: number;
  endTime?: string;
  startTime?: string;
  static names(): { [key: string]: string } {
    return {
      availableQuota: 'availableQuota',
      endTime: 'endTime',
      startTime: 'startTime',
    };
  }

  static types(): { [key: string]: any } {
    return {
      availableQuota: 'number',
      endTime: 'string',
      startTime: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponseBodyResultAttendParticipants extends $tea.Model {
  /**
   * @example
   * ding23456
   */
  corpId?: string;
  /**
   * @example
   * 组织234
   */
  orgName?: string;
  /**
   * @example
   * 865306
   */
  participantId?: string;
  /**
   * @example
   * 二年级1班
   */
  participantName?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      orgName: 'orgName',
      participantId: 'participantId',
      participantName: 'participantName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      orgName: 'string',
      participantId: 'string',
      participantName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponseBodyResultRecordInfos extends $tea.Model {
  /**
   * @example
   * 2021-11-17T02:08:45Z
   */
  startTime?: string;
  /**
   * @example
   * 2021-11-17T04:08:45Z
   */
  stopTime?: string;
  /**
   * @example
   * http://oss.xxx.com/xxxx
   */
  url?: string;
  static names(): { [key: string]: string } {
    return {
      startTime: 'startTime',
      stopTime: 'stopTime',
      url: 'url',
    };
  }

  static types(): { [key: string]: any } {
    return {
      startTime: 'string',
      stopTime: 'string',
      url: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponseBodyResultTeachingParticipant extends $tea.Model {
  /**
   * @example
   * ding1234
   */
  corpId?: string;
  /**
   * @example
   * 组织123
   */
  orgName?: string;
  /**
   * @example
   * 881436
   */
  participantId?: string;
  /**
   * @example
   * 一年级1班
   */
  participantName?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      orgName: 'orgName',
      participantId: 'participantId',
      participantName: 'participantName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      orgName: 'string',
      participantId: 'string',
      participantName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetRemoteClassCourseResponseBodyResult extends $tea.Model {
  attendParticipants?: GetRemoteClassCourseResponseBodyResultAttendParticipants[];
  /**
   * @example
   * false
   */
  canEdit?: boolean;
  /**
   * @example
   * UvCIp16813006
   */
  courseCode?: string;
  /**
   * @example
   * 春天来了
   */
  courseName?: string;
  /**
   * @example
   * 1635157800000
   */
  endTime?: number;
  /**
   * @example
   * https://pre-live.edu.dingtalk.com/live/showLive?courseCode=UvCIp16813006#/aiclass
   */
  liveUrl?: string;
  recordInfos?: GetRemoteClassCourseResponseBodyResultRecordInfos[];
  /**
   * @example
   * 1
   */
  roomStatus?: number;
  /**
   * @example
   * 1635150600000
   */
  startTime?: number;
  /**
   * @example
   * 1
   */
  status?: number;
  teachingParticipant?: GetRemoteClassCourseResponseBodyResultTeachingParticipant;
  static names(): { [key: string]: string } {
    return {
      attendParticipants: 'attendParticipants',
      canEdit: 'canEdit',
      courseCode: 'courseCode',
      courseName: 'courseName',
      endTime: 'endTime',
      liveUrl: 'liveUrl',
      recordInfos: 'recordInfos',
      roomStatus: 'roomStatus',
      startTime: 'startTime',
      status: 'status',
      teachingParticipant: 'teachingParticipant',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attendParticipants: { 'type': 'array', 'itemType': GetRemoteClassCourseResponseBodyResultAttendParticipants },
      canEdit: 'boolean',
      courseCode: 'string',
      courseName: 'string',
      endTime: 'number',
      liveUrl: 'string',
      recordInfos: { 'type': 'array', 'itemType': GetRemoteClassCourseResponseBodyResultRecordInfos },
      roomStatus: 'number',
      startTime: 'number',
      status: 'number',
      teachingParticipant: GetRemoteClassCourseResponseBodyResultTeachingParticipant,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRoleMembersResponseBodyResult extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding4lj234j3hj43hl312lh
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  memberUserIdListInTrunkOrg?: string[];
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      memberUserIdListInTrunkOrg: 'memberUserIdListInTrunkOrg',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      memberUserIdListInTrunkOrg: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetShareRolesResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 123214123
   */
  shareRoleCode?: string;
  /**
   * @example
   * 校长
   */
  shareRoleName?: string;
  static names(): { [key: string]: string } {
    return {
      shareRoleCode: 'shareRoleCode',
      shareRoleName: 'shareRoleName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      shareRoleCode: 'string',
      shareRoleName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskListResponseBodyTaskList extends $tea.Model {
  /**
   * @example
   * 2023希望校区初中
   */
  name?: string;
  /**
   * @example
   * 4240028
   */
  taskId?: number;
  /**
   * @example
   * 2023
   */
  taskYear?: number;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      taskId: 'taskId',
      taskYear: 'taskYear',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      taskId: 'number',
      taskYear: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class GetTaskStudentListResponseBodyStudentList extends $tea.Model {
  /**
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * F
   */
  sexuality?: string;
  /**
   * @example
   * 675656
   */
  studentId?: number;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      sexuality: 'sexuality',
      studentId: 'studentId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      sexuality: 'string',
      studentId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestCoursesDateModel extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 9
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestCoursesSectionModel extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 第一节
   */
  sectionName?: string;
  static names(): { [key: string]: string } {
    return {
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionIndex: 'number',
      sectionName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestCourses extends $tea.Model {
  /**
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 李老师
   */
  creatorName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  dateModel?: InitCoursesOfClassRequestCoursesDateModel;
  /**
   * @example
   * 正心楼1-1
   */
  location?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionModel?: InitCoursesOfClassRequestCoursesSectionModel;
  teacherStaffIds?: string[];
  static names(): { [key: string]: string } {
    return {
      courseName: 'courseName',
      creatorName: 'creatorName',
      dateModel: 'dateModel',
      location: 'location',
      sectionModel: 'sectionModel',
      teacherStaffIds: 'teacherStaffIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseName: 'string',
      creatorName: 'string',
      dateModel: InitCoursesOfClassRequestCoursesDateModel,
      location: 'string',
      sectionModel: InitCoursesOfClassRequestCoursesSectionModel,
      teacherStaffIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfigEnd extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 9
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfigSectionModelsEnd extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 45
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfigSectionModelsStart extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfigSectionModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  end?: InitCoursesOfClassRequestSectionConfigSectionModelsEnd;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * COURSE：上课节次 REST：休息节次
   */
  sectionType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  start?: InitCoursesOfClassRequestSectionConfigSectionModelsStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionIndex: 'sectionIndex',
      sectionType: 'sectionType',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: InitCoursesOfClassRequestSectionConfigSectionModelsEnd,
      sectionIndex: 'number',
      sectionType: 'string',
      start: InitCoursesOfClassRequestSectionConfigSectionModelsStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfigStart extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 9
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InitCoursesOfClassRequestSectionConfig extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  end?: InitCoursesOfClassRequestSectionConfigEnd;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionModels?: InitCoursesOfClassRequestSectionConfigSectionModels[];
  /**
   * @remarks
   * This parameter is required.
   */
  start?: InitCoursesOfClassRequestSectionConfigStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionModels: 'sectionModels',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: InitCoursesOfClassRequestSectionConfigEnd,
      sectionModels: { 'type': 'array', 'itemType': InitCoursesOfClassRequestSectionConfigSectionModels },
      start: InitCoursesOfClassRequestSectionConfigStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequestEnd extends $tea.Model {
  /**
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @example
   * 1
   */
  month?: number;
  /**
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequestSectionModelsEnd extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 45
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequestSectionModelsStart extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequestSectionModels extends $tea.Model {
  end?: InsertSectionConfigRequestSectionModelsEnd;
  /**
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * 语文
   */
  sectionName?: string;
  /**
   * @example
   * REST/COURSE
   */
  sectionType?: string;
  start?: InsertSectionConfigRequestSectionModelsStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      sectionType: 'sectionType',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: InsertSectionConfigRequestSectionModelsEnd,
      sectionIndex: 'number',
      sectionName: 'string',
      sectionType: 'string',
      start: InsertSectionConfigRequestSectionModelsStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class InsertSectionConfigRequestStart extends $tea.Model {
  /**
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @example
   * 3
   */
  month?: number;
  /**
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteRequestRowValueList extends $tea.Model {
  /**
   * @example
   * id
   */
  name?: string;
  /**
   * @example
   * 1
   */
  value?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      value: 'value',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      value: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvDataWriteResponseBodyResult extends $tea.Model {
  needRetry?: boolean;
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      needRetry: 'needRetry',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      needRetry: 'boolean',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryResponseBodyResultFields extends $tea.Model {
  /**
   * @example
   * 该字段为id主键
   */
  description?: string;
  /**
   * @example
   * id
   */
  fieldKey?: string;
  /**
   * @example
   * id主键
   */
  fieldName?: string;
  /**
   * @example
   * varchar
   */
  fieldType?: string;
  primaryKey?: boolean;
  required?: boolean;
  static names(): { [key: string]: string } {
    return {
      description: 'description',
      fieldKey: 'fieldKey',
      fieldName: 'fieldName',
      fieldType: 'fieldType',
      primaryKey: 'primaryKey',
      required: 'required',
    };
  }

  static types(): { [key: string]: any } {
    return {
      description: 'string',
      fieldKey: 'string',
      fieldName: 'string',
      fieldType: 'string',
      primaryKey: 'boolean',
      required: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class IsvMetadataQueryResponseBodyResult extends $tea.Model {
  fields?: IsvMetadataQueryResponseBodyResultFields[];
  /**
   * @example
   * tb_test01
   */
  tableCode?: string;
  tableExist?: boolean;
  static names(): { [key: string]: string } {
    return {
      fields: 'fields',
      tableCode: 'tableCode',
      tableExist: 'tableExist',
    };
  }

  static types(): { [key: string]: any } {
    return {
      fields: { 'type': 'array', 'itemType': IsvMetadataQueryResponseBodyResultFields },
      tableCode: 'string',
      tableExist: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactDeptTypeConfigResponseBodyResult extends $tea.Model {
  /**
   * @example
   * contact_class_dept
   */
  deptType?: string;
  /**
   * @example
   * 班级
   */
  name?: string;
  userDef?: boolean;
  static names(): { [key: string]: string } {
    return {
      deptType: 'deptType',
      name: 'name',
      userDef: 'userDef',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptType: 'string',
      name: 'string',
      userDef: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSceneStrusResponseBodyResult extends $tea.Model {
  enable?: boolean;
  hasStruFixedDept?: boolean;
  /**
   * @example
   * 这是科研架构简介
   */
  struBrief?: string;
  /**
   * @example
   * 20
   */
  struId?: number;
  /**
   * @example
   * 科研架构
   */
  struName?: string;
  /**
   * @example
   * stru_research_dept
   */
  struType?: string;
  /**
   * @example
   * 20
   */
  studentDeptId?: number;
  /**
   * @example
   * 20
   */
  teacherDeptId?: number;
  static names(): { [key: string]: string } {
    return {
      enable: 'enable',
      hasStruFixedDept: 'hasStruFixedDept',
      struBrief: 'struBrief',
      struId: 'struId',
      struName: 'struName',
      struType: 'struType',
      studentDeptId: 'studentDeptId',
      teacherDeptId: 'teacherDeptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      enable: 'boolean',
      hasStruFixedDept: 'boolean',
      struBrief: 'string',
      struId: 'number',
      struName: 'string',
      struType: 'string',
      studentDeptId: 'number',
      teacherDeptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListCollegeContactSubDeptsResponseBodyResult extends $tea.Model {
  autoAddUser?: boolean;
  createDeptGroup?: boolean;
  /**
   * @example
   * dept456
   */
  deptCode?: string;
  /**
   * @example
   * 456
   */
  deptId?: number;
  /**
   * @example
   * contact_class_dept
   */
  deptType?: string;
  /**
   * @example
   * {}
   */
  extension?: string;
  fromUnionOrg?: boolean;
  /**
   * @example
   * 软件工程
   */
  name?: string;
  /**
   * @example
   * 200
   */
  parentId?: number;
  /**
   * @example
   * 软件工程标识
   */
  sourceIdentifier?: string;
  /**
   * @example
   * 200
   */
  struId?: number;
  /**
   * @example
   * campus
   */
  tags?: string;
  static names(): { [key: string]: string } {
    return {
      autoAddUser: 'autoAddUser',
      createDeptGroup: 'createDeptGroup',
      deptCode: 'deptCode',
      deptId: 'deptId',
      deptType: 'deptType',
      extension: 'extension',
      fromUnionOrg: 'fromUnionOrg',
      name: 'name',
      parentId: 'parentId',
      sourceIdentifier: 'sourceIdentifier',
      struId: 'struId',
      tags: 'tags',
    };
  }

  static types(): { [key: string]: any } {
    return {
      autoAddUser: 'boolean',
      createDeptGroup: 'boolean',
      deptCode: 'string',
      deptId: 'number',
      deptType: 'string',
      extension: 'string',
      fromUnionOrg: 'boolean',
      name: 'string',
      parentId: 'number',
      sourceIdentifier: 'string',
      struId: 'number',
      tags: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ListOrderResponseBodyList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  actualAmount?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  buyerId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  createTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  endTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  orderNo?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  payTime?: number;
  refundNo?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  scene?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  startTime?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  status?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  tradeNo?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      actualAmount: 'actualAmount',
      buyerId: 'buyerId',
      corpId: 'corpId',
      createTime: 'createTime',
      endTime: 'endTime',
      orderNo: 'orderNo',
      payTime: 'payTime',
      refundNo: 'refundNo',
      scene: 'scene',
      startTime: 'startTime',
      status: 'status',
      tradeNo: 'tradeNo',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      actualAmount: 'number',
      buyerId: 'string',
      corpId: 'string',
      createTime: 'number',
      endTime: 'number',
      orderNo: 'string',
      payTime: 'number',
      refundNo: 'string',
      scene: 'number',
      startTime: 'number',
      status: 'number',
      tradeNo: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoResponseBodyResultItemList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 商品名称
   */
  itemName?: string;
  /**
   * @example
   * 2
   */
  itemNum?: string;
  static names(): { [key: string]: string } {
    return {
      itemName: 'itemName',
      itemNum: 'itemNum',
    };
  }

  static types(): { [key: string]: any } {
    return {
      itemName: 'string',
      itemNum: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class OrderInfoResponseBodyResult extends $tea.Model {
  /**
   * @example
   * xxx店铺
   */
  address?: string;
  itemList?: OrderInfoResponseBodyResultItemList[];
  /**
   * @example
   * 808324521
   */
  orderNo?: string;
  /**
   * @example
   * 7245
   */
  receiverPhoneSuffix?: string;
  /**
   * @example
   * 商家名称
   */
  shopName?: string;
  userId?: number;
  static names(): { [key: string]: string } {
    return {
      address: 'address',
      itemList: 'itemList',
      orderNo: 'orderNo',
      receiverPhoneSuffix: 'receiverPhoneSuffix',
      shopName: 'shopName',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      address: 'string',
      itemList: { 'type': 'array', 'itemType': OrderInfoResponseBodyResultItemList },
      orderNo: 'string',
      receiverPhoneSuffix: 'string',
      shopName: 'string',
      userId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryClassCourseResponseBodyResult extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * classId_xxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * room_xxx
   */
  classRoomId?: string;
  /**
   * @example
   * 音乐教室
   */
  classRoomName?: string;
  /**
   * @example
   * 0
   */
  classType?: number;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * code_xxx
   */
  courseCode?: string;
  /**
   * @example
   * 2024-11-21 00:00:00
   */
  courseDate?: string;
  /**
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 1
   */
  courseWeek?: number;
  /**
   * @example
   * 2024-11-21 00:00:00
   */
  endTime?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * courseId
   */
  isvCourseId?: string;
  /**
   * @example
   * 备注
   */
  memo?: string;
  /**
   * @example
   * 2024
   */
  schoolYear?: string;
  /**
   * @example
   * 1
   */
  semester?: number;
  /**
   * @example
   * 2024-11-21 00:00:00
   */
  startTime?: string;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 1
   */
  teachWeek?: number;
  /**
   * @example
   * 第一节
   */
  timeslotName?: string;
  /**
   * @example
   * 1
   */
  timeslotNum?: number;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      classRoomId: 'classRoomId',
      classRoomName: 'classRoomName',
      classType: 'classType',
      corpId: 'corpId',
      courseCode: 'courseCode',
      courseDate: 'courseDate',
      courseName: 'courseName',
      courseWeek: 'courseWeek',
      endTime: 'endTime',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      memo: 'memo',
      schoolYear: 'schoolYear',
      semester: 'semester',
      startTime: 'startTime',
      status: 'status',
      teachWeek: 'teachWeek',
      timeslotName: 'timeslotName',
      timeslotNum: 'timeslotNum',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      classRoomId: 'string',
      classRoomName: 'string',
      classType: 'number',
      corpId: 'string',
      courseCode: 'string',
      courseDate: 'string',
      courseName: 'string',
      courseWeek: 'number',
      endTime: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
      memo: 'string',
      schoolYear: 'string',
      semester: 'number',
      startTime: 'string',
      status: 'number',
      teachWeek: 'number',
      timeslotName: 'string',
      timeslotNum: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryDevicesResponseBodyList extends $tea.Model {
  /**
   * @example
   * 1696753792000
   */
  gmtExpiry?: number;
  /**
   * @example
   * model1
   */
  model?: string;
  /**
   * @example
   * 三年级1班班牌
   */
  name?: string;
  /**
   * @example
   * fadf-8008
   */
  sn?: string;
  /**
   * @example
   * VIDEO_CALL
   */
  type?: string;
  static names(): { [key: string]: string } {
    return {
      gmtExpiry: 'gmtExpiry',
      model: 'model',
      name: 'name',
      sn: 'sn',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      gmtExpiry: 'number',
      model: 'string',
      name: 'string',
      sn: 'string',
      type: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PageQueryKitOpenRecordResponseBodyResult extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * 2024-08-20 00:00:00
   */
  openEndTime?: string;
  /**
   * @example
   * 2024-01-20 00:00:00
   */
  openStartTime?: string;
  /**
   * @example
   * staffxxx
   */
  openUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      openEndTime: 'openEndTime',
      openStartTime: 'openStartTime',
      openUserId: 'openUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
      openEndTime: 'string',
      openStartTime: 'string',
      openUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponseLivePlayInfoList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testUrl
   */
  liveInputUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testUrl
   */
  liveOutputUrl?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  liveType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testUrl
   */
  replayUrl?: string;
  static names(): { [key: string]: string } {
    return {
      liveInputUrl: 'liveInputUrl',
      liveOutputUrl: 'liveOutputUrl',
      liveType: 'liveType',
      replayUrl: 'replayUrl',
    };
  }

  static types(): { [key: string]: any } {
    return {
      liveInputUrl: 'string',
      liveOutputUrl: 'string',
      liveType: 'number',
      replayUrl: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponse extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  confirmStatus?: boolean;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  livePlayInfoList?: PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponseLivePlayInfoList[];
  static names(): { [key: string]: string } {
    return {
      confirmStatus: 'confirmStatus',
      courseCode: 'courseCode',
      livePlayInfoList: 'livePlayInfoList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      confirmStatus: 'boolean',
      courseCode: 'string',
      livePlayInfoList: { 'type': 'array', 'itemType': PollingConfirmStatusResponseBodyUniversityPollingCourseStatusResponseLivePlayInfoList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class ProvidePointResponseBodyResult extends $tea.Model {
  availableQuota?: number;
  provideNum?: number;
  provideSuccess?: boolean;
  static names(): { [key: string]: string } {
    return {
      availableQuota: 'availableQuota',
      provideNum: 'provideNum',
      provideSuccess: 'provideSuccess',
    };
  }

  static types(): { [key: string]: any } {
    return {
      availableQuota: 'number',
      provideNum: 'number',
      provideSuccess: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportRequestClassDetailItemsStudentDetailListSubjectList extends $tea.Model {
  gradeRank?: number;
  levelScore?: string;
  name?: string;
  score?: number;
  static names(): { [key: string]: string } {
    return {
      gradeRank: 'gradeRank',
      levelScore: 'levelScore',
      name: 'name',
      score: 'score',
    };
  }

  static types(): { [key: string]: any } {
    return {
      gradeRank: 'number',
      levelScore: 'string',
      name: 'string',
      score: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportRequestClassDetailItemsStudentDetailList extends $tea.Model {
  studentId?: string;
  studentName?: string;
  subjectList?: PublishSchoolReportRequestClassDetailItemsStudentDetailListSubjectList[];
  static names(): { [key: string]: string } {
    return {
      studentId: 'studentId',
      studentName: 'studentName',
      subjectList: 'subjectList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      studentId: 'string',
      studentName: 'string',
      subjectList: { 'type': 'array', 'itemType': PublishSchoolReportRequestClassDetailItemsStudentDetailListSubjectList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportRequestClassDetailItems extends $tea.Model {
  classId?: string;
  className?: string;
  studentDetailList?: PublishSchoolReportRequestClassDetailItemsStudentDetailList[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      className: 'className',
      studentDetailList: 'studentDetailList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      className: 'string',
      studentDetailList: { 'type': 'array', 'itemType': PublishSchoolReportRequestClassDetailItemsStudentDetailList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportRequestSubjectList extends $tea.Model {
  name?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class PublishSchoolReportResponseBodyResult extends $tea.Model {
  schoolReportId?: number;
  static names(): { [key: string]: string } {
    return {
      schoolReportId: 'schoolReportId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      schoolReportId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryResponseBodyResult extends $tea.Model {
  name?: string;
  ownerCode?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      ownerCode: 'ownerCode',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      ownerCode: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleResponseBodyResultExtTeacherList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * url
   */
  avator?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 李老师
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 5824343
   */
  uid?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2534523452
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      avator: 'avator',
      name: 'name',
      uid: 'uid',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      avator: 'string',
      name: 'string',
      uid: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleResponseBodyResultExt extends $tea.Model {
  /**
   * @example
   * #000000
   */
  backgroundColor?: string;
  /**
   * @example
   * 2345
   */
  classId?: number;
  /**
   * @example
   * #000000
   */
  fontColor?: string;
  teacherList?: QueryAllSubjectsFromClassScheduleResponseBodyResultExtTeacherList[];
  static names(): { [key: string]: string } {
    return {
      backgroundColor: 'backgroundColor',
      classId: 'classId',
      fontColor: 'fontColor',
      teacherList: 'teacherList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      backgroundColor: 'string',
      classId: 'number',
      fontColor: 'string',
      teacherList: { 'type': 'array', 'itemType': QueryAllSubjectsFromClassScheduleResponseBodyResultExtTeacherList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryAllSubjectsFromClassScheduleResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 创建者orgId
   */
  creatorOrgId?: number;
  ext?: QueryAllSubjectsFromClassScheduleResponseBodyResultExt;
  /**
   * @example
   * HIGH_SCHOOL
   */
  periodCode?: string;
  /**
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  /**
   * @example
   * 语文
   */
  subjectName?: string;
  static names(): { [key: string]: string } {
    return {
      creatorOrgId: 'creatorOrgId',
      ext: 'ext',
      periodCode: 'periodCode',
      subjectCode: 'subjectCode',
      subjectName: 'subjectName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      creatorOrgId: 'number',
      ext: QueryAllSubjectsFromClassScheduleResponseBodyResultExt,
      periodCode: 'string',
      subjectCode: 'string',
      subjectName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfigEnd extends $tea.Model {
  /**
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @example
   * 2
   */
  month?: number;
  /**
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfigSectionModelsEnd extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 45
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfigSectionModelsStart extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfigSectionModels extends $tea.Model {
  end?: QueryClassScheduleResponseBodyConfigSectionModelsEnd;
  /**
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * 第一节
   */
  sectionName?: string;
  /**
   * @example
   * COURSE
   */
  sectionType?: string;
  start?: QueryClassScheduleResponseBodyConfigSectionModelsStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      sectionType: 'sectionType',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: QueryClassScheduleResponseBodyConfigSectionModelsEnd,
      sectionIndex: 'number',
      sectionName: 'string',
      sectionType: 'string',
      start: QueryClassScheduleResponseBodyConfigSectionModelsStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfigStart extends $tea.Model {
  /**
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @example
   * 1
   */
  month?: number;
  /**
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyConfig extends $tea.Model {
  end?: QueryClassScheduleResponseBodyConfigEnd;
  sectionModels?: QueryClassScheduleResponseBodyConfigSectionModels[];
  start?: QueryClassScheduleResponseBodyConfigStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionModels: 'sectionModels',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: QueryClassScheduleResponseBodyConfigEnd,
      sectionModels: { 'type': 'array', 'itemType': QueryClassScheduleResponseBodyConfigSectionModels },
      start: QueryClassScheduleResponseBodyConfigStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyCourseDTOSClassrooms extends $tea.Model {
  interactInfo?: string;
  targetId?: string;
  static names(): { [key: string]: string } {
    return {
      interactInfo: 'interactInfo',
      targetId: 'targetId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      interactInfo: 'string',
      targetId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyCourseDTOSEduUserModels extends $tea.Model {
  name?: string;
  uid?: number;
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      uid: 'uid',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      uid: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleResponseBodyCourseDTOS extends $tea.Model {
  /**
   * @example
   * 2345
   */
  classId?: number;
  classrooms?: QueryClassScheduleResponseBodyCourseDTOSClassrooms[];
  /**
   * @example
   * cn_yuwen
   */
  code?: string;
  /**
   * @example
   * Ekk24352534
   */
  courseGroupCode?: string;
  /**
   * @example
   * ruu
   */
  coverUrl?: string;
  /**
   * @example
   * ding32534536235
   */
  creatorCorpId?: string;
  /**
   * @example
   * 234525235
   */
  creatorUserId?: string;
  /**
   * @example
   * 行政老师A
   */
  creatorUserName?: string;
  eduUserModels?: QueryClassScheduleResponseBodyCourseDTOSEduUserModels[];
  endTime?: number;
  /**
   * @example
   * ext
   */
  extInfo?: string;
  /**
   * @example
   * 这是语文
   */
  introduce?: string;
  /**
   * @example
   * 语文
   */
  name?: string;
  /**
   * @example
   * 2
   */
  sectionIndex?: number;
  /**
   * @example
   * 语文
   */
  sectionName?: string;
  startTime?: number;
  /**
   * @example
   * 0
   */
  status?: number;
  /**
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  /**
   * @example
   * ding32534536235
   */
  teacherCorpId?: string;
  /**
   * @example
   * 25354252543
   */
  teacherUserId?: string;
  /**
   * @example
   * 李老师
   */
  teacherUserName?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      classrooms: 'classrooms',
      code: 'code',
      courseGroupCode: 'courseGroupCode',
      coverUrl: 'coverUrl',
      creatorCorpId: 'creatorCorpId',
      creatorUserId: 'creatorUserId',
      creatorUserName: 'creatorUserName',
      eduUserModels: 'eduUserModels',
      endTime: 'endTime',
      extInfo: 'extInfo',
      introduce: 'introduce',
      name: 'name',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      startTime: 'startTime',
      status: 'status',
      subjectCode: 'subjectCode',
      teacherCorpId: 'teacherCorpId',
      teacherUserId: 'teacherUserId',
      teacherUserName: 'teacherUserName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      classrooms: { 'type': 'array', 'itemType': QueryClassScheduleResponseBodyCourseDTOSClassrooms },
      code: 'string',
      courseGroupCode: 'string',
      coverUrl: 'string',
      creatorCorpId: 'string',
      creatorUserId: 'string',
      creatorUserName: 'string',
      eduUserModels: { 'type': 'array', 'itemType': QueryClassScheduleResponseBodyCourseDTOSEduUserModels },
      endTime: 'number',
      extInfo: 'string',
      introduce: 'string',
      name: 'string',
      sectionIndex: 'number',
      sectionName: 'string',
      startTime: 'number',
      status: 'number',
      subjectCode: 'string',
      teacherCorpId: 'string',
      teacherUserId: 'string',
      teacherUserName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolResponseBodyResultClassrooms extends $tea.Model {
  interactInfo?: string;
  targetId?: string;
  static names(): { [key: string]: string } {
    return {
      interactInfo: 'interactInfo',
      targetId: 'targetId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      interactInfo: 'string',
      targetId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolResponseBodyResultEduUserModels extends $tea.Model {
  name?: string;
  uid?: number;
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      name: 'name',
      uid: 'uid',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      name: 'string',
      uid: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleByTimeSchoolResponseBodyResult extends $tea.Model {
  /**
   * @example
   * cn_yuwen_12341
   */
  bizKey?: string;
  /**
   * @example
   * 2345
   */
  classId?: number;
  classrooms?: QueryClassScheduleByTimeSchoolResponseBodyResultClassrooms[];
  /**
   * @example
   * EKK243
   */
  code?: string;
  /**
   * @example
   * Ek1234
   */
  courseGroupCode?: string;
  /**
   * @example
   * url
   */
  coverUrl?: string;
  /**
   * @example
   * Ekk512345
   */
  creatorCorpId?: string;
  /**
   * @example
   * 5234523452
   */
  creatorUserId?: string;
  /**
   * @example
   * 行政老师A
   */
  creatorUserName?: string;
  eduUserModels?: QueryClassScheduleByTimeSchoolResponseBodyResultEduUserModels[];
  /**
   * @example
   * 1682399879
   */
  endTime?: number;
  extInfo?: string;
  /**
   * @example
   * 这是语文
   */
  introduce?: string;
  /**
   * @example
   * 语文
   */
  name?: string;
  /**
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * 第一节
   */
  sectionName?: string;
  /**
   * @example
   * 1682397879
   */
  startTime?: number;
  status?: number;
  /**
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  /**
   * @example
   * ding253453
   */
  teacherCorpId?: string;
  /**
   * @example
   * 25234534552345
   */
  teacherUserId?: string;
  /**
   * @example
   * 李老师
   */
  teacherUserName?: string;
  static names(): { [key: string]: string } {
    return {
      bizKey: 'bizKey',
      classId: 'classId',
      classrooms: 'classrooms',
      code: 'code',
      courseGroupCode: 'courseGroupCode',
      coverUrl: 'coverUrl',
      creatorCorpId: 'creatorCorpId',
      creatorUserId: 'creatorUserId',
      creatorUserName: 'creatorUserName',
      eduUserModels: 'eduUserModels',
      endTime: 'endTime',
      extInfo: 'extInfo',
      introduce: 'introduce',
      name: 'name',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      startTime: 'startTime',
      status: 'status',
      subjectCode: 'subjectCode',
      teacherCorpId: 'teacherCorpId',
      teacherUserId: 'teacherUserId',
      teacherUserName: 'teacherUserName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizKey: 'string',
      classId: 'number',
      classrooms: { 'type': 'array', 'itemType': QueryClassScheduleByTimeSchoolResponseBodyResultClassrooms },
      code: 'string',
      courseGroupCode: 'string',
      coverUrl: 'string',
      creatorCorpId: 'string',
      creatorUserId: 'string',
      creatorUserName: 'string',
      eduUserModels: { 'type': 'array', 'itemType': QueryClassScheduleByTimeSchoolResponseBodyResultEduUserModels },
      endTime: 'number',
      extInfo: 'string',
      introduce: 'string',
      name: 'string',
      sectionIndex: 'number',
      sectionName: 'string',
      startTime: 'number',
      status: 'number',
      subjectCode: 'string',
      teacherCorpId: 'string',
      teacherUserId: 'string',
      teacherUserName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResultEnd extends $tea.Model {
  /**
   * @example
   * 30
   */
  dayOfMonth?: number;
  /**
   * @example
   * 1
   */
  month?: number;
  /**
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResultSectionModelsEnd extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 45
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResultSectionModelsStart extends $tea.Model {
  /**
   * @example
   * 10
   */
  hour?: number;
  /**
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResultSectionModels extends $tea.Model {
  end?: QueryClassScheduleConfigResponseBodyResultSectionModelsEnd;
  /**
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * 第一节
   */
  sectionName?: string;
  sectionType?: string;
  start?: QueryClassScheduleConfigResponseBodyResultSectionModelsStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      sectionType: 'sectionType',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: QueryClassScheduleConfigResponseBodyResultSectionModelsEnd,
      sectionIndex: 'number',
      sectionName: 'string',
      sectionType: 'string',
      start: QueryClassScheduleConfigResponseBodyResultSectionModelsStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResultStart extends $tea.Model {
  /**
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @example
   * 2
   */
  month?: number;
  /**
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassScheduleConfigResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 2345
   */
  classId?: number;
  end?: QueryClassScheduleConfigResponseBodyResultEnd;
  sectionModels?: QueryClassScheduleConfigResponseBodyResultSectionModels[];
  start?: QueryClassScheduleConfigResponseBodyResultStart;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      end: 'end',
      sectionModels: 'sectionModels',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      end: QueryClassScheduleConfigResponseBodyResultEnd,
      sectionModels: { 'type': 'array', 'itemType': QueryClassScheduleConfigResponseBodyResultSectionModels },
      start: QueryClassScheduleConfigResponseBodyResultStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultDeptOrderList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 1
   */
  order?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      order: 'order',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      order: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultDeptPositionSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  isMain?: boolean;
  /**
   * @example
   * 001
   */
  managerUserId?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      isMain: 'isMain',
      managerUserId: 'managerUserId',
      title: 'title',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      isMain: 'boolean',
      managerUserId: 'string',
      title: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultDeptTypeSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 土木202班
   */
  deptName?: string;
  /**
   * @example
   * stru_standard_dept
   */
  deptStructType?: string;
  /**
   * @example
   * contact_class_dept
   */
  deptType?: string;
  /**
   * @example
   * 10000
   */
  structDeptId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      deptName: 'deptName',
      deptStructType: 'deptStructType',
      deptType: 'deptType',
      structDeptId: 'structDeptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      deptName: 'string',
      deptStructType: 'string',
      deptType: 'string',
      structDeptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultLeaderInDept extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  leader?: boolean;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      leader: 'leader',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      leader: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultRoleList extends $tea.Model {
  /**
   * @example
   * 职务
   */
  groupName?: string;
  /**
   * @example
   * 100
   */
  id?: number;
  /**
   * @example
   * 宿舍长
   */
  name?: string;
  static names(): { [key: string]: string } {
    return {
      groupName: 'groupName',
      id: 'id',
      name: 'name',
    };
  }

  static types(): { [key: string]: any } {
    return {
      groupName: 'string',
      id: 'number',
      name: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultUnionEmpExtUnionEmpMapList extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * 5000
   */
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResultUnionEmpExt extends $tea.Model {
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  unionEmpMapList?: QueryCollegeContactUserDetailResponseBodyResultUnionEmpExtUnionEmpMapList[];
  /**
   * @example
   * 500
   */
  userid?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      unionEmpMapList: 'unionEmpMapList',
      userid: 'userid',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      unionEmpMapList: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultUnionEmpExtUnionEmpMapList },
      userid: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryCollegeContactUserDetailResponseBodyResult extends $tea.Model {
  active?: boolean;
  admin?: boolean;
  /**
   * @example
   * xxxxxx
   */
  avatar?: string;
  boss?: boolean;
  deptIdList?: number[];
  deptOrderList?: QueryCollegeContactUserDetailResponseBodyResultDeptOrderList[];
  deptPositionSet?: QueryCollegeContactUserDetailResponseBodyResultDeptPositionSet[];
  deptTypeSet?: QueryCollegeContactUserDetailResponseBodyResultDeptTypeSet[];
  /**
   * @example
   * test@xxx.com
   */
  email?: string;
  /**
   * @example
   * college_student
   */
  empType?: string;
  exclusiveAccount?: boolean;
  exclusiveAccountCorpId?: string;
  /**
   * @example
   * 组织名称
   */
  exclusiveAccountCorpName?: string;
  /**
   * @example
   * dingtalk
   */
  exclusiveAccountType?: string;
  /**
   * @example
   * {"学号":"12122294","在校状态":"新生","学生类别":"本科生","考生号":"999888"}
   */
  extension?: string;
  hideMobile?: boolean;
  /**
   * @example
   * 1597573616828
   */
  hiredDate?: number;
  /**
   * @example
   * 12122294
   */
  jobNumber?: string;
  leaderInDept?: QueryCollegeContactUserDetailResponseBodyResultLeaderInDept[];
  /**
   * @example
   * 12122294
   */
  loginId?: string;
  /**
   * @example
   * studentNo
   */
  loginType?: string;
  /**
   * @example
   * 123456
   */
  mainDeptId?: number;
  /**
   * @example
   * 111111
   */
  managerUserid?: string;
  /**
   * @example
   * 188****4567
   */
  mobile?: string;
  /**
   * @example
   * 张三
   */
  name?: string;
  /**
   * @example
   * test@xxx.com
   */
  orgEmail?: string;
  /**
   * @example
   * profession
   */
  orgEmailType?: string;
  realAuthed?: boolean;
  /**
   * @example
   * 这是一个备注
   */
  remark?: string;
  roleList?: QueryCollegeContactUserDetailResponseBodyResultRoleList[];
  senior?: boolean;
  /**
   * @example
   * 86
   */
  stateCode?: string;
  /**
   * @example
   * 010-86123456-2345
   */
  telephone?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  unionEmpExt?: QueryCollegeContactUserDetailResponseBodyResultUnionEmpExt;
  /**
   * @example
   * z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ
   */
  unionId?: string;
  /**
   * @example
   * zhangsan666
   */
  userid?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      admin: 'admin',
      avatar: 'avatar',
      boss: 'boss',
      deptIdList: 'deptIdList',
      deptOrderList: 'deptOrderList',
      deptPositionSet: 'deptPositionSet',
      deptTypeSet: 'deptTypeSet',
      email: 'email',
      empType: 'empType',
      exclusiveAccount: 'exclusiveAccount',
      exclusiveAccountCorpId: 'exclusiveAccountCorpId',
      exclusiveAccountCorpName: 'exclusiveAccountCorpName',
      exclusiveAccountType: 'exclusiveAccountType',
      extension: 'extension',
      hideMobile: 'hideMobile',
      hiredDate: 'hiredDate',
      jobNumber: 'jobNumber',
      leaderInDept: 'leaderInDept',
      loginId: 'loginId',
      loginType: 'loginType',
      mainDeptId: 'mainDeptId',
      managerUserid: 'managerUserid',
      mobile: 'mobile',
      name: 'name',
      orgEmail: 'orgEmail',
      orgEmailType: 'orgEmailType',
      realAuthed: 'realAuthed',
      remark: 'remark',
      roleList: 'roleList',
      senior: 'senior',
      stateCode: 'stateCode',
      telephone: 'telephone',
      title: 'title',
      unionEmpExt: 'unionEmpExt',
      unionId: 'unionId',
      userid: 'userid',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      admin: 'boolean',
      avatar: 'string',
      boss: 'boolean',
      deptIdList: { 'type': 'array', 'itemType': 'number' },
      deptOrderList: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultDeptOrderList },
      deptPositionSet: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultDeptPositionSet },
      deptTypeSet: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultDeptTypeSet },
      email: 'string',
      empType: 'string',
      exclusiveAccount: 'boolean',
      exclusiveAccountCorpId: 'string',
      exclusiveAccountCorpName: 'string',
      exclusiveAccountType: 'string',
      extension: 'string',
      hideMobile: 'boolean',
      hiredDate: 'number',
      jobNumber: 'string',
      leaderInDept: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultLeaderInDept },
      loginId: 'string',
      loginType: 'string',
      mainDeptId: 'number',
      managerUserid: 'string',
      mobile: 'string',
      name: 'string',
      orgEmail: 'string',
      orgEmailType: 'string',
      realAuthed: 'boolean',
      remark: 'string',
      roleList: { 'type': 'array', 'itemType': QueryCollegeContactUserDetailResponseBodyResultRoleList },
      senior: 'boolean',
      stateCode: 'string',
      telephone: 'string',
      title: 'string',
      unionEmpExt: QueryCollegeContactUserDetailResponseBodyResultUnionEmpExt,
      unionId: 'string',
      userid: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdResponseBodyResultList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  appStatus?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceName?: string;
  static names(): { [key: string]: string } {
    return {
      appStatus: 'appStatus',
      deviceCode: 'deviceCode',
      deviceName: 'deviceName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      appStatus: 'number',
      deviceCode: 'string',
      deviceName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryDeviceListByCorpIdResponseBodyResult extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  hasMore?: boolean;
  /**
   * @remarks
   * This parameter is required.
   */
  list?: QueryDeviceListByCorpIdResponseBodyResultList[];
  static names(): { [key: string]: string } {
    return {
      hasMore: 'hasMore',
      list: 'list',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasMore: 'boolean',
      list: { 'type': 'array', 'itemType': QueryDeviceListByCorpIdResponseBodyResultList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryEduAssetSpacesResponseBodySpaces extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  createTimeMillis?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  modifyTimeMillis?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  permissionMode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  quota?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  spaceId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  spaceName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  spaceType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  usedQuota?: number;
  static names(): { [key: string]: string } {
    return {
      createTimeMillis: 'createTimeMillis',
      modifyTimeMillis: 'modifyTimeMillis',
      permissionMode: 'permissionMode',
      quota: 'quota',
      spaceId: 'spaceId',
      spaceName: 'spaceName',
      spaceType: 'spaceType',
      usedQuota: 'usedQuota',
    };
  }

  static types(): { [key: string]: any } {
    return {
      createTimeMillis: 'number',
      modifyTimeMillis: 'number',
      permissionMode: 'string',
      quota: 'number',
      spaceId: 'string',
      spaceName: 'string',
      spaceType: 'string',
      usedQuota: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryKitOpenRecordResponseBodyResult extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * course
   */
  isvProductScene?: string;
  /**
   * @example
   * 2025-01-20 00:00:00
   */
  openEndTime?: string;
  /**
   * @example
   * 2024-01-20 00:00:00
   */
  openStartTime?: string;
  /**
   * @example
   * staffxxx
   */
  openUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvProductScene: 'isvProductScene',
      openEndTime: 'openEndTime',
      openStartTime: 'openStartTime',
      openUserId: 'openUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvProductScene: 'string',
      openEndTime: 'string',
      openStartTime: 'string',
      openUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryModelResultByTaskIdResponseBodyResult extends $tea.Model {
  requestId?: string;
  result?: { [key: string]: any };
  static names(): { [key: string]: string } {
    return {
      requestId: 'requestId',
      result: 'result',
    };
  }

  static types(): { [key: string]: any } {
    return {
      requestId: 'string',
      result: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgRelationListResponseBodyResult extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  deviceCount?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  name?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      deviceCount: 'deviceCount',
      name: 'name',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      deviceCount: 'number',
      name: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryOrgSecretKeyResponseBodyUniversitySecretKeyInfo extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ghiufhk123
   */
  secretKey?: string;
  static names(): { [key: string]: string } {
    return {
      secretKey: 'secretKey',
    };
  }

  static types(): { [key: string]: any } {
    return {
      secretKey: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryPhysicalClassroomResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 主楼
   */
  classroomBuilding?: string;
  /**
   * @example
   * 主校区
   */
  classroomCampus?: string;
  /**
   * @example
   * 3层
   */
  classroomFloor?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10001
   */
  classroomId?: number;
  /**
   * @example
   * 实验教室
   */
  classroomName?: string;
  /**
   * @example
   * 301
   */
  classroomNumber?: string;
  /**
   * @example
   * Y
   */
  directBroadcast?: string;
  static names(): { [key: string]: string } {
    return {
      classroomBuilding: 'classroomBuilding',
      classroomCampus: 'classroomCampus',
      classroomFloor: 'classroomFloor',
      classroomId: 'classroomId',
      classroomName: 'classroomName',
      classroomNumber: 'classroomNumber',
      directBroadcast: 'directBroadcast',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classroomBuilding: 'string',
      classroomCampus: 'string',
      classroomFloor: 'string',
      classroomId: 'number',
      classroomName: 'string',
      classroomNumber: 'string',
      directBroadcast: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseResponseBodyResultAttendParticipants extends $tea.Model {
  corpId?: string;
  orgName?: string;
  participantId?: string;
  participantName?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      orgName: 'orgName',
      participantId: 'participantId',
      participantName: 'participantName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      orgName: 'string',
      participantId: 'string',
      participantName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseResponseBodyResultTeachingParticipant extends $tea.Model {
  corpId?: string;
  orgName?: string;
  participantId?: string;
  participantName?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      orgName: 'orgName',
      participantId: 'participantId',
      participantName: 'participantName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      orgName: 'string',
      participantId: 'string',
      participantName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryRemoteClassCourseResponseBodyResult extends $tea.Model {
  attendParticipants?: QueryRemoteClassCourseResponseBodyResultAttendParticipants[];
  canEdit?: boolean;
  courseCode?: string;
  courseName?: string;
  courseWays?: string[];
  endTime?: number;
  startTime?: number;
  status?: number;
  teachingParticipant?: QueryRemoteClassCourseResponseBodyResultTeachingParticipant;
  static names(): { [key: string]: string } {
    return {
      attendParticipants: 'attendParticipants',
      canEdit: 'canEdit',
      courseCode: 'courseCode',
      courseName: 'courseName',
      courseWays: 'courseWays',
      endTime: 'endTime',
      startTime: 'startTime',
      status: 'status',
      teachingParticipant: 'teachingParticipant',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attendParticipants: { 'type': 'array', 'itemType': QueryRemoteClassCourseResponseBodyResultAttendParticipants },
      canEdit: 'boolean',
      courseCode: 'string',
      courseName: 'string',
      courseWays: { 'type': 'array', 'itemType': 'string' },
      endTime: 'number',
      startTime: 'number',
      status: 'number',
      teachingParticipant: QueryRemoteClassCourseResponseBodyResultTeachingParticipant,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySchoolUserFaceResponseBodyUserFaceList extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 200001
   */
  faceId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 小明
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1有效；0无效
   */
  status?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 30001
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      faceId: 'faceId',
      name: 'name',
      status: 'status',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      faceId: 'string',
      name: 'string',
      status: 'number',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupBaseInfoResponseBodyResult extends $tea.Model {
  classId?: number;
  className?: string;
  corpId?: string;
  gradeLevel?: number;
  groupType?: string;
  periodCode?: string;
  requestId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      className: 'className',
      corpId: 'corpId',
      gradeLevel: 'gradeLevel',
      groupType: 'groupType',
      periodCode: 'periodCode',
      requestId: 'requestId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      className: 'string',
      corpId: 'string',
      gradeLevel: 'number',
      groupType: 'string',
      periodCode: 'string',
      requestId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoResponseBodyResultUserList extends $tea.Model {
  role?: string;
  userId?: string;
  userName?: string;
  static names(): { [key: string]: string } {
    return {
      role: 'role',
      userId: 'userId',
      userName: 'userName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      role: 'string',
      userId: 'string',
      userName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySelfBuildGroupUserInfoResponseBodyResult extends $tea.Model {
  classId?: number;
  corpId?: string;
  requestId?: string;
  userList?: QuerySelfBuildGroupUserInfoResponseBodyResultUserList[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      requestId: 'requestId',
      userList: 'userList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      requestId: 'string',
      userList: { 'type': 'array', 'itemType': QuerySelfBuildGroupUserInfoResponseBodyResultUserList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStatisticsDataResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 2345
   */
  classId?: number;
  /**
   * @example
   * 6
   */
  courseCount?: number;
  /**
   * @example
   * 9
   */
  courseHours?: number;
  /**
   * @example
   * cn_shuxue
   */
  subjectCode?: string;
  /**
   * @example
   * 语文
   */
  subjectName?: number;
  /**
   * @example
   * 2352345345
   */
  userId?: string;
  /**
   * @example
   * 李老师
   */
  userName?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      courseCount: 'courseCount',
      courseHours: 'courseHours',
      subjectCode: 'subjectCode',
      subjectName: 'subjectName',
      userId: 'userId',
      userName: 'userName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      courseCount: 'number',
      courseHours: 'number',
      subjectCode: 'string',
      subjectName: 'number',
      userId: 'string',
      userName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassResponseBodyResultStudentList extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * 小明
   */
  studentName?: string;
  /**
   * @example
   * studentxxx
   */
  studentUserId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      studentName: 'studentName',
      studentUserId: 'studentUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      studentName: 'string',
      studentUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryStudentClassResponseBodyResult extends $tea.Model {
  /**
   * @example
   * classIdxxx
   */
  classId?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * dingxxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  studentList?: QueryStudentClassResponseBodyResultStudentList[];
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      classType: 'classType',
      corpId: 'corpId',
      isvCode: 'isvCode',
      studentList: 'studentList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'string',
      classType: 'number',
      corpId: 'string',
      isvCode: 'string',
      studentList: { 'type': 'array', 'itemType': QueryStudentClassResponseBodyResultStudentList },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QuerySubjectTeachersResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 3333333
   */
  classId?: number;
  /**
   * @example
   * dingding142523424
   */
  corpId?: string;
  /**
   * @example
   * kindergarten
   */
  periodCode?: string;
  /**
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  /**
   * @example
   * 语文
   */
  subjectName?: string;
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * 50142345134
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      periodCode: 'periodCode',
      subjectCode: 'subjectCode',
      subjectName: 'subjectName',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      periodCode: 'string',
      subjectCode: 'string',
      subjectName: 'string',
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeachSubjectsResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 333333
   */
  classId?: number;
  /**
   * @example
   * dingding142523424
   */
  corpId?: string;
  /**
   * @example
   * kindergarten
   */
  periodCode?: string;
  /**
   * @example
   * cn_yuwen
   */
  subjectCode?: string;
  /**
   * @example
   * 语文
   */
  subjectName?: string;
  /**
   * @example
   * 李老师
   */
  teacherName?: string;
  /**
   * @example
   * 50142345134
   */
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      corpId: 'corpId',
      periodCode: 'periodCode',
      subjectCode: 'subjectCode',
      subjectName: 'subjectName',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      corpId: 'string',
      periodCode: 'string',
      subjectCode: 'string',
      subjectName: 'string',
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseResponseBodyResultTeacherCourseDetailItemList extends $tea.Model {
  attributes?: string;
  isvCourseId?: string;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      isvCourseId: 'isvCourseId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      isvCourseId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTeacherCourseResponseBodyResult extends $tea.Model {
  corpId?: string;
  isvCode?: string;
  teacherCourseDetailItemList?: QueryTeacherCourseResponseBodyResultTeacherCourseDetailItemList[];
  teacherName?: string;
  teacherUserId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      isvCode: 'isvCode',
      teacherCourseDetailItemList: 'teacherCourseDetailItemList',
      teacherName: 'teacherName',
      teacherUserId: 'teacherUserId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      isvCode: 'string',
      teacherCourseDetailItemList: { 'type': 'array', 'itemType': QueryTeacherCourseResponseBodyResultTeacherCourseDetailItemList },
      teacherName: 'string',
      teacherUserId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryTransferCourseResponseBodyResult extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * classIdx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * ISV_XXX
   */
  isvCode?: string;
  /**
   * @example
   * record_xxx
   */
  isvRecordId?: string;
  /**
   * @example
   * srcCode
   */
  srcCourseCode?: string;
  /**
   * @example
   * 0
   */
  srcCourseDate?: number;
  /**
   * @example
   * srcName
   */
  srcCourseName?: string;
  /**
   * @example
   * srcId
   */
  srcIsvCourseId?: string;
  /**
   * @example
   * 第一节
   */
  srcTimeslotName?: string;
  /**
   * @example
   * 1
   */
  srcTimeslotNum?: number;
  /**
   * @example
   * tarCode
   */
  tarCourseCode?: string;
  /**
   * @example
   * 0
   */
  tarCourseDate?: number;
  /**
   * @example
   * tarName
   */
  tarCourseName?: string;
  /**
   * @example
   * tarId
   */
  tarIsvCourseId?: string;
  /**
   * @example
   * 第一节
   */
  tarTimeslotName?: string;
  /**
   * @example
   * 1
   */
  tarTimeslotNum?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      corpId: 'corpId',
      isvCode: 'isvCode',
      isvRecordId: 'isvRecordId',
      srcCourseCode: 'srcCourseCode',
      srcCourseDate: 'srcCourseDate',
      srcCourseName: 'srcCourseName',
      srcIsvCourseId: 'srcIsvCourseId',
      srcTimeslotName: 'srcTimeslotName',
      srcTimeslotNum: 'srcTimeslotNum',
      tarCourseCode: 'tarCourseCode',
      tarCourseDate: 'tarCourseDate',
      tarCourseName: 'tarCourseName',
      tarIsvCourseId: 'tarIsvCourseId',
      tarTimeslotName: 'tarTimeslotName',
      tarTimeslotNum: 'tarTimeslotNum',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      corpId: 'string',
      isvCode: 'string',
      isvRecordId: 'string',
      srcCourseCode: 'string',
      srcCourseDate: 'number',
      srcCourseName: 'string',
      srcIsvCourseId: 'string',
      srcTimeslotName: 'string',
      srcTimeslotNum: 'number',
      tarCourseCode: 'string',
      tarCourseDate: 'number',
      tarCourseName: 'string',
      tarIsvCourseId: 'string',
      tarTimeslotName: 'string',
      tarTimeslotNum: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemEndDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemStartDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1、单周；2、双周；3、全周
   */
  classPeriodType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10001
   */
  classroomId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1:音视频直播；2:线下课程；4:音视频及线下
   */
  courseType?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemEndDate?: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemEndDate;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemStartDate?: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemStartDate;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 7
   */
  dayOfWeek?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionIndex?: number[];
  static names(): { [key: string]: string } {
    return {
      classPeriodType: 'classPeriodType',
      classroomId: 'classroomId',
      courseType: 'courseType',
      courserGroupItemEndDate: 'courserGroupItemEndDate',
      courserGroupItemStartDate: 'courserGroupItemStartDate',
      dayOfWeek: 'dayOfWeek',
      sectionIndex: 'sectionIndex',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classPeriodType: 'number',
      classroomId: 'number',
      courseType: 'number',
      courserGroupItemEndDate: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemEndDate,
      courserGroupItemStartDate: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModelsCourserGroupItemStartDate,
      dayOfWeek: 'number',
      sectionIndex: { 'type': 'array', 'itemType': 'number' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfo extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GS1001
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高数
   */
  courseGroupIntroduce?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高数_李老师
   */
  courseGroupName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemModels?: QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModels[];
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * GZ1001
   */
  isvCourseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * university
   */
  periodCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021-2022
   */
  schoolYear?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  semester?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 高等数学
   */
  subjectName?: string;
  static names(): { [key: string]: string } {
    return {
      courseGroupCode: 'courseGroupCode',
      courseGroupIntroduce: 'courseGroupIntroduce',
      courseGroupName: 'courseGroupName',
      courserGroupItemModels: 'courserGroupItemModels',
      isvCourseGroupCode: 'isvCourseGroupCode',
      periodCode: 'periodCode',
      schoolYear: 'schoolYear',
      semester: 'semester',
      subjectName: 'subjectName',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseGroupCode: 'string',
      courseGroupIntroduce: 'string',
      courseGroupName: 'string',
      courserGroupItemModels: { 'type': 'array', 'itemType': QueryUniversityCourseGroupResponseBodyUniversityCourseGroupInfoCourserGroupItemModels },
      isvCourseGroupCode: 'string',
      periodCode: 'string',
      schoolYear: 'string',
      semester: 'number',
      subjectName: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveClassLearningDataResponseBodyResult extends $tea.Model {
  questionUploadUrlList?: string[];
  standardAnswerUploadUrlList?: string[];
  static names(): { [key: string]: string } {
    return {
      questionUploadUrlList: 'questionUploadUrlList',
      standardAnswerUploadUrlList: 'standardAnswerUploadUrlList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      questionUploadUrlList: { 'type': 'array', 'itemType': 'string' },
      standardAnswerUploadUrlList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataRequestWrongQuestions extends $tea.Model {
  knowledgePoints?: string[];
  /**
   * @example
   * 1
   */
  questionNo?: string;
  /**
   * @example
   * 1
   */
  questionPictureNum?: number;
  /**
   * @example
   * 1
   */
  standardAnswerPictureNum?: number;
  /**
   * @example
   * 1
   */
  userAnswerPictureNum?: number;
  static names(): { [key: string]: string } {
    return {
      knowledgePoints: 'knowledgePoints',
      questionNo: 'questionNo',
      questionPictureNum: 'questionPictureNum',
      standardAnswerPictureNum: 'standardAnswerPictureNum',
      userAnswerPictureNum: 'userAnswerPictureNum',
    };
  }

  static types(): { [key: string]: any } {
    return {
      knowledgePoints: { 'type': 'array', 'itemType': 'string' },
      questionNo: 'string',
      questionPictureNum: 'number',
      standardAnswerPictureNum: 'number',
      userAnswerPictureNum: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataResponseBodyResultWrongQuestions extends $tea.Model {
  /**
   * @example
   * 1
   */
  questionNo?: string;
  questionUploadUrlList?: string[];
  standardAnswerUploadUrlList?: string[];
  userAnswerUploadUrlList?: string[];
  static names(): { [key: string]: string } {
    return {
      questionNo: 'questionNo',
      questionUploadUrlList: 'questionUploadUrlList',
      standardAnswerUploadUrlList: 'standardAnswerUploadUrlList',
      userAnswerUploadUrlList: 'userAnswerUploadUrlList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      questionNo: 'string',
      questionUploadUrlList: { 'type': 'array', 'itemType': 'string' },
      standardAnswerUploadUrlList: { 'type': 'array', 'itemType': 'string' },
      userAnswerUploadUrlList: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SaveStudentLearningDataResponseBodyResult extends $tea.Model {
  saveSuccess?: boolean;
  wrongQuestions?: SaveStudentLearningDataResponseBodyResultWrongQuestions[];
  static names(): { [key: string]: string } {
    return {
      saveSuccess: 'saveSuccess',
      wrongQuestions: 'wrongQuestions',
    };
  }

  static types(): { [key: string]: any } {
    return {
      saveSuccess: 'boolean',
      wrongQuestions: { 'type': 'array', 'itemType': SaveStudentLearningDataResponseBodyResultWrongQuestions },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SchoolReportDetailReadedResponseBodyResult extends $tea.Model {
  schoolReportDetailId?: string[];
  static names(): { [key: string]: string } {
    return {
      schoolReportDetailId: 'schoolReportDetailId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      schoolReportDetailId: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class SearchTeachersResponseBodyUsers extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123
   */
  classId?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 紫金港校区-小学-二年级2019级-二年级8班
   */
  deptName?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 李老师
   */
  name?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 12345678
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      classId: 'classId',
      deptName: 'deptName',
      name: 'name',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classId: 'number',
      deptName: 'string',
      name: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseRequestLivePlayInfoList extends $tea.Model {
  /**
   * @example
   * testUrl
   */
  liveInputUrl?: string;
  /**
   * @example
   * testUrl
   */
  liveOutputFlvUrl?: string;
  /**
   * @example
   * testUrl
   */
  liveOutputHlsUrl?: string;
  /**
   * @example
   * 1
   */
  liveType?: number;
  /**
   * @example
   * testUrl
   */
  replayUrl?: string;
  static names(): { [key: string]: string } {
    return {
      liveInputUrl: 'liveInputUrl',
      liveOutputFlvUrl: 'liveOutputFlvUrl',
      liveOutputHlsUrl: 'liveOutputHlsUrl',
      liveType: 'liveType',
      replayUrl: 'replayUrl',
    };
  }

  static types(): { [key: string]: any } {
    return {
      liveInputUrl: 'string',
      liveOutputFlvUrl: 'string',
      liveOutputHlsUrl: 'string',
      liveType: 'number',
      replayUrl: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCourseResponseBodyUniversityCourseCommonResponse extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class StartCoursePrepareResponseBodyUniversityCourseCommonResponse extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * testCourseCode
   */
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      success: 'success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      success: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassRequestOpenClass extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  classLevel?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 熊猫班
   */
  nick?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * true
   */
  onlyUseNick?: string;
  static names(): { [key: string]: string } {
    return {
      classLevel: 'classLevel',
      nick: 'nick',
      onlyUseNick: 'onlyUseNick',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classLevel: 'number',
      nick: 'string',
      onlyUseNick: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateClassResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 234324
   */
  deptId?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptRequestHideSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactDeptRequestOuterSceneConfig extends $tea.Model {
  active?: boolean;
  chatboxSubtitle?: boolean;
  nodeList?: boolean;
  profile?: boolean;
  search?: boolean;
  static names(): { [key: string]: string } {
    return {
      active: 'active',
      chatboxSubtitle: 'chatboxSubtitle',
      nodeList: 'nodeList',
      profile: 'profile',
      search: 'search',
    };
  }

  static types(): { [key: string]: any } {
    return {
      active: 'boolean',
      chatboxSubtitle: 'boolean',
      nodeList: 'boolean',
      profile: 'boolean',
      search: 'boolean',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveRequestDeptOrderList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 1
   */
  order?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      order: 'order',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      order: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveRequestDeptPositionSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 001
   */
  managerUserId?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      managerUserId: 'managerUserId',
      title: 'title',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      managerUserId: 'string',
      title: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactExclusiveRequestDeptTitleList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserRequestDeptOrderList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 1
   */
  order?: number;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      order: 'order',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      order: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserRequestDeptPositionSet extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 001
   */
  managerUserId?: string;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  /**
   * @example
   * 学工处办公室
   */
  workPlace?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      managerUserId: 'managerUserId',
      title: 'title',
      workPlace: 'workPlace',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      managerUserId: 'string',
      title: 'string',
      workPlace: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCollegeContactUserRequestDeptTitleList extends $tea.Model {
  /**
   * @example
   * 123456
   */
  deptId?: number;
  /**
   * @example
   * 学工处处长
   */
  title?: string;
  static names(): { [key: string]: string } {
    return {
      deptId: 'deptId',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      deptId: 'number',
      title: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestCoursesDateModel extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 9
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 11
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2020
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestCoursesSectionModel extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 第一节/午休
   */
  sectionName?: string;
  sectionType?: string;
  static names(): { [key: string]: string } {
    return {
      sectionIndex: 'sectionIndex',
      sectionName: 'sectionName',
      sectionType: 'sectionType',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionIndex: 'number',
      sectionName: 'string',
      sectionType: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestCourses extends $tea.Model {
  courseCode?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  courseGroupCode?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 李老师
   */
  creatorName?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  dateModel?: UpdateCoursesOfClassRequestCoursesDateModel;
  deleteTag?: boolean;
  /**
   * @example
   * 正心楼1-1
   */
  location?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionModel?: UpdateCoursesOfClassRequestCoursesSectionModel;
  teacherStaffIds?: string[];
  static names(): { [key: string]: string } {
    return {
      courseCode: 'courseCode',
      courseGroupCode: 'courseGroupCode',
      courseName: 'courseName',
      creatorName: 'creatorName',
      dateModel: 'dateModel',
      deleteTag: 'deleteTag',
      location: 'location',
      sectionModel: 'sectionModel',
      teacherStaffIds: 'teacherStaffIds',
    };
  }

  static types(): { [key: string]: any } {
    return {
      courseCode: 'string',
      courseGroupCode: 'string',
      courseName: 'string',
      creatorName: 'string',
      dateModel: UpdateCoursesOfClassRequestCoursesDateModel,
      deleteTag: 'boolean',
      location: 'string',
      sectionModel: UpdateCoursesOfClassRequestCoursesSectionModel,
      teacherStaffIds: { 'type': 'array', 'itemType': 'string' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestSectionConfigSectionModelsEnd extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 45
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestSectionConfigSectionModelsStart extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  hour?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 0
   */
  min?: number;
  static names(): { [key: string]: string } {
    return {
      hour: 'hour',
      min: 'min',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hour: 'number',
      min: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestSectionConfigSectionModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  end?: UpdateCoursesOfClassRequestSectionConfigSectionModelsEnd;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  sectionIndex?: number;
  /**
   * @example
   * COURSE：上课节次 REST：休息节次
   */
  sectionType?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  start?: UpdateCoursesOfClassRequestSectionConfigSectionModelsStart;
  static names(): { [key: string]: string } {
    return {
      end: 'end',
      sectionIndex: 'sectionIndex',
      sectionType: 'sectionType',
      start: 'start',
    };
  }

  static types(): { [key: string]: any } {
    return {
      end: UpdateCoursesOfClassRequestSectionConfigSectionModelsEnd,
      sectionIndex: 'number',
      sectionType: 'string',
      start: UpdateCoursesOfClassRequestSectionConfigSectionModelsStart,
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateCoursesOfClassRequestSectionConfig extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  sectionModels?: UpdateCoursesOfClassRequestSectionConfigSectionModels[];
  static names(): { [key: string]: string } {
    return {
      sectionModels: 'sectionModels',
    };
  }

  static types(): { [key: string]: any } {
    return {
      sectionModels: { 'type': 'array', 'itemType': UpdateCoursesOfClassRequestSectionConfigSectionModels },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateEvaluatePerformanceCountRequestUnreadData extends $tea.Model {
  number?: number;
  studentId?: string;
  static names(): { [key: string]: string } {
    return {
      number: 'number',
      studentId: 'studentId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      number: 'number',
      studentId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateGuardianResponseBodyResult extends $tea.Model {
  /**
   * @example
   * 234234234
   */
  bizId?: string;
  /**
   * @example
   * 234234234
   */
  userId?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      userId: 'userId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizId: 'string',
      userId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseRequestAttendParticipants extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding234567
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 234567
   */
  participantId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      participantId: 'participantId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      participantId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateRemoteClassCourseRequestTeachingParticipant extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * ding123456
   */
  corpId?: string;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 123456
   */
  participantId?: string;
  static names(): { [key: string]: string } {
    return {
      corpId: 'corpId',
      participantId: 'participantId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      corpId: 'string',
      participantId: 'string',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 31
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1
   */
  dayOfMonth?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 10
   */
  month?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 2021
   */
  year?: number;
  static names(): { [key: string]: string } {
    return {
      dayOfMonth: 'dayOfMonth',
      month: 'month',
      year: 'year',
    };
  }

  static types(): { [key: string]: any } {
    return {
      dayOfMonth: 'number',
      month: 'number',
      year: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class UpdateUniversityCourseGroupRequestCourserGroupItemModels extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1、单周；2、双周；3、全周
   */
  classPeriodType?: number;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 1:音视频直播\2:线下课程\4:音视频及线下
   */
  classroomId?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  courseType?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemEndDate?: UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate;
  /**
   * @remarks
   * This parameter is required.
   */
  courserGroupItemStartDate?: UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate;
  /**
   * @remarks
   * This parameter is required.
   * 
   * @example
   * 7
   */
  dayOfWeek?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  sectionIndex?: number[];
  static names(): { [key: string]: string } {
    return {
      classPeriodType: 'classPeriodType',
      classroomId: 'classroomId',
      courseType: 'courseType',
      courserGroupItemEndDate: 'courserGroupItemEndDate',
      courserGroupItemStartDate: 'courserGroupItemStartDate',
      dayOfWeek: 'dayOfWeek',
      sectionIndex: 'sectionIndex',
    };
  }

  static types(): { [key: string]: any } {
    return {
      classPeriodType: 'number',
      classroomId: 'number',
      courseType: 'number',
      courserGroupItemEndDate: UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemEndDate,
      courserGroupItemStartDate: UpdateUniversityCourseGroupRequestCourserGroupItemModelsCourserGroupItemStartDate,
      dayOfWeek: 'number',
      sectionIndex: { 'type': 'array', 'itemType': 'number' },
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}

export class QueryClassCourseResponseBodyResult extends $tea.Model {
  /**
   * @example
   * {""}
   */
  attributes?: string;
  /**
   * @example
   * class_xxx
   */
  classId?: string;
  /**
   * @example
   * 一年级一班
   */
  className?: string;
  /**
   * @example
   * classroom_xxx
   */
  classRoomId?: string;
  /**
   * @example
   * 音乐教室
   */
  classRoomName?: string;
  /**
   * @example
   * 1
   */
  classType?: number;
  /**
   * @example
   * ding_xxx
   */
  corpId?: string;
  /**
   * @example
   * course_xxx
   */
  courseCode?: string;
  /**
   * @example
   * 2024-11-11 00:00:00
   */
  courseDate?: string;
  /**
   * @example
   * 语文
   */
  courseName?: string;
  /**
   * @example
   * 0
   */
  courseWeek?: number;
  /**
   * @example
   * 2024-11-12 09:00:00
   */
  endTime?: string;
  /**
   * @example
   * isv_xxx
   */
  isvCode?: string;
  /**
   * @example
   * course_xxx
   */
  isvCourseId?: string;
  /**
   * @example
   * memo
   */
  memo?: string;
  /**
   * @example
   * 2024
   */
  schoolYear?: string;
  /**
   * @example
   * 1
   */
  semester?: number;
  /**
   * @example
   * 2024-11-12 09:00:00
   */
  startTime?: string;
  /**
   * @example
   * 1
   */
  status?: number;
  /**
   * @example
   * 1
   */
  teachWeek?: number;
  /**
   * @example
   * 第一节
   */
  timeslotName?: string;
  /**
   * @example
   * 1
   */
  timeslotNum?: number;
  /**
   * @example
   * 1
   */
  type?: number;
  static names(): { [key: string]: string } {
    return {
      attributes: 'attributes',
      classId: 'classId',
      className: 'className',
      classRoomId: 'classRoomId',
      classRoomName: 'classRoomName',
      classType: 'classType',
      corpId: 'corpId',
      courseCode: 'courseCode',
      courseDate: 'courseDate',
      courseName: 'courseName',
      courseWeek: 'courseWeek',
      endTime: 'endTime',
      isvCode: 'isvCode',
      isvCourseId: 'isvCourseId',
      memo: 'memo',
      schoolYear: 'schoolYear',
      semester: 'semester',
      startTime: 'startTime',
      status: 'status',
      teachWeek: 'teachWeek',
      timeslotName: 'timeslotName',
      timeslotNum: 'timeslotNum',
      type: 'type',
    };
  }

  static types(): { [key: string]: any } {
    return {
      attributes: 'string',
      classId: 'string',
      className: 'string',
      classRoomId: 'string',
      classRoomName: 'string',
      classType: 'number',
      corpId: 'string',
      courseCode: 'string',
      courseDate: 'string',
      courseName: 'string',
      courseWeek: 'number',
      endTime: 'string',
      isvCode: 'string',
      isvCourseId: 'string',
      memo: 'string',
      schoolYear: 'string',
      semester: 'number',
      startTime: 'string',
      status: 'number',
      teachWeek: 'number',
      timeslotName: 'string',
      timeslotNum: 'number',
      type: 'number',
    };
  }

  constructor(map?: { [key: string]: any }) {
    super(map);
  }
}


export default class Client extends OpenApi {

  constructor(config: $OpenApi.Config) {
    super(config);
    let gatewayClient = new GatewayClient();
    this._spi = gatewayClient;
    this._endpointRule = "";
    if (Util.empty(this._endpoint)) {
      this._endpoint = "api.dingtalk.com";
    }

  }


  /**
   * 视讯paas机具激活
   * 
   * @param request - ActivateDeviceRequest
   * @param headers - ActivateDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ActivateDeviceResponse
   */
  async activateDeviceWithOptions(request: ActivateDeviceRequest, headers: ActivateDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<ActivateDeviceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.licenseKey)) {
      body["licenseKey"] = request.licenseKey;
    }

    if (!Util.isUnset(request.model)) {
      body["model"] = request.model;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ActivateDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices/activate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ActivateDeviceResponse>(await this.execute(params, req, runtime), new ActivateDeviceResponse({}));
  }

  /**
   * 视讯paas机具激活
   * 
   * @param request - ActivateDeviceRequest
   * @returns ActivateDeviceResponse
   */
  async activateDevice(request: ActivateDeviceRequest): Promise<ActivateDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ActivateDeviceHeaders({ });
    return await this.activateDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会批量创建部门
   * 
   * @param request - AddCollegeAlumniDeptsRequest
   * @param headers - AddCollegeAlumniDeptsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddCollegeAlumniDeptsResponse
   */
  async addCollegeAlumniDeptsWithOptions(request: AddCollegeAlumniDeptsRequest, headers: AddCollegeAlumniDeptsHeaders, runtime: $Util.RuntimeOptions): Promise<AddCollegeAlumniDeptsResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.depts)) {
      body["depts"] = request.depts;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddCollegeAlumniDepts",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/depts/batch`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddCollegeAlumniDeptsResponse>(await this.execute(params, req, runtime), new AddCollegeAlumniDeptsResponse({}));
  }

  /**
   * 高校校友会批量创建部门
   * 
   * @param request - AddCollegeAlumniDeptsRequest
   * @returns AddCollegeAlumniDeptsResponse
   */
  async addCollegeAlumniDepts(request: AddCollegeAlumniDeptsRequest): Promise<AddCollegeAlumniDeptsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddCollegeAlumniDeptsHeaders({ });
    return await this.addCollegeAlumniDeptsWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会新增校友信息
   * 
   * @param request - AddCollegeAlumniUserInfoRequest
   * @param headers - AddCollegeAlumniUserInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddCollegeAlumniUserInfoResponse
   */
  async addCollegeAlumniUserInfoWithOptions(request: AddCollegeAlumniUserInfoRequest, headers: AddCollegeAlumniUserInfoHeaders, runtime: $Util.RuntimeOptions): Promise<AddCollegeAlumniUserInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.address)) {
      body["address"] = request.address;
    }

    if (!Util.isUnset(request.deptIds)) {
      body["deptIds"] = request.deptIds;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.intake)) {
      body["intake"] = request.intake;
    }

    if (!Util.isUnset(request.mobile)) {
      body["mobile"] = request.mobile;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.outtake)) {
      body["outtake"] = request.outtake;
    }

    if (!Util.isUnset(request.studentNumber)) {
      body["studentNumber"] = request.studentNumber;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddCollegeAlumniUserInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/userInfos`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddCollegeAlumniUserInfoResponse>(await this.execute(params, req, runtime), new AddCollegeAlumniUserInfoResponse({}));
  }

  /**
   * 高校校友会新增校友信息
   * 
   * @param request - AddCollegeAlumniUserInfoRequest
   * @returns AddCollegeAlumniUserInfoResponse
   */
  async addCollegeAlumniUserInfo(request: AddCollegeAlumniUserInfoRequest): Promise<AddCollegeAlumniUserInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddCollegeAlumniUserInfoHeaders({ });
    return await this.addCollegeAlumniUserInfoWithOptions(request, headers, runtime);
  }

  /**
   * 创建高校账号用户
   * 
   * @param request - AddCollegeContactExclusiveRequest
   * @param headers - AddCollegeContactExclusiveHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddCollegeContactExclusiveResponse
   */
  async addCollegeContactExclusiveWithOptions(request: AddCollegeContactExclusiveRequest, headers: AddCollegeContactExclusiveHeaders, runtime: $Util.RuntimeOptions): Promise<AddCollegeContactExclusiveResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.avatarMediaId)) {
      body["avatarMediaId"] = request.avatarMediaId;
    }

    if (!Util.isUnset(request.deptIdList)) {
      body["deptIdList"] = request.deptIdList;
    }

    if (!Util.isUnset(request.deptOrderList)) {
      body["deptOrderList"] = request.deptOrderList;
    }

    if (!Util.isUnset(request.deptPositionSet)) {
      body["deptPositionSet"] = request.deptPositionSet;
    }

    if (!Util.isUnset(request.deptTitleList)) {
      body["deptTitleList"] = request.deptTitleList;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.empType)) {
      body["empType"] = request.empType;
    }

    if (!Util.isUnset(request.exclusiveAccount)) {
      body["exclusiveAccount"] = request.exclusiveAccount;
    }

    if (!Util.isUnset(request.exclusiveAccountType)) {
      body["exclusiveAccountType"] = request.exclusiveAccountType;
    }

    if (!Util.isUnset(request.exclusiveMobileVerifyStatus)) {
      body["exclusiveMobileVerifyStatus"] = request.exclusiveMobileVerifyStatus;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.hiredDate)) {
      body["hiredDate"] = request.hiredDate;
    }

    if (!Util.isUnset(request.initPassword)) {
      body["initPassword"] = request.initPassword;
    }

    if (!Util.isUnset(request.jobNumber)) {
      body["jobNumber"] = request.jobNumber;
    }

    if (!Util.isUnset(request.loginIdType)) {
      body["loginIdType"] = request.loginIdType;
    }

    if (!Util.isUnset(request.mainDeptId)) {
      body["mainDeptId"] = request.mainDeptId;
    }

    if (!Util.isUnset(request.managerUserid)) {
      body["managerUserid"] = request.managerUserid;
    }

    if (!Util.isUnset(request.mobile)) {
      body["mobile"] = request.mobile;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.nickname)) {
      body["nickname"] = request.nickname;
    }

    if (!Util.isUnset(request.orgEmail)) {
      body["orgEmail"] = request.orgEmail;
    }

    if (!Util.isUnset(request.orgEmailType)) {
      body["orgEmailType"] = request.orgEmailType;
    }

    if (!Util.isUnset(request.remark)) {
      body["remark"] = request.remark;
    }

    if (!Util.isUnset(request.sendActiveSms)) {
      body["sendActiveSms"] = request.sendActiveSms;
    }

    if (!Util.isUnset(request.seniorMode)) {
      body["seniorMode"] = request.seniorMode;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.title)) {
      body["title"] = request.title;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    if (!Util.isUnset(request.workPlace)) {
      body["workPlace"] = request.workPlace;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddCollegeContactExclusive",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/exclusiveAccounts/users`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddCollegeContactExclusiveResponse>(await this.execute(params, req, runtime), new AddCollegeContactExclusiveResponse({}));
  }

  /**
   * 创建高校账号用户
   * 
   * @param request - AddCollegeContactExclusiveRequest
   * @returns AddCollegeContactExclusiveResponse
   */
  async addCollegeContactExclusive(request: AddCollegeContactExclusiveRequest): Promise<AddCollegeContactExclusiveResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddCollegeContactExclusiveHeaders({ });
    return await this.addCollegeContactExclusiveWithOptions(request, headers, runtime);
  }

  /**
   * 创建个人账号用户
   * 
   * @param request - AddCollegeContactUserRequest
   * @param headers - AddCollegeContactUserHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddCollegeContactUserResponse
   */
  async addCollegeContactUserWithOptions(request: AddCollegeContactUserRequest, headers: AddCollegeContactUserHeaders, runtime: $Util.RuntimeOptions): Promise<AddCollegeContactUserResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptIdList)) {
      body["deptIdList"] = request.deptIdList;
    }

    if (!Util.isUnset(request.deptOrderList)) {
      body["deptOrderList"] = request.deptOrderList;
    }

    if (!Util.isUnset(request.deptPositionSet)) {
      body["deptPositionSet"] = request.deptPositionSet;
    }

    if (!Util.isUnset(request.deptTitleList)) {
      body["deptTitleList"] = request.deptTitleList;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.empType)) {
      body["empType"] = request.empType;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.hideMobile)) {
      body["hideMobile"] = request.hideMobile;
    }

    if (!Util.isUnset(request.hiredDate)) {
      body["hiredDate"] = request.hiredDate;
    }

    if (!Util.isUnset(request.jobNumber)) {
      body["jobNumber"] = request.jobNumber;
    }

    if (!Util.isUnset(request.loginEmail)) {
      body["loginEmail"] = request.loginEmail;
    }

    if (!Util.isUnset(request.mainDeptId)) {
      body["mainDeptId"] = request.mainDeptId;
    }

    if (!Util.isUnset(request.managerUserid)) {
      body["managerUserid"] = request.managerUserid;
    }

    if (!Util.isUnset(request.mobile)) {
      body["mobile"] = request.mobile;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.orgEmail)) {
      body["orgEmail"] = request.orgEmail;
    }

    if (!Util.isUnset(request.orgEmailType)) {
      body["orgEmailType"] = request.orgEmailType;
    }

    if (!Util.isUnset(request.remark)) {
      body["remark"] = request.remark;
    }

    if (!Util.isUnset(request.sendActiveSms)) {
      body["sendActiveSms"] = request.sendActiveSms;
    }

    if (!Util.isUnset(request.seniorMode)) {
      body["seniorMode"] = request.seniorMode;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.title)) {
      body["title"] = request.title;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    if (!Util.isUnset(request.workPlace)) {
      body["workPlace"] = request.workPlace;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddCollegeContactUser",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/personalAccounts/users`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddCollegeContactUserResponse>(await this.execute(params, req, runtime), new AddCollegeContactUserResponse({}));
  }

  /**
   * 创建个人账号用户
   * 
   * @param request - AddCollegeContactUserRequest
   * @returns AddCollegeContactUserResponse
   */
  async addCollegeContactUser(request: AddCollegeContactUserRequest): Promise<AddCollegeContactUserResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddCollegeContactUserHeaders({ });
    return await this.addCollegeContactUserWithOptions(request, headers, runtime);
  }

  /**
   * 增加赛事记录
   * 
   * @param request - AddCompetitionRecordRequest
   * @param headers - AddCompetitionRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddCompetitionRecordResponse
   */
  async addCompetitionRecordWithOptions(request: AddCompetitionRecordRequest, headers: AddCompetitionRecordHeaders, runtime: $Util.RuntimeOptions): Promise<AddCompetitionRecordResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.competitionCode)) {
      body["competitionCode"] = request.competitionCode;
    }

    if (!Util.isUnset(request.groupTemplateCode)) {
      body["groupTemplateCode"] = request.groupTemplateCode;
    }

    if (!Util.isUnset(request.joinGroup)) {
      body["joinGroup"] = request.joinGroup;
    }

    if (!Util.isUnset(request.participantName)) {
      body["participantName"] = request.participantName;
    }

    if (!Util.isUnset(request.unionId)) {
      body["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddCompetitionRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/competitions/records`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddCompetitionRecordResponse>(await this.execute(params, req, runtime), new AddCompetitionRecordResponse({}));
  }

  /**
   * 增加赛事记录
   * 
   * @param request - AddCompetitionRecordRequest
   * @returns AddCompetitionRecordResponse
   */
  async addCompetitionRecord(request: AddCompetitionRecordRequest): Promise<AddCompetitionRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddCompetitionRecordHeaders({ });
    return await this.addCompetitionRecordWithOptions(request, headers, runtime);
  }

  /**
   * 添加设备
   * 
   * @param request - AddDeviceRequest
   * @param headers - AddDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddDeviceResponse
   */
  async addDeviceWithOptions(request: AddDeviceRequest, headers: AddDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<AddDeviceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.model)) {
      body["model"] = request.model;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/devices`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddDeviceResponse>(await this.execute(params, req, runtime), new AddDeviceResponse({}));
  }

  /**
   * 添加设备
   * 
   * @param request - AddDeviceRequest
   * @returns AddDeviceResponse
   */
  async addDevice(request: AddDeviceRequest): Promise<AddDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddDeviceHeaders({ });
    return await this.addDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 添加评价表现数据
   * 
   * @param request - AddEvaluatePerformanceRequest
   * @param headers - AddEvaluatePerformanceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddEvaluatePerformanceResponse
   */
  async addEvaluatePerformanceWithOptions(request: AddEvaluatePerformanceRequest, headers: AddEvaluatePerformanceHeaders, runtime: $Util.RuntimeOptions): Promise<AddEvaluatePerformanceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.evaluationData)) {
      body["evaluationData"] = request.evaluationData;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddEvaluatePerformance",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/evaluations`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddEvaluatePerformanceResponse>(await this.execute(params, req, runtime), new AddEvaluatePerformanceResponse({}));
  }

  /**
   * 添加评价表现数据
   * 
   * @param request - AddEvaluatePerformanceRequest
   * @returns AddEvaluatePerformanceResponse
   */
  async addEvaluatePerformance(request: AddEvaluatePerformanceRequest): Promise<AddEvaluatePerformanceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddEvaluatePerformanceHeaders({ });
    return await this.addEvaluatePerformanceWithOptions(request, headers, runtime);
  }

  /**
   * 添加学校配置
   * 
   * @param request - AddSchoolConfigRequest
   * @param headers - AddSchoolConfigHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddSchoolConfigResponse
   */
  async addSchoolConfigWithOptions(request: AddSchoolConfigRequest, headers: AddSchoolConfigHeaders, runtime: $Util.RuntimeOptions): Promise<AddSchoolConfigResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operatorId)) {
      body["operatorId"] = request.operatorId;
    }

    if (!Util.isUnset(request.operatorName)) {
      body["operatorName"] = request.operatorName;
    }

    if (!Util.isUnset(request.temperatureUpLimit)) {
      body["temperatureUpLimit"] = request.temperatureUpLimit;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddSchoolConfig",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/configurations`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddSchoolConfigResponse>(await this.execute(params, req, runtime), new AddSchoolConfigResponse({}));
  }

  /**
   * 添加学校配置
   * 
   * @param request - AddSchoolConfigRequest
   * @returns AddSchoolConfigResponse
   */
  async addSchoolConfig(request: AddSchoolConfigRequest): Promise<AddSchoolConfigResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddSchoolConfigHeaders({ });
    return await this.addSchoolConfigWithOptions(request, headers, runtime);
  }

  /**
   * 新增用户事件跟踪日志
   * 
   * @param request - AddTraceEventRequest
   * @param headers - AddTraceEventHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AddTraceEventResponse
   */
  async addTraceEventWithOptions(request: AddTraceEventRequest, headers: AddTraceEventHeaders, runtime: $Util.RuntimeOptions): Promise<AddTraceEventResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionKey)) {
      body["actionKey"] = request.actionKey;
    }

    if (!Util.isUnset(request.actionTime)) {
      body["actionTime"] = request.actionTime;
    }

    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.bizReq)) {
      body["bizReq"] = request.bizReq;
    }

    if (!Util.isUnset(request.bizResp)) {
      body["bizResp"] = request.bizResp;
    }

    if (!Util.isUnset(request.deviceId)) {
      body["deviceId"] = request.deviceId;
    }

    if (!Util.isUnset(request.eventId)) {
      body["eventId"] = request.eventId;
    }

    if (!Util.isUnset(request.eventType)) {
      body["eventType"] = request.eventType;
    }

    if (!Util.isUnset(request.eventUnit)) {
      body["eventUnit"] = request.eventUnit;
    }

    if (!Util.isUnset(request.eventValue)) {
      body["eventValue"] = request.eventValue;
    }

    if (!Util.isUnset(request.extend)) {
      body["extend"] = request.extend;
    }

    if (!Util.isUnset(request.platform)) {
      body["platform"] = request.platform;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AddTraceEvent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/sns/users/events/traceLogs`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AddTraceEventResponse>(await this.execute(params, req, runtime), new AddTraceEventResponse({}));
  }

  /**
   * 新增用户事件跟踪日志
   * 
   * @param request - AddTraceEventRequest
   * @returns AddTraceEventResponse
   */
  async addTraceEvent(request: AddTraceEventRequest): Promise<AddTraceEventResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AddTraceEventHeaders({ });
    return await this.addTraceEventWithOptions(request, headers, runtime);
  }

  /**
   * 修改课程
   * 
   * @param request - AdjustCourseRequest
   * @param headers - AdjustCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AdjustCourseResponse
   */
  async adjustCourseWithOptions(request: AdjustCourseRequest, headers: AdjustCourseHeaders, runtime: $Util.RuntimeOptions): Promise<AdjustCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.classRoomId)) {
      body["classRoomId"] = request.classRoomId;
    }

    if (!Util.isUnset(request.classRoomName)) {
      body["classRoomName"] = request.classRoomName;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.courseCode)) {
      body["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.courseDate)) {
      body["courseDate"] = request.courseDate;
    }

    if (!Util.isUnset(request.courseName)) {
      body["courseName"] = request.courseName;
    }

    if (!Util.isUnset(request.courseWeek)) {
      body["courseWeek"] = request.courseWeek;
    }

    if (!Util.isUnset(request.endTime)) {
      body["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    if (!Util.isUnset(request.memo)) {
      body["memo"] = request.memo;
    }

    if (!Util.isUnset(request.schoolYear)) {
      body["schoolYear"] = request.schoolYear;
    }

    if (!Util.isUnset(request.semester)) {
      body["semester"] = request.semester;
    }

    if (!Util.isUnset(request.startTime)) {
      body["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.teachWeek)) {
      body["teachWeek"] = request.teachWeek;
    }

    if (!Util.isUnset(request.timeslotName)) {
      body["timeslotName"] = request.timeslotName;
    }

    if (!Util.isUnset(request.timeslotNum)) {
      body["timeslotNum"] = request.timeslotNum;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AdjustCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/courses/adjust`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AdjustCourseResponse>(await this.execute(params, req, runtime), new AdjustCourseResponse({}));
  }

  /**
   * 修改课程
   * 
   * @param request - AdjustCourseRequest
   * @returns AdjustCourseResponse
   */
  async adjustCourse(request: AdjustCourseRequest): Promise<AdjustCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AdjustCourseHeaders({ });
    return await this.adjustCourseWithOptions(request, headers, runtime);
  }

  /**
   * 修改教育套件
   * 
   * @param request - AdjustKitRequest
   * @param headers - AdjustKitHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AdjustKitResponse
   */
  async adjustKitWithOptions(request: AdjustKitRequest, headers: AdjustKitHeaders, runtime: $Util.RuntimeOptions): Promise<AdjustKitResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvProductScene)) {
      body["isvProductScene"] = request.isvProductScene;
    }

    if (!Util.isUnset(request.openEndTime)) {
      body["openEndTime"] = request.openEndTime;
    }

    if (!Util.isUnset(request.openStartTime)) {
      body["openStartTime"] = request.openStartTime;
    }

    if (!Util.isUnset(request.openUserId)) {
      body["openUserId"] = request.openUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AdjustKit",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/records/adjust`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AdjustKitResponse>(await this.execute(params, req, runtime), new AdjustKitResponse({}));
  }

  /**
   * 修改教育套件
   * 
   * @param request - AdjustKitRequest
   * @returns AdjustKitResponse
   */
  async adjustKit(request: AdjustKitRequest): Promise<AdjustKitResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AdjustKitHeaders({ });
    return await this.adjustKitWithOptions(request, headers, runtime);
  }

  /**
   * 进行分班
   * 
   * @param request - AssignClassRequest
   * @param headers - AssignClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns AssignClassResponse
   */
  async assignClassWithOptions(request: AssignClassRequest, headers: AssignClassHeaders, runtime: $Util.RuntimeOptions): Promise<AssignClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.isFinish)) {
      body["isFinish"] = request.isFinish;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.studentId)) {
      body["studentId"] = request.studentId;
    }

    if (!Util.isUnset(request.taskId)) {
      body["taskId"] = request.taskId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "AssignClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/newGrades/tasks/students/classes/assign`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<AssignClassResponse>(await this.execute(params, req, runtime), new AssignClassResponse({}));
  }

  /**
   * 进行分班
   * 
   * @param request - AssignClassRequest
   * @returns AssignClassResponse
   */
  async assignClass(request: AssignClassRequest): Promise<AssignClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new AssignClassHeaders({ });
    return await this.assignClassWithOptions(request, headers, runtime);
  }

  /**
   * 批量创建打卡
   * 
   * @param request - BatchCreateRequest
   * @param headers - BatchCreateHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchCreateResponse
   */
  async batchCreateWithOptions(request: BatchCreateRequest, headers: BatchCreateHeaders, runtime: $Util.RuntimeOptions): Promise<BatchCreateResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardBizCode)) {
      body["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.data)) {
      body["data"] = request.data;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.jsVersion)) {
      body["jsVersion"] = request.jsVersion;
    }

    if (!Util.isUnset(request.sourceType)) {
      body["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchCreate",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<BatchCreateResponse>(await this.execute(params, req, runtime), new BatchCreateResponse({}));
  }

  /**
   * 批量创建打卡
   * 
   * @param request - BatchCreateRequest
   * @returns BatchCreateResponse
   */
  async batchCreate(request: BatchCreateRequest): Promise<BatchCreateResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchCreateHeaders({ });
    return await this.batchCreateWithOptions(request, headers, runtime);
  }

  /**
   * 批量创建课程
   * 
   * @param request - BatchCreateCourseRequest
   * @param headers - BatchCreateCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchCreateCourseResponse
   */
  async batchCreateCourseWithOptions(request: BatchCreateCourseRequest, headers: BatchCreateCourseHeaders, runtime: $Util.RuntimeOptions): Promise<BatchCreateCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.courseDetailItemList)) {
      body["courseDetailItemList"] = request.courseDetailItemList;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.schoolYear)) {
      body["schoolYear"] = request.schoolYear;
    }

    if (!Util.isUnset(request.semester)) {
      body["semester"] = request.semester;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchCreateCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/courses/batchCreate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<BatchCreateCourseResponse>(await this.execute(params, req, runtime), new BatchCreateCourseResponse({}));
  }

  /**
   * 批量创建课程
   * 
   * @param request - BatchCreateCourseRequest
   * @returns BatchCreateCourseResponse
   */
  async batchCreateCourse(request: BatchCreateCourseRequest): Promise<BatchCreateCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchCreateCourseHeaders({ });
    return await this.batchCreateCourseWithOptions(request, headers, runtime);
  }

  /**
   * 批量创建学生班级
   * 
   * @param request - BatchCreateStudentClassRequest
   * @param headers - BatchCreateStudentClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchCreateStudentClassResponse
   */
  async batchCreateStudentClassWithOptions(request: BatchCreateStudentClassRequest, headers: BatchCreateStudentClassHeaders, runtime: $Util.RuntimeOptions): Promise<BatchCreateStudentClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.studentList)) {
      body["studentList"] = request.studentList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchCreateStudentClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/students/classes/batchCreate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<BatchCreateStudentClassResponse>(await this.execute(params, req, runtime), new BatchCreateStudentClassResponse({}));
  }

  /**
   * 批量创建学生班级
   * 
   * @param request - BatchCreateStudentClassRequest
   * @returns BatchCreateStudentClassResponse
   */
  async batchCreateStudentClass(request: BatchCreateStudentClassRequest): Promise<BatchCreateStudentClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchCreateStudentClassHeaders({ });
    return await this.batchCreateStudentClassWithOptions(request, headers, runtime);
  }

  /**
   * 批量创建老师课程
   * 
   * @param request - BatchCreateTeacherCourseRequest
   * @param headers - BatchCreateTeacherCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchCreateTeacherCourseResponse
   */
  async batchCreateTeacherCourseWithOptions(request: BatchCreateTeacherCourseRequest, headers: BatchCreateTeacherCourseHeaders, runtime: $Util.RuntimeOptions): Promise<BatchCreateTeacherCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.teacherCourseDetailItemList)) {
      body["teacherCourseDetailItemList"] = request.teacherCourseDetailItemList;
    }

    if (!Util.isUnset(request.teacherName)) {
      body["teacherName"] = request.teacherName;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchCreateTeacherCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/teachers/courses/batchCreate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<BatchCreateTeacherCourseResponse>(await this.execute(params, req, runtime), new BatchCreateTeacherCourseResponse({}));
  }

  /**
   * 批量创建老师课程
   * 
   * @param request - BatchCreateTeacherCourseRequest
   * @returns BatchCreateTeacherCourseResponse
   */
  async batchCreateTeacherCourse(request: BatchCreateTeacherCourseRequest): Promise<BatchCreateTeacherCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchCreateTeacherCourseHeaders({ });
    return await this.batchCreateTeacherCourseWithOptions(request, headers, runtime);
  }

  /**
   * 批量失效课程
   * 
   * @param request - BatchInvalidCourseRequest
   * @param headers - BatchInvalidCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchInvalidCourseResponse
   */
  async batchInvalidCourseWithOptions(request: BatchInvalidCourseRequest, headers: BatchInvalidCourseHeaders, runtime: $Util.RuntimeOptions): Promise<BatchInvalidCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    if (!Util.isUnset(request.isvCourseIds)) {
      body["isvCourseIds"] = request.isvCourseIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchInvalidCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/courses/batchInvalid`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<BatchInvalidCourseResponse>(await this.execute(params, req, runtime), new BatchInvalidCourseResponse({}));
  }

  /**
   * 批量失效课程
   * 
   * @param request - BatchInvalidCourseRequest
   * @returns BatchInvalidCourseResponse
   */
  async batchInvalidCourse(request: BatchInvalidCourseRequest): Promise<BatchInvalidCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchInvalidCourseHeaders({ });
    return await this.batchInvalidCourseWithOptions(request, headers, runtime);
  }

  /**
   * 跨组织-批量创建作业
   * 
   * @param request - BatchOrgCreateHWRequest
   * @param headers - BatchOrgCreateHWHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchOrgCreateHWResponse
   */
  async batchOrgCreateHWWithOptions(request: BatchOrgCreateHWRequest, headers: BatchOrgCreateHWHeaders, runtime: $Util.RuntimeOptions): Promise<BatchOrgCreateHWResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.courseName)) {
      body["courseName"] = request.courseName;
    }

    if (!Util.isUnset(request.hwContent)) {
      body["hwContent"] = request.hwContent;
    }

    if (!Util.isUnset(request.hwDeadline)) {
      body["hwDeadline"] = request.hwDeadline;
    }

    if (!Util.isUnset(request.hwDeadlineOpen)) {
      body["hwDeadlineOpen"] = request.hwDeadlineOpen;
    }

    if (!Util.isUnset(request.hwMedia)) {
      body["hwMedia"] = request.hwMedia;
    }

    if (!Util.isUnset(request.hwPhoto)) {
      body["hwPhoto"] = request.hwPhoto;
    }

    if (!Util.isUnset(request.hwTitle)) {
      body["hwTitle"] = request.hwTitle;
    }

    if (!Util.isUnset(request.hwType)) {
      body["hwType"] = request.hwType;
    }

    if (!Util.isUnset(request.hwVideo)) {
      body["hwVideo"] = request.hwVideo;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.openSelectItemList)) {
      body["openSelectItemList"] = request.openSelectItemList;
    }

    if (!Util.isUnset(request.scheduledRelease)) {
      body["scheduledRelease"] = request.scheduledRelease;
    }

    if (!Util.isUnset(request.scheduledTime)) {
      body["scheduledTime"] = request.scheduledTime;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.targetRole)) {
      body["targetRole"] = request.targetRole;
    }

    if (!Util.isUnset(request.teacherName)) {
      body["teacherName"] = request.teacherName;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "BatchOrgCreateHW",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/homeworks`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<BatchOrgCreateHWResponse>(await this.execute(params, req, runtime), new BatchOrgCreateHWResponse({}));
  }

  /**
   * 跨组织-批量创建作业
   * 
   * @param request - BatchOrgCreateHWRequest
   * @returns BatchOrgCreateHWResponse
   */
  async batchOrgCreateHW(request: BatchOrgCreateHWRequest): Promise<BatchOrgCreateHWResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchOrgCreateHWHeaders({ });
    return await this.batchOrgCreateHWWithOptions(request, headers, runtime);
  }

  /**
   * 套件-取消套件任务
   * 
   * @param request - CancelKitTaskRequest
   * @param headers - CancelKitTaskHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CancelKitTaskResponse
   */
  async cancelKitTaskWithOptions(request: CancelKitTaskRequest, headers: CancelKitTaskHeaders, runtime: $Util.RuntimeOptions): Promise<CancelKitTaskResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CancelKitTask",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/tasks/cancel`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CancelKitTaskResponse>(await this.execute(params, req, runtime), new CancelKitTaskResponse({}));
  }

  /**
   * 套件-取消套件任务
   * 
   * @param request - CancelKitTaskRequest
   * @returns CancelKitTaskResponse
   */
  async cancelKitTask(request: CancelKitTaskRequest): Promise<CancelKitTaskResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CancelKitTaskHeaders({ });
    return await this.cancelKitTaskWithOptions(request, headers, runtime);
  }

  /**
   * 撤销订单
   * 
   * @param request - CancelOrderRequest
   * @param headers - CancelOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CancelOrderResponse
   */
  async cancelOrderWithOptions(request: CancelOrderRequest, headers: CancelOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CancelOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CancelOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders/cancel`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CancelOrderResponse>(await this.execute(params, req, runtime), new CancelOrderResponse({}));
  }

  /**
   * 撤销订单
   * 
   * @param request - CancelOrderRequest
   * @returns CancelOrderResponse
   */
  async cancelOrder(request: CancelOrderRequest): Promise<CancelOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CancelOrderHeaders({ });
    return await this.cancelOrderWithOptions(request, headers, runtime);
  }

  /**
   * 个人应用撤销订单
   * 
   * @param request - CancelSnsOrderRequest
   * @param headers - CancelSnsOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CancelSnsOrderResponse
   */
  async cancelSnsOrderWithOptions(request: CancelSnsOrderRequest, headers: CancelSnsOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CancelSnsOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.alipayAppId)) {
      body["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CancelSnsOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/snsUserOrders/cancel`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CancelSnsOrderResponse>(await this.execute(params, req, runtime), new CancelSnsOrderResponse({}));
  }

  /**
   * 个人应用撤销订单
   * 
   * @param request - CancelSnsOrderRequest
   * @returns CancelSnsOrderResponse
   */
  async cancelSnsOrder(request: CancelSnsOrderRequest): Promise<CancelSnsOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CancelSnsOrderHeaders({ });
    return await this.cancelSnsOrderWithOptions(request, headers, runtime);
  }

  /**
   * 取消订单
   * 
   * @param request - CancelUserOrderRequest
   * @param headers - CancelUserOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CancelUserOrderResponse
   */
  async cancelUserOrderWithOptions(request: CancelUserOrderRequest, headers: CancelUserOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CancelUserOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.alipayAppId)) {
      body["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CancelUserOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/userOrders/cancel`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CancelUserOrderResponse>(await this.execute(params, req, runtime), new CancelUserOrderResponse({}));
  }

  /**
   * 取消订单
   * 
   * @param request - CancelUserOrderRequest
   * @returns CancelUserOrderResponse
   */
  async cancelUserOrder(request: CancelUserOrderRequest): Promise<CancelUserOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CancelUserOrderHeaders({ });
    return await this.cancelUserOrderWithOptions(request, headers, runtime);
  }

  /**
   * 批量查询打卡任务
   * 
   * @param request - CardBatchQueryCardsRequest
   * @param headers - CardBatchQueryCardsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardBatchQueryCardsResponse
   */
  async cardBatchQueryCardsWithOptions(request: CardBatchQueryCardsRequest, headers: CardBatchQueryCardsHeaders, runtime: $Util.RuntimeOptions): Promise<CardBatchQueryCardsResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardBizCode)) {
      body["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.cardIds)) {
      body["cardIds"] = request.cardIds;
    }

    if (!Util.isUnset(request.sourceType)) {
      body["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CardBatchQueryCards",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards/tasks/batch`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardBatchQueryCardsResponse>(await this.execute(params, req, runtime), new CardBatchQueryCardsResponse({}));
  }

  /**
   * 批量查询打卡任务
   * 
   * @param request - CardBatchQueryCardsRequest
   * @returns CardBatchQueryCardsResponse
   */
  async cardBatchQueryCards(request: CardBatchQueryCardsRequest): Promise<CardBatchQueryCardsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardBatchQueryCardsHeaders({ });
    return await this.cardBatchQueryCardsWithOptions(request, headers, runtime);
  }

  /**
   * 删除打卡
   * 
   * @param request - CardDeleteCardRequest
   * @param headers - CardDeleteCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardDeleteCardResponse
   */
  async cardDeleteCardWithOptions(request: CardDeleteCardRequest, headers: CardDeleteCardHeaders, runtime: $Util.RuntimeOptions): Promise<CardDeleteCardResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardBizCode)) {
      query["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.cardBizId)) {
      query["cardBizId"] = request.cardBizId;
    }

    if (!Util.isUnset(request.cardId)) {
      query["cardId"] = request.cardId;
    }

    if (!Util.isUnset(request.sourceType)) {
      query["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "CardDeleteCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardDeleteCardResponse>(await this.execute(params, req, runtime), new CardDeleteCardResponse({}));
  }

  /**
   * 删除打卡
   * 
   * @param request - CardDeleteCardRequest
   * @returns CardDeleteCardResponse
   */
  async cardDeleteCard(request: CardDeleteCardRequest): Promise<CardDeleteCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardDeleteCardHeaders({ });
    return await this.cardDeleteCardWithOptions(request, headers, runtime);
  }

  /**
   * 打卡-结束打卡
   * 
   * @param request - CardEndCardRequest
   * @param headers - CardEndCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardEndCardResponse
   */
  async cardEndCardWithOptions(request: CardEndCardRequest, headers: CardEndCardHeaders, runtime: $Util.RuntimeOptions): Promise<CardEndCardResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardBizCode)) {
      body["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.cardBizId)) {
      body["cardBizId"] = request.cardBizId;
    }

    if (!Util.isUnset(request.cardId)) {
      body["cardId"] = request.cardId;
    }

    if (!Util.isUnset(request.sourceType)) {
      body["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CardEndCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards/finish`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardEndCardResponse>(await this.execute(params, req, runtime), new CardEndCardResponse({}));
  }

  /**
   * 打卡-结束打卡
   * 
   * @param request - CardEndCardRequest
   * @returns CardEndCardResponse
   */
  async cardEndCard(request: CardEndCardRequest): Promise<CardEndCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardEndCardHeaders({ });
    return await this.cardEndCardWithOptions(request, headers, runtime);
  }

  /**
   * 查询打卡任务
   * 
   * @param request - CardGetCardRequest
   * @param headers - CardGetCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardGetCardResponse
   */
  async cardGetCardWithOptions(request: CardGetCardRequest, headers: CardGetCardHeaders, runtime: $Util.RuntimeOptions): Promise<CardGetCardResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardId)) {
      query["cardId"] = request.cardId;
    }

    if (!Util.isUnset(request.sourceType)) {
      query["sourceType"] = request.sourceType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "CardGetCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards/tasks`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardGetCardResponse>(await this.execute(params, req, runtime), new CardGetCardResponse({}));
  }

  /**
   * 查询打卡任务
   * 
   * @param request - CardGetCardRequest
   * @returns CardGetCardResponse
   */
  async cardGetCard(request: CardGetCardRequest): Promise<CardGetCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardGetCardHeaders({ });
    return await this.cardGetCardWithOptions(request, headers, runtime);
  }

  /**
   * 获取打卡任务完成进度
   * 
   * @param request - CardGetCardFinishProgressRequest
   * @param headers - CardGetCardFinishProgressHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardGetCardFinishProgressResponse
   */
  async cardGetCardFinishProgressWithOptions(request: CardGetCardFinishProgressRequest, headers: CardGetCardFinishProgressHeaders, runtime: $Util.RuntimeOptions): Promise<CardGetCardFinishProgressResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.cardBizCode)) {
      query["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.cardBizId)) {
      query["cardBizId"] = request.cardBizId;
    }

    if (!Util.isUnset(request.cardId)) {
      query["cardId"] = request.cardId;
    }

    if (!Util.isUnset(request.sourceType)) {
      query["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.studentId)) {
      query["studentId"] = request.studentId;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "CardGetCardFinishProgress",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards/completionProgress`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardGetCardFinishProgressResponse>(await this.execute(params, req, runtime), new CardGetCardFinishProgressResponse({}));
  }

  /**
   * 获取打卡任务完成进度
   * 
   * @param request - CardGetCardFinishProgressRequest
   * @returns CardGetCardFinishProgressResponse
   */
  async cardGetCardFinishProgress(request: CardGetCardFinishProgressRequest): Promise<CardGetCardFinishProgressResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardGetCardFinishProgressHeaders({ });
    return await this.cardGetCardFinishProgressWithOptions(request, headers, runtime);
  }

  /**
   * 查询打卡Feed流
   * 
   * @param request - CardQueryCardFeedsRequest
   * @param headers - CardQueryCardFeedsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CardQueryCardFeedsResponse
   */
  async cardQueryCardFeedsWithOptions(request: CardQueryCardFeedsRequest, headers: CardQueryCardFeedsHeaders, runtime: $Util.RuntimeOptions): Promise<CardQueryCardFeedsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizType)) {
      query["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.cardBizCode)) {
      query["cardBizCode"] = request.cardBizCode;
    }

    if (!Util.isUnset(request.cardBizId)) {
      query["cardBizId"] = request.cardBizId;
    }

    if (!Util.isUnset(request.cardId)) {
      query["cardId"] = request.cardId;
    }

    if (!Util.isUnset(request.count)) {
      query["count"] = request.count;
    }

    if (!Util.isUnset(request.cursor)) {
      query["cursor"] = request.cursor;
    }

    if (!Util.isUnset(request.feedType)) {
      query["feedType"] = request.feedType;
    }

    if (!Util.isUnset(request.needFinishProcess)) {
      query["needFinishProcess"] = request.needFinishProcess;
    }

    if (!Util.isUnset(request.sourceType)) {
      query["sourceType"] = request.sourceType;
    }

    if (!Util.isUnset(request.studentId)) {
      query["studentId"] = request.studentId;
    }

    if (!Util.isUnset(request.subBizId)) {
      query["subBizId"] = request.subBizId;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "CardQueryCardFeeds",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/cards/feeds`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CardQueryCardFeedsResponse>(await this.execute(params, req, runtime), new CardQueryCardFeedsResponse({}));
  }

  /**
   * 查询打卡Feed流
   * 
   * @param request - CardQueryCardFeedsRequest
   * @returns CardQueryCardFeedsResponse
   */
  async cardQueryCardFeeds(request: CardQueryCardFeedsRequest): Promise<CardQueryCardFeedsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CardQueryCardFeedsHeaders({ });
    return await this.cardQueryCardFeedsWithOptions(request, headers, runtime);
  }

  /**
   * 支付校验
   * 
   * @param request - CheckRestrictionRequest
   * @param headers - CheckRestrictionHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CheckRestrictionResponse
   */
  async checkRestrictionWithOptions(request: CheckRestrictionRequest, headers: CheckRestrictionHeaders, runtime: $Util.RuntimeOptions): Promise<CheckRestrictionResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actualAmount)) {
      body["actualAmount"] = request.actualAmount;
    }

    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CheckRestriction",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/restrictions/check`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CheckRestrictionResponse>(await this.execute(params, req, runtime), new CheckRestrictionResponse({}));
  }

  /**
   * 支付校验
   * 
   * @param request - CheckRestrictionRequest
   * @returns CheckRestrictionResponse
   */
  async checkRestriction(request: CheckRestrictionRequest): Promise<CheckRestrictionResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CheckRestrictionHeaders({ });
    return await this.checkRestrictionWithOptions(request, headers, runtime);
  }

  /**
   * 清空评价表现未读数量
   * 
   * @param request - ClearEvaluatePerformanceCountRequest
   * @param headers - ClearEvaluatePerformanceCountHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ClearEvaluatePerformanceCountResponse
   */
  async clearEvaluatePerformanceCountWithOptions(request: ClearEvaluatePerformanceCountRequest, headers: ClearEvaluatePerformanceCountHeaders, runtime: $Util.RuntimeOptions): Promise<ClearEvaluatePerformanceCountResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.studentIdList)) {
      body["studentIdList"] = request.studentIdList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ClearEvaluatePerformanceCount",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/evaluations/unreadCounts/clear`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ClearEvaluatePerformanceCountResponse>(await this.execute(params, req, runtime), new ClearEvaluatePerformanceCountResponse({}));
  }

  /**
   * 清空评价表现未读数量
   * 
   * @param request - ClearEvaluatePerformanceCountRequest
   * @returns ClearEvaluatePerformanceCountResponse
   */
  async clearEvaluatePerformanceCount(request: ClearEvaluatePerformanceCountRequest): Promise<ClearEvaluatePerformanceCountResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ClearEvaluatePerformanceCountHeaders({ });
    return await this.clearEvaluatePerformanceCountWithOptions(request, headers, runtime);
  }

  /**
   * 积分兑换
   * 
   * @param request - ConsumePointRequest
   * @param headers - ConsumePointHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ConsumePointResponse
   */
  async consumePointWithOptions(request: ConsumePointRequest, headers: ConsumePointHeaders, runtime: $Util.RuntimeOptions): Promise<ConsumePointResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.amount)) {
      body["amount"] = request.amount;
    }

    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.description)) {
      body["description"] = request.description;
    }

    if (!Util.isUnset(request.productCode)) {
      body["productCode"] = request.productCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ConsumePoint",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/poins/consume`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ConsumePointResponse>(await this.execute(params, req, runtime), new ConsumePointResponse({}));
  }

  /**
   * 积分兑换
   * 
   * @param request - ConsumePointRequest
   * @returns ConsumePointResponse
   */
  async consumePoint(request: ConsumePointRequest): Promise<ConsumePointResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ConsumePointHeaders({ });
    return await this.consumePointWithOptions(request, headers, runtime);
  }

  /**
   * 全校排课结束通知
   * 
   * @param request - CourseSchedulingComplimentNoticeRequest
   * @param headers - CourseSchedulingComplimentNoticeHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CourseSchedulingComplimentNoticeResponse
   */
  async courseSchedulingComplimentNoticeWithOptions(request: CourseSchedulingComplimentNoticeRequest, headers: CourseSchedulingComplimentNoticeHeaders, runtime: $Util.RuntimeOptions): Promise<CourseSchedulingComplimentNoticeResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "CourseSchedulingComplimentNotice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schedules/finishNotify`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CourseSchedulingComplimentNoticeResponse>(await this.execute(params, req, runtime), new CourseSchedulingComplimentNoticeResponse({}));
  }

  /**
   * 全校排课结束通知
   * 
   * @param request - CourseSchedulingComplimentNoticeRequest
   * @returns CourseSchedulingComplimentNoticeResponse
   */
  async courseSchedulingComplimentNotice(request: CourseSchedulingComplimentNoticeRequest): Promise<CourseSchedulingComplimentNoticeResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CourseSchedulingComplimentNoticeHeaders({ });
    return await this.courseSchedulingComplimentNoticeWithOptions(request, headers, runtime);
  }

  /**
   * 错题本-添加错题
   * 
   * @param request - CreateRequest
   * @param headers - CreateHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateResponse
   */
  async createWithOptions(request: CreateRequest, headers: CreateHeaders, runtime: $Util.RuntimeOptions): Promise<CreateResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.answerContent)) {
      body["answerContent"] = request.answerContent;
    }

    if (!Util.isUnset(request.difficultyLevel)) {
      body["difficultyLevel"] = request.difficultyLevel;
    }

    if (!Util.isUnset(request.explainAudio)) {
      body["explainAudio"] = request.explainAudio;
    }

    if (!Util.isUnset(request.explainContent)) {
      body["explainContent"] = request.explainContent;
    }

    if (!Util.isUnset(request.generateTime)) {
      body["generateTime"] = request.generateTime;
    }

    if (!Util.isUnset(request.knowledgePointList)) {
      body["knowledgePointList"] = request.knowledgePointList;
    }

    if (!Util.isUnset(request.ownerCode)) {
      body["ownerCode"] = request.ownerCode;
    }

    if (!Util.isUnset(request.ownerType)) {
      body["ownerType"] = request.ownerType;
    }

    if (!Util.isUnset(request.proficiencyLevel)) {
      body["proficiencyLevel"] = request.proficiencyLevel;
    }

    if (!Util.isUnset(request.questionAudio)) {
      body["questionAudio"] = request.questionAudio;
    }

    if (!Util.isUnset(request.questionContent)) {
      body["questionContent"] = request.questionContent;
    }

    if (!Util.isUnset(request.questionExtension)) {
      body["questionExtension"] = request.questionExtension;
    }

    if (!Util.isUnset(request.questionPicUrl)) {
      body["questionPicUrl"] = request.questionPicUrl;
    }

    if (!Util.isUnset(request.questionType)) {
      body["questionType"] = request.questionType;
    }

    if (!Util.isUnset(request.sourceCode)) {
      body["sourceCode"] = request.sourceCode;
    }

    if (!Util.isUnset(request.studentUserId)) {
      body["studentUserId"] = request.studentUserId;
    }

    if (!Util.isUnset(request.subject)) {
      body["subject"] = request.subject;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "Create",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/wrongQuestions`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateResponse>(await this.execute(params, req, runtime), new CreateResponse({}));
  }

  /**
   * 错题本-添加错题
   * 
   * @param request - CreateRequest
   * @returns CreateResponse
   */
  async create(request: CreateRequest): Promise<CreateResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateHeaders({ });
    return await this.createWithOptions(request, headers, runtime);
  }

  /**
   * 创建App支付订单
   * 
   * @param request - CreateAppOrderRequest
   * @param headers - CreateAppOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateAppOrderResponse
   */
  async createAppOrderWithOptions(request: CreateAppOrderRequest, headers: CreateAppOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CreateAppOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actualAmount)) {
      body["actualAmount"] = request.actualAmount;
    }

    if (!Util.isUnset(request.alipayAppId)) {
      body["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.detailList)) {
      body["detailList"] = request.detailList;
    }

    if (!Util.isUnset(request.labelAmount)) {
      body["labelAmount"] = request.labelAmount;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.merchantOrderNo)) {
      body["merchantOrderNo"] = request.merchantOrderNo;
    }

    if (!Util.isUnset(request.outerUserId)) {
      body["outerUserId"] = request.outerUserId;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.subject)) {
      body["subject"] = request.subject;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateAppOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/appOrders`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateAppOrderResponse>(await this.execute(params, req, runtime), new CreateAppOrderResponse({}));
  }

  /**
   * 创建App支付订单
   * 
   * @param request - CreateAppOrderRequest
   * @returns CreateAppOrderResponse
   */
  async createAppOrder(request: CreateAppOrderRequest): Promise<CreateAppOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateAppOrderHeaders({ });
    return await this.createAppOrderWithOptions(request, headers, runtime);
  }

  /**
   * 作业批改-新增待批改数据
   * 
   * @param request - CreateAwaitingCorrectionDataRequest
   * @param headers - CreateAwaitingCorrectionDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateAwaitingCorrectionDataResponse
   */
  async createAwaitingCorrectionDataWithOptions(request: CreateAwaitingCorrectionDataRequest, headers: CreateAwaitingCorrectionDataHeaders, runtime: $Util.RuntimeOptions): Promise<CreateAwaitingCorrectionDataResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.allAssignmentPdfUrl)) {
      body["allAssignmentPdfUrl"] = request.allAssignmentPdfUrl;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.printInfo)) {
      body["printInfo"] = request.printInfo;
    }

    if (!Util.isUnset(request.printerCode)) {
      body["printerCode"] = request.printerCode;
    }

    if (!Util.isUnset(request.subjectName)) {
      body["subjectName"] = request.subjectName;
    }

    if (!Util.isUnset(request.taskCode)) {
      body["taskCode"] = request.taskCode;
    }

    if (!Util.isUnset(request.totalPages)) {
      body["totalPages"] = request.totalPages;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateAwaitingCorrectionData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/assignment/createAwaitingCorrectionData`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateAwaitingCorrectionDataResponse>(await this.execute(params, req, runtime), new CreateAwaitingCorrectionDataResponse({}));
  }

  /**
   * 作业批改-新增待批改数据
   * 
   * @param request - CreateAwaitingCorrectionDataRequest
   * @returns CreateAwaitingCorrectionDataResponse
   */
  async createAwaitingCorrectionData(request: CreateAwaitingCorrectionDataRequest): Promise<CreateAwaitingCorrectionDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateAwaitingCorrectionDataHeaders({ });
    return await this.createAwaitingCorrectionDataWithOptions(request, headers, runtime);
  }

  /**
   * 创建高校通讯录组织单元
   * 
   * @param request - CreateCollegeContactDeptRequest
   * @param headers - CreateCollegeContactDeptHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCollegeContactDeptResponse
   */
  async createCollegeContactDeptWithOptions(request: CreateCollegeContactDeptRequest, headers: CreateCollegeContactDeptHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCollegeContactDeptResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.autoApproveApply)) {
      body["autoApproveApply"] = request.autoApproveApply;
    }

    if (!Util.isUnset(request.brief)) {
      body["brief"] = request.brief;
    }

    if (!Util.isUnset(request.code)) {
      body["code"] = request.code;
    }

    if (!Util.isUnset(request.createDeptGroup)) {
      body["createDeptGroup"] = request.createDeptGroup;
    }

    if (!Util.isUnset(request.deptCode)) {
      body["deptCode"] = request.deptCode;
    }

    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.deptPermits)) {
      body["deptPermits"] = request.deptPermits;
    }

    if (!Util.isUnset(request.deptType)) {
      body["deptType"] = request.deptType;
    }

    if (!Util.isUnset(request.empApplyJoinDept)) {
      body["empApplyJoinDept"] = request.empApplyJoinDept;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.hideDept)) {
      body["hideDept"] = request.hideDept;
    }

    if (!Util.isUnset(request.hideSceneConfig)) {
      body["hideSceneConfig"] = request.hideSceneConfig;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.order)) {
      body["order"] = request.order;
    }

    if (!Util.isUnset(request.outerDept)) {
      body["outerDept"] = request.outerDept;
    }

    if (!Util.isUnset(request.outerDeptOnlySelf)) {
      body["outerDeptOnlySelf"] = request.outerDeptOnlySelf;
    }

    if (!Util.isUnset(request.outerPermitDepts)) {
      body["outerPermitDepts"] = request.outerPermitDepts;
    }

    if (!Util.isUnset(request.outerPermitUsers)) {
      body["outerPermitUsers"] = request.outerPermitUsers;
    }

    if (!Util.isUnset(request.outerSceneConfig)) {
      body["outerSceneConfig"] = request.outerSceneConfig;
    }

    if (!Util.isUnset(request.parentId)) {
      body["parentId"] = request.parentId;
    }

    if (!Util.isUnset(request.sourceIdentifier)) {
      body["sourceIdentifier"] = request.sourceIdentifier;
    }

    if (!Util.isUnset(request.struId)) {
      body["struId"] = request.struId;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.userPermits)) {
      body["userPermits"] = request.userPermits;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCollegeContactDept",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateCollegeContactDeptResponse>(await this.execute(params, req, runtime), new CreateCollegeContactDeptResponse({}));
  }

  /**
   * 创建高校通讯录组织单元
   * 
   * @param request - CreateCollegeContactDeptRequest
   * @returns CreateCollegeContactDeptResponse
   */
  async createCollegeContactDept(request: CreateCollegeContactDeptRequest): Promise<CreateCollegeContactDeptResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCollegeContactDeptHeaders({ });
    return await this.createCollegeContactDeptWithOptions(request, headers, runtime);
  }

  /**
   * 创建高校通讯录场景架构
   * 
   * @param request - CreateCollegeContactSceneStruRequest
   * @param headers - CreateCollegeContactSceneStruHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCollegeContactSceneStruResponse
   */
  async createCollegeContactSceneStruWithOptions(request: CreateCollegeContactSceneStruRequest, headers: CreateCollegeContactSceneStruHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCollegeContactSceneStruResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.hasStruFixedDept)) {
      body["hasStruFixedDept"] = request.hasStruFixedDept;
    }

    if (!Util.isUnset(request.order)) {
      body["order"] = request.order;
    }

    if (!Util.isUnset(request.sourceIdentifier)) {
      body["sourceIdentifier"] = request.sourceIdentifier;
    }

    if (!Util.isUnset(request.struBrief)) {
      body["struBrief"] = request.struBrief;
    }

    if (!Util.isUnset(request.struName)) {
      body["struName"] = request.struName;
    }

    if (!Util.isUnset(request.struType)) {
      body["struType"] = request.struType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCollegeContactSceneStru",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateCollegeContactSceneStruResponse>(await this.execute(params, req, runtime), new CreateCollegeContactSceneStruResponse({}));
  }

  /**
   * 创建高校通讯录场景架构
   * 
   * @param request - CreateCollegeContactSceneStruRequest
   * @returns CreateCollegeContactSceneStruResponse
   */
  async createCollegeContactSceneStru(request: CreateCollegeContactSceneStruRequest): Promise<CreateCollegeContactSceneStruResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCollegeContactSceneStruHeaders({ });
    return await this.createCollegeContactSceneStruWithOptions(request, headers, runtime);
  }

  /**
   * 作业批改-新增已批改数据
   * 
   * @param request - CreateCorrectionDataRequest
   * @param headers - CreateCorrectionDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCorrectionDataResponse
   */
  async createCorrectionDataWithOptions(request: CreateCorrectionDataRequest, headers: CreateCorrectionDataHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCorrectionDataResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.correctedDataJsonUrl)) {
      body["correctedDataJsonUrl"] = request.correctedDataJsonUrl;
    }

    if (!Util.isUnset(request.taskCode)) {
      body["taskCode"] = request.taskCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCorrectionData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/assignment/createCorrectionData`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateCorrectionDataResponse>(await this.execute(params, req, runtime), new CreateCorrectionDataResponse({}));
  }

  /**
   * 作业批改-新增已批改数据
   * 
   * @param request - CreateCorrectionDataRequest
   * @returns CreateCorrectionDataResponse
   */
  async createCorrectionData(request: CreateCorrectionDataRequest): Promise<CreateCorrectionDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCorrectionDataHeaders({ });
    return await this.createCorrectionDataWithOptions(request, headers, runtime);
  }

  /**
   * 创建课程
   * 
   * @param request - CreateCourseRequest
   * @param headers - CreateCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCourseResponse
   */
  async createCourseWithOptions(request: CreateCourseRequest, headers: CreateCourseHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.classRoomId)) {
      body["classRoomId"] = request.classRoomId;
    }

    if (!Util.isUnset(request.classRoomName)) {
      body["classRoomName"] = request.classRoomName;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.courseCode)) {
      body["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.courseDate)) {
      body["courseDate"] = request.courseDate;
    }

    if (!Util.isUnset(request.courseName)) {
      body["courseName"] = request.courseName;
    }

    if (!Util.isUnset(request.courseWeek)) {
      body["courseWeek"] = request.courseWeek;
    }

    if (!Util.isUnset(request.endTime)) {
      body["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    if (!Util.isUnset(request.memo)) {
      body["memo"] = request.memo;
    }

    if (!Util.isUnset(request.schoolYear)) {
      body["schoolYear"] = request.schoolYear;
    }

    if (!Util.isUnset(request.semester)) {
      body["semester"] = request.semester;
    }

    if (!Util.isUnset(request.startTime)) {
      body["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.teachWeek)) {
      body["teachWeek"] = request.teachWeek;
    }

    if (!Util.isUnset(request.teacherList)) {
      body["teacherList"] = request.teacherList;
    }

    if (!Util.isUnset(request.timeslotName)) {
      body["timeslotName"] = request.timeslotName;
    }

    if (!Util.isUnset(request.timeslotNum)) {
      body["timeslotNum"] = request.timeslotNum;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/courses`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateCourseResponse>(await this.execute(params, req, runtime), new CreateCourseResponse({}));
  }

  /**
   * 创建课程
   * 
   * @param request - CreateCourseRequest
   * @returns CreateCourseResponse
   */
  async createCourse(request: CreateCourseRequest): Promise<CreateCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCourseHeaders({ });
    return await this.createCourseWithOptions(request, headers, runtime);
  }

  /**
   * 创建自定义部门下班级
   * 
   * @param request - CreateCustomClassRequest
   * @param headers - CreateCustomClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCustomClassResponse
   */
  async createCustomClassWithOptions(request: CreateCustomClassRequest, headers: CreateCustomClassHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCustomClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.customClass)) {
      body["customClass"] = request.customClass;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.superId)) {
      body["superId"] = request.superId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCustomClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/customClasses`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateCustomClassResponse>(await this.execute(params, req, runtime), new CreateCustomClassResponse({}));
  }

  /**
   * 创建自定义部门下班级
   * 
   * @param request - CreateCustomClassRequest
   * @returns CreateCustomClassResponse
   */
  async createCustomClass(request: CreateCustomClassRequest): Promise<CreateCustomClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCustomClassHeaders({ });
    return await this.createCustomClassWithOptions(request, headers, runtime);
  }

  /**
   * 创建自定义校区或部门
   * 
   * @param request - CreateCustomDeptRequest
   * @param headers - CreateCustomDeptHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateCustomDeptResponse
   */
  async createCustomDeptWithOptions(request: CreateCustomDeptRequest, headers: CreateCustomDeptHeaders, runtime: $Util.RuntimeOptions): Promise<CreateCustomDeptResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.customDept)) {
      body["customDept"] = request.customDept;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.superId)) {
      body["superId"] = request.superId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateCustomDept",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/customDepts`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateCustomDeptResponse>(await this.execute(params, req, runtime), new CreateCustomDeptResponse({}));
  }

  /**
   * 创建自定义校区或部门
   * 
   * @param request - CreateCustomDeptRequest
   * @returns CreateCustomDeptResponse
   */
  async createCustomDept(request: CreateCustomDeptRequest): Promise<CreateCustomDeptResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateCustomDeptHeaders({ });
    return await this.createCustomDeptWithOptions(request, headers, runtime);
  }

  /**
   * 教学资源库创建space
   * 
   * @param request - CreateEduAssetSpaceRequest
   * @param headers - CreateEduAssetSpaceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateEduAssetSpaceResponse
   */
  async createEduAssetSpaceWithOptions(request: CreateEduAssetSpaceRequest, headers: CreateEduAssetSpaceHeaders, runtime: $Util.RuntimeOptions): Promise<CreateEduAssetSpaceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.spaceDesc)) {
      body["spaceDesc"] = request.spaceDesc;
    }

    if (!Util.isUnset(request.spaceIcon)) {
      body["spaceIcon"] = request.spaceIcon;
    }

    if (!Util.isUnset(request.spaceName)) {
      body["spaceName"] = request.spaceName;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateEduAssetSpace",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/assets/spaces`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateEduAssetSpaceResponse>(await this.execute(params, req, runtime), new CreateEduAssetSpaceResponse({}));
  }

  /**
   * 教学资源库创建space
   * 
   * @param request - CreateEduAssetSpaceRequest
   * @returns CreateEduAssetSpaceResponse
   */
  async createEduAssetSpace(request: CreateEduAssetSpaceRequest): Promise<CreateEduAssetSpaceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateEduAssetSpaceHeaders({ });
    return await this.createEduAssetSpaceWithOptions(request, headers, runtime);
  }

  /**
   * 创建设备履约记录，亲情通话、考勤数据同步
   * 
   * @param request - CreateFulfilRecordRequest
   * @param headers - CreateFulfilRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateFulfilRecordResponse
   */
  async createFulfilRecordWithOptions(request: CreateFulfilRecordRequest, headers: CreateFulfilRecordHeaders, runtime: $Util.RuntimeOptions): Promise<CreateFulfilRecordResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizTime)) {
      body["bizTime"] = request.bizTime;
    }

    if (!Util.isUnset(request.extInfo)) {
      body["extInfo"] = request.extInfo;
    }

    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateFulfilRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/fulfilRecords`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateFulfilRecordResponse>(await this.execute(params, req, runtime), new CreateFulfilRecordResponse({}));
  }

  /**
   * 创建设备履约记录，亲情通话、考勤数据同步
   * 
   * @param request - CreateFulfilRecordRequest
   * @returns CreateFulfilRecordResponse
   */
  async createFulfilRecord(request: CreateFulfilRecordRequest): Promise<CreateFulfilRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateFulfilRecordHeaders({ });
    return await this.createFulfilRecordWithOptions(request, headers, runtime);
  }

  /**
   * 查询某个组织下面的设备列表
   * 
   * @param request - CreateInviteUrlRequest
   * @param headers - CreateInviteUrlHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateInviteUrlResponse
   */
  async createInviteUrlWithOptions(request: CreateInviteUrlRequest, headers: CreateInviteUrlHeaders, runtime: $Util.RuntimeOptions): Promise<CreateInviteUrlResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.authCode)) {
      body["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.targetCorpId)) {
      body["targetCorpId"] = request.targetCorpId;
    }

    if (!Util.isUnset(request.targetOperator)) {
      body["targetOperator"] = request.targetOperator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateInviteUrl",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/orgRelations/inviteUrls`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateInviteUrlResponse>(await this.execute(params, req, runtime), new CreateInviteUrlResponse({}));
  }

  /**
   * 查询某个组织下面的设备列表
   * 
   * @param request - CreateInviteUrlRequest
   * @returns CreateInviteUrlResponse
   */
  async createInviteUrl(request: CreateInviteUrlRequest): Promise<CreateInviteUrlResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateInviteUrlHeaders({ });
    return await this.createInviteUrlWithOptions(request, headers, runtime);
  }

  /**
   * 创建商品
   * 
   * @param request - CreateItemRequest
   * @param headers - CreateItemHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateItemResponse
   */
  async createItemWithOptions(request: CreateItemRequest, headers: CreateItemHeaders, runtime: $Util.RuntimeOptions): Promise<CreateItemResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.description)) {
      body["description"] = request.description;
    }

    if (!Util.isUnset(request.effectType)) {
      body["effectType"] = request.effectType;
    }

    if (!Util.isUnset(request.endTime)) {
      body["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.optUser)) {
      body["optUser"] = request.optUser;
    }

    if (!Util.isUnset(request.periodType)) {
      body["periodType"] = request.periodType;
    }

    if (!Util.isUnset(request.price)) {
      body["price"] = request.price;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.startTime)) {
      body["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateItem",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/items`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateItemResponse>(await this.execute(params, req, runtime), new CreateItemResponse({}));
  }

  /**
   * 创建商品
   * 
   * @param request - CreateItemRequest
   * @returns CreateItemResponse
   */
  async createItem(request: CreateItemRequest): Promise<CreateItemResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateItemHeaders({ });
    return await this.createItemWithOptions(request, headers, runtime);
  }

  /**
   * 套件-创建定时任务
   * 
   * @param request - CreateKitTaskRequest
   * @param headers - CreateKitTaskHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateKitTaskResponse
   */
  async createKitTaskWithOptions(request: CreateKitTaskRequest, headers: CreateKitTaskHeaders, runtime: $Util.RuntimeOptions): Promise<CreateKitTaskResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionTime)) {
      body["actionTime"] = request.actionTime;
    }

    if (!Util.isUnset(request.bizData)) {
      body["bizData"] = request.bizData;
    }

    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.memo)) {
      body["memo"] = request.memo;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateKitTask",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/timerTasks`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateKitTaskResponse>(await this.execute(params, req, runtime), new CreateKitTaskResponse({}));
  }

  /**
   * 套件-创建定时任务
   * 
   * @param request - CreateKitTaskRequest
   * @returns CreateKitTaskResponse
   */
  async createKitTask(request: CreateKitTaskRequest): Promise<CreateKitTaskResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateKitTaskHeaders({ });
    return await this.createKitTaskWithOptions(request, headers, runtime);
  }

  /**
   * 创建订单信息
   * 
   * @param request - CreateOrderRequest
   * @param headers - CreateOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateOrderResponse
   */
  async createOrderWithOptions(request: CreateOrderRequest, headers: CreateOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CreateOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actualAmount)) {
      body["actualAmount"] = request.actualAmount;
    }

    if (!Util.isUnset(request.createTime)) {
      body["createTime"] = request.createTime;
    }

    if (!Util.isUnset(request.detailList)) {
      body["detailList"] = request.detailList;
    }

    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.ftoken)) {
      body["ftoken"] = request.ftoken;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.terminalParams)) {
      body["terminalParams"] = request.terminalParams;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.totalAmount)) {
      body["totalAmount"] = request.totalAmount;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    if (!Util.isUnset(request.version)) {
      body["version"] = request.version;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateOrderResponse>(await this.execute(params, req, runtime), new CreateOrderResponse({}));
  }

  /**
   * 创建订单信息
   * 
   * @param request - CreateOrderRequest
   * @returns CreateOrderResponse
   */
  async createOrder(request: CreateOrderRequest): Promise<CreateOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateOrderHeaders({ });
    return await this.createOrderWithOptions(request, headers, runtime);
  }

  /**
   * 创建开单流水
   * 
   * @param request - CreateOrderFlowRequest
   * @param headers - CreateOrderFlowHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateOrderFlowResponse
   */
  async createOrderFlowWithOptions(request: CreateOrderFlowRequest, headers: CreateOrderFlowHeaders, runtime: $Util.RuntimeOptions): Promise<CreateOrderFlowResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actualAmount)) {
      body["actualAmount"] = request.actualAmount;
    }

    if (!Util.isUnset(request.alipayUid)) {
      body["alipayUid"] = request.alipayUid;
    }

    if (!Util.isUnset(request.createTime)) {
      body["createTime"] = request.createTime;
    }

    if (!Util.isUnset(request.detailList)) {
      body["detailList"] = request.detailList;
    }

    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.guardianUserId)) {
      body["guardianUserId"] = request.guardianUserId;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.totalAmount)) {
      body["totalAmount"] = request.totalAmount;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateOrderFlow",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders/flows`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateOrderFlowResponse>(await this.execute(params, req, runtime), new CreateOrderFlowResponse({}));
  }

  /**
   * 创建开单流水
   * 
   * @param request - CreateOrderFlowRequest
   * @returns CreateOrderFlowResponse
   */
  async createOrderFlow(request: CreateOrderFlowRequest): Promise<CreateOrderFlowResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateOrderFlowHeaders({ });
    return await this.createOrderFlowWithOptions(request, headers, runtime);
  }

  /**
   * 添加物理教室信息
   * 
   * @param request - CreatePhysicalClassroomRequest
   * @param headers - CreatePhysicalClassroomHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreatePhysicalClassroomResponse
   */
  async createPhysicalClassroomWithOptions(request: CreatePhysicalClassroomRequest, headers: CreatePhysicalClassroomHeaders, runtime: $Util.RuntimeOptions): Promise<CreatePhysicalClassroomResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classroomBuilding)) {
      body["classroomBuilding"] = request.classroomBuilding;
    }

    if (!Util.isUnset(request.classroomCampus)) {
      body["classroomCampus"] = request.classroomCampus;
    }

    if (!Util.isUnset(request.classroomFloor)) {
      body["classroomFloor"] = request.classroomFloor;
    }

    if (!Util.isUnset(request.classroomName)) {
      body["classroomName"] = request.classroomName;
    }

    if (!Util.isUnset(request.classroomNumber)) {
      body["classroomNumber"] = request.classroomNumber;
    }

    if (!Util.isUnset(request.directBroadcast)) {
      body["directBroadcast"] = request.directBroadcast;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreatePhysicalClassroom",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/physicalClassrooms`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreatePhysicalClassroomResponse>(await this.execute(params, req, runtime), new CreatePhysicalClassroomResponse({}));
  }

  /**
   * 添加物理教室信息
   * 
   * @param request - CreatePhysicalClassroomRequest
   * @returns CreatePhysicalClassroomResponse
   */
  async createPhysicalClassroom(request: CreatePhysicalClassroomRequest): Promise<CreatePhysicalClassroomResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreatePhysicalClassroomHeaders({ });
    return await this.createPhysicalClassroomWithOptions(request, headers, runtime);
  }

  /**
   * 创建退款流水
   * 
   * @param request - CreateRefundFlowRequest
   * @param headers - CreateRefundFlowHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateRefundFlowResponse
   */
  async createRefundFlowWithOptions(request: CreateRefundFlowRequest, headers: CreateRefundFlowHeaders, runtime: $Util.RuntimeOptions): Promise<CreateRefundFlowResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.operatorId)) {
      body["operatorId"] = request.operatorId;
    }

    if (!Util.isUnset(request.operatorName)) {
      body["operatorName"] = request.operatorName;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateRefundFlow",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/refunds/flows`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateRefundFlowResponse>(await this.execute(params, req, runtime), new CreateRefundFlowResponse({}));
  }

  /**
   * 创建退款流水
   * 
   * @param request - CreateRefundFlowRequest
   * @returns CreateRefundFlowResponse
   */
  async createRefundFlow(request: CreateRefundFlowRequest): Promise<CreateRefundFlowResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateRefundFlowHeaders({ });
    return await this.createRefundFlowWithOptions(request, headers, runtime);
  }

  /**
   * 创建预约类型的专递课堂
   * 
   * @param request - CreateRemoteClassCourseRequest
   * @param headers - CreateRemoteClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateRemoteClassCourseResponse
   */
  async createRemoteClassCourseWithOptions(request: CreateRemoteClassCourseRequest, headers: CreateRemoteClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<CreateRemoteClassCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attendParticipants)) {
      body["attendParticipants"] = request.attendParticipants;
    }

    if (!Util.isUnset(request.authCode)) {
      body["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.courseName)) {
      body["courseName"] = request.courseName;
    }

    if (!Util.isUnset(request.endTime)) {
      body["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.startTime)) {
      body["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.teachingParticipant)) {
      body["teachingParticipant"] = request.teachingParticipant;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateRemoteClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/courses`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateRemoteClassCourseResponse>(await this.execute(params, req, runtime), new CreateRemoteClassCourseResponse({}));
  }

  /**
   * 创建预约类型的专递课堂
   * 
   * @param request - CreateRemoteClassCourseRequest
   * @returns CreateRemoteClassCourseResponse
   */
  async createRemoteClassCourse(request: CreateRemoteClassCourseRequest): Promise<CreateRemoteClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateRemoteClassCourseHeaders({ });
    return await this.createRemoteClassCourseWithOptions(request, headers, runtime);
  }

  /**
   * 按学期创建课表模板
   * 
   * @param request - CreateSectionConfigRequest
   * @param headers - CreateSectionConfigHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateSectionConfigResponse
   */
  async createSectionConfigWithOptions(request: CreateSectionConfigRequest, headers: CreateSectionConfigHeaders, runtime: $Util.RuntimeOptions): Promise<CreateSectionConfigResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.sectionConfigs)) {
      body["sectionConfigs"] = request.sectionConfigs;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateSectionConfig",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/sectionConfigs`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateSectionConfigResponse>(await this.execute(params, req, runtime), new CreateSectionConfigResponse({}));
  }

  /**
   * 按学期创建课表模板
   * 
   * @param request - CreateSectionConfigRequest
   * @returns CreateSectionConfigResponse
   */
  async createSectionConfig(request: CreateSectionConfigRequest): Promise<CreateSectionConfigResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateSectionConfigHeaders({ });
    return await this.createSectionConfigWithOptions(request, headers, runtime);
  }

  /**
   * 个人应用创建APP订单
   * 
   * @param request - CreateSnsAppOrderRequest
   * @param headers - CreateSnsAppOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateSnsAppOrderResponse
   */
  async createSnsAppOrderWithOptions(request: CreateSnsAppOrderRequest, headers: CreateSnsAppOrderHeaders, runtime: $Util.RuntimeOptions): Promise<CreateSnsAppOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actualAmount)) {
      body["actualAmount"] = request.actualAmount;
    }

    if (!Util.isUnset(request.alipayAppId)) {
      body["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.detailList)) {
      body["detailList"] = request.detailList;
    }

    if (!Util.isUnset(request.labelAmount)) {
      body["labelAmount"] = request.labelAmount;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.merchantOrderNo)) {
      body["merchantOrderNo"] = request.merchantOrderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.subject)) {
      body["subject"] = request.subject;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateSnsAppOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/snsAppOrders`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateSnsAppOrderResponse>(await this.execute(params, req, runtime), new CreateSnsAppOrderResponse({}));
  }

  /**
   * 个人应用创建APP订单
   * 
   * @param request - CreateSnsAppOrderRequest
   * @returns CreateSnsAppOrderResponse
   */
  async createSnsAppOrder(request: CreateSnsAppOrderRequest): Promise<CreateSnsAppOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateSnsAppOrderHeaders({ });
    return await this.createSnsAppOrderWithOptions(request, headers, runtime);
  }

  /**
   * 创建ststoken
   * 
   * @param request - CreateStsTokenRequest
   * @param headers - CreateStsTokenHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateStsTokenResponse
   */
  async createStsTokenWithOptions(request: CreateStsTokenRequest, headers: CreateStsTokenHeaders, runtime: $Util.RuntimeOptions): Promise<CreateStsTokenResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deviceSn)) {
      body["deviceSn"] = request.deviceSn;
    }

    if (!Util.isUnset(request.stsType)) {
      body["stsType"] = request.stsType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateStsToken",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/ststoken`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateStsTokenResponse>(await this.execute(params, req, runtime), new CreateStsTokenResponse({}));
  }

  /**
   * 创建ststoken
   * 
   * @param request - CreateStsTokenRequest
   * @returns CreateStsTokenResponse
   */
  async createStsToken(request: CreateStsTokenRequest): Promise<CreateStsTokenResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateStsTokenHeaders({ });
    return await this.createStsTokenWithOptions(request, headers, runtime);
  }

  /**
   * 创建学生班级
   * 
   * @param request - CreateStudentClassRequest
   * @param headers - CreateStudentClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateStudentClassResponse
   */
  async createStudentClassWithOptions(request: CreateStudentClassRequest, headers: CreateStudentClassHeaders, runtime: $Util.RuntimeOptions): Promise<CreateStudentClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.studentName)) {
      body["studentName"] = request.studentName;
    }

    if (!Util.isUnset(request.studentUserId)) {
      body["studentUserId"] = request.studentUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateStudentClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/students/classes`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateStudentClassResponse>(await this.execute(params, req, runtime), new CreateStudentClassResponse({}));
  }

  /**
   * 创建学生班级
   * 
   * @param request - CreateStudentClassRequest
   * @returns CreateStudentClassResponse
   */
  async createStudentClass(request: CreateStudentClassRequest): Promise<CreateStudentClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateStudentClassHeaders({ });
    return await this.createStudentClassWithOptions(request, headers, runtime);
  }

  /**
   * 创建老师课程
   * 
   * @param request - CreateTeacherCourseRequest
   * @param headers - CreateTeacherCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateTeacherCourseResponse
   */
  async createTeacherCourseWithOptions(request: CreateTeacherCourseRequest, headers: CreateTeacherCourseHeaders, runtime: $Util.RuntimeOptions): Promise<CreateTeacherCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    if (!Util.isUnset(request.teacherName)) {
      body["teacherName"] = request.teacherName;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateTeacherCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/teachers/courses`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateTeacherCourseResponse>(await this.execute(params, req, runtime), new CreateTeacherCourseResponse({}));
  }

  /**
   * 创建老师课程
   * 
   * @param request - CreateTeacherCourseRequest
   * @returns CreateTeacherCourseResponse
   */
  async createTeacherCourse(request: CreateTeacherCourseRequest): Promise<CreateTeacherCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateTeacherCourseHeaders({ });
    return await this.createTeacherCourseWithOptions(request, headers, runtime);
  }

  /**
   * 套件-创建定时卡片
   * 
   * @param request - CreateTimerCardRequest
   * @param headers - CreateTimerCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateTimerCardResponse
   */
  async createTimerCardWithOptions(request: CreateTimerCardRequest, headers: CreateTimerCardHeaders, runtime: $Util.RuntimeOptions): Promise<CreateTimerCardResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionTime)) {
      body["actionTime"] = request.actionTime;
    }

    if (!Util.isUnset(request.bizData)) {
      body["bizData"] = request.bizData;
    }

    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.memo)) {
      body["memo"] = request.memo;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateTimerCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/timerCards`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateTimerCardResponse>(await this.execute(params, req, runtime), new CreateTimerCardResponse({}));
  }

  /**
   * 套件-创建定时卡片
   * 
   * @param request - CreateTimerCardRequest
   * @returns CreateTimerCardResponse
   */
  async createTimerCard(request: CreateTimerCardRequest): Promise<CreateTimerCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateTimerCardHeaders({ });
    return await this.createTimerCardWithOptions(request, headers, runtime);
  }

  /**
   * 创建授权token
   * 
   * @param request - CreateTokenRequest
   * @param headers - CreateTokenHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateTokenResponse
   */
  async createTokenWithOptions(request: CreateTokenRequest, headers: CreateTokenHeaders, runtime: $Util.RuntimeOptions): Promise<CreateTokenResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateToken",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/tokens`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateTokenResponse>(await this.execute(params, req, runtime), new CreateTokenResponse({}));
  }

  /**
   * 创建授权token
   * 
   * @param request - CreateTokenRequest
   * @returns CreateTokenResponse
   */
  async createToken(request: CreateTokenRequest): Promise<CreateTokenResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateTokenHeaders({ });
    return await this.createTokenWithOptions(request, headers, runtime);
  }

  /**
   * 创建调代课记录
   * 
   * @param request - CreateTransferRecordRequest
   * @param headers - CreateTransferRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateTransferRecordResponse
   */
  async createTransferRecordWithOptions(request: CreateTransferRecordRequest, headers: CreateTransferRecordHeaders, runtime: $Util.RuntimeOptions): Promise<CreateTransferRecordResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.className)) {
      body["className"] = request.className;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvRecordId)) {
      body["isvRecordId"] = request.isvRecordId;
    }

    if (!Util.isUnset(request.srcCourseCode)) {
      body["srcCourseCode"] = request.srcCourseCode;
    }

    if (!Util.isUnset(request.srcCourseDate)) {
      body["srcCourseDate"] = request.srcCourseDate;
    }

    if (!Util.isUnset(request.srcCourseName)) {
      body["srcCourseName"] = request.srcCourseName;
    }

    if (!Util.isUnset(request.srcIsvCourseId)) {
      body["srcIsvCourseId"] = request.srcIsvCourseId;
    }

    if (!Util.isUnset(request.srcTimeslotName)) {
      body["srcTimeslotName"] = request.srcTimeslotName;
    }

    if (!Util.isUnset(request.srcTimeslotNum)) {
      body["srcTimeslotNum"] = request.srcTimeslotNum;
    }

    if (!Util.isUnset(request.tarCourseCode)) {
      body["tarCourseCode"] = request.tarCourseCode;
    }

    if (!Util.isUnset(request.tarCourseDate)) {
      body["tarCourseDate"] = request.tarCourseDate;
    }

    if (!Util.isUnset(request.tarCourseName)) {
      body["tarCourseName"] = request.tarCourseName;
    }

    if (!Util.isUnset(request.tarIsvCourseId)) {
      body["tarIsvCourseId"] = request.tarIsvCourseId;
    }

    if (!Util.isUnset(request.tarTimeslotName)) {
      body["tarTimeslotName"] = request.tarTimeslotName;
    }

    if (!Util.isUnset(request.tarTimeslotNum)) {
      body["tarTimeslotNum"] = request.tarTimeslotNum;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateTransferRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/transferRecords`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateTransferRecordResponse>(await this.execute(params, req, runtime), new CreateTransferRecordResponse({}));
  }

  /**
   * 创建调代课记录
   * 
   * @param request - CreateTransferRecordRequest
   * @returns CreateTransferRecordResponse
   */
  async createTransferRecord(request: CreateTransferRecordRequest): Promise<CreateTransferRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateTransferRecordHeaders({ });
    return await this.createTransferRecordWithOptions(request, headers, runtime);
  }

  /**
   * 大学创建课程组
   * 
   * @param request - CreateUniversityCourseGroupRequest
   * @param headers - CreateUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateUniversityCourseGroupResponse
   */
  async createUniversityCourseGroupWithOptions(request: CreateUniversityCourseGroupRequest, headers: CreateUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<CreateUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupIntroduce)) {
      body["courseGroupIntroduce"] = request.courseGroupIntroduce;
    }

    if (!Util.isUnset(request.courseGroupName)) {
      body["courseGroupName"] = request.courseGroupName;
    }

    if (!Util.isUnset(request.courserGroupItemModels)) {
      body["courserGroupItemModels"] = request.courserGroupItemModels;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.isvCourseGroupCode)) {
      body["isvCourseGroupCode"] = request.isvCourseGroupCode;
    }

    if (!Util.isUnset(request.periodCode)) {
      body["periodCode"] = request.periodCode;
    }

    if (!Util.isUnset(request.schoolYear)) {
      body["schoolYear"] = request.schoolYear;
    }

    if (!Util.isUnset(request.semester)) {
      body["semester"] = request.semester;
    }

    if (!Util.isUnset(request.subjectName)) {
      body["subjectName"] = request.subjectName;
    }

    if (!Util.isUnset(request.teacherInfos)) {
      body["teacherInfos"] = request.teacherInfos;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<CreateUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new CreateUniversityCourseGroupResponse({}));
  }

  /**
   * 大学创建课程组
   * 
   * @param request - CreateUniversityCourseGroupRequest
   * @returns CreateUniversityCourseGroupResponse
   */
  async createUniversityCourseGroup(request: CreateUniversityCourseGroupRequest): Promise<CreateUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateUniversityCourseGroupHeaders({ });
    return await this.createUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 大学增加学生
   * 
   * @param request - CreateUniversityStudentRequest
   * @param headers - CreateUniversityStudentHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateUniversityStudentResponse
   */
  async createUniversityStudentWithOptions(request: CreateUniversityStudentRequest, headers: CreateUniversityStudentHeaders, runtime: $Util.RuntimeOptions): Promise<CreateUniversityStudentResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.gender)) {
      body["gender"] = request.gender;
    }

    if (!Util.isUnset(request.identityNumber)) {
      body["identityNumber"] = request.identityNumber;
    }

    if (!Util.isUnset(request.mobile)) {
      body["mobile"] = request.mobile;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.studentNumber)) {
      body["studentNumber"] = request.studentNumber;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateUniversityStudent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/students`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateUniversityStudentResponse>(await this.execute(params, req, runtime), new CreateUniversityStudentResponse({}));
  }

  /**
   * 大学增加学生
   * 
   * @param request - CreateUniversityStudentRequest
   * @returns CreateUniversityStudentResponse
   */
  async createUniversityStudent(request: CreateUniversityStudentRequest): Promise<CreateUniversityStudentResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateUniversityStudentHeaders({ });
    return await this.createUniversityStudentWithOptions(request, headers, runtime);
  }

  /**
   * 大学添加老师
   * 
   * @param request - CreateUniversityTeacherRequest
   * @param headers - CreateUniversityTeacherHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateUniversityTeacherResponse
   */
  async createUniversityTeacherWithOptions(request: CreateUniversityTeacherRequest, headers: CreateUniversityTeacherHeaders, runtime: $Util.RuntimeOptions): Promise<CreateUniversityTeacherResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.opUserId)) {
      body["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.role)) {
      body["role"] = request.role;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateUniversityTeacher",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/teachers`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateUniversityTeacherResponse>(await this.execute(params, req, runtime), new CreateUniversityTeacherResponse({}));
  }

  /**
   * 大学添加老师
   * 
   * @param request - CreateUniversityTeacherRequest
   * @returns CreateUniversityTeacherResponse
   */
  async createUniversityTeacher(request: CreateUniversityTeacherRequest): Promise<CreateUniversityTeacherResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateUniversityTeacherHeaders({ });
    return await this.createUniversityTeacherWithOptions(request, headers, runtime);
  }

  /**
   * 错题本-添加错题
   * 
   * @param request - CreateWrongQuestionsRequest
   * @param headers - CreateWrongQuestionsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns CreateWrongQuestionsResponse
   */
  async createWrongQuestionsWithOptions(request: CreateWrongQuestionsRequest, headers: CreateWrongQuestionsHeaders, runtime: $Util.RuntimeOptions): Promise<CreateWrongQuestionsResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.answerContent)) {
      body["answerContent"] = request.answerContent;
    }

    if (!Util.isUnset(request.difficultyLevel)) {
      body["difficultyLevel"] = request.difficultyLevel;
    }

    if (!Util.isUnset(request.explainAudio)) {
      body["explainAudio"] = request.explainAudio;
    }

    if (!Util.isUnset(request.explainContent)) {
      body["explainContent"] = request.explainContent;
    }

    if (!Util.isUnset(request.generateTime)) {
      body["generateTime"] = request.generateTime;
    }

    if (!Util.isUnset(request.knowledgePointList)) {
      body["knowledgePointList"] = request.knowledgePointList;
    }

    if (!Util.isUnset(request.ownerCode)) {
      body["ownerCode"] = request.ownerCode;
    }

    if (!Util.isUnset(request.ownerType)) {
      body["ownerType"] = request.ownerType;
    }

    if (!Util.isUnset(request.proficiencyLevel)) {
      body["proficiencyLevel"] = request.proficiencyLevel;
    }

    if (!Util.isUnset(request.questionAudio)) {
      body["questionAudio"] = request.questionAudio;
    }

    if (!Util.isUnset(request.questionContent)) {
      body["questionContent"] = request.questionContent;
    }

    if (!Util.isUnset(request.questionExtension)) {
      body["questionExtension"] = request.questionExtension;
    }

    if (!Util.isUnset(request.questionPicUrl)) {
      body["questionPicUrl"] = request.questionPicUrl;
    }

    if (!Util.isUnset(request.questionType)) {
      body["questionType"] = request.questionType;
    }

    if (!Util.isUnset(request.sourceCode)) {
      body["sourceCode"] = request.sourceCode;
    }

    if (!Util.isUnset(request.studentUserId)) {
      body["studentUserId"] = request.studentUserId;
    }

    if (!Util.isUnset(request.subject)) {
      body["subject"] = request.subject;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "CreateWrongQuestions",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/corp/wrongQuestions`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<CreateWrongQuestionsResponse>(await this.execute(params, req, runtime), new CreateWrongQuestionsResponse({}));
  }

  /**
   * 错题本-添加错题
   * 
   * @param request - CreateWrongQuestionsRequest
   * @returns CreateWrongQuestionsResponse
   */
  async createWrongQuestions(request: CreateWrongQuestionsRequest): Promise<CreateWrongQuestionsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new CreateWrongQuestionsHeaders({ });
    return await this.createWrongQuestionsWithOptions(request, headers, runtime);
  }

  /**
   * 视讯paas机具取消激活
   * 
   * @param request - DeactivateDeviceRequest
   * @param headers - DeactivateDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeactivateDeviceResponse
   */
  async deactivateDeviceWithOptions(request: DeactivateDeviceRequest, headers: DeactivateDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<DeactivateDeviceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.model)) {
      body["model"] = request.model;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeactivateDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices/deactivate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeactivateDeviceResponse>(await this.execute(params, req, runtime), new DeactivateDeviceResponse({}));
  }

  /**
   * 视讯paas机具取消激活
   * 
   * @param request - DeactivateDeviceRequest
   * @returns DeactivateDeviceResponse
   */
  async deactivateDevice(request: DeactivateDeviceRequest): Promise<DeactivateDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeactivateDeviceHeaders({ });
    return await this.deactivateDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 扣减教育积分
   * 
   * @param request - DeductPointRequest
   * @param headers - DeductPointHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeductPointResponse
   */
  async deductPointWithOptions(request: DeductPointRequest, headers: DeductPointHeaders, runtime: $Util.RuntimeOptions): Promise<DeductPointResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.deductDesc)) {
      body["deductDesc"] = request.deductDesc;
    }

    if (!Util.isUnset(request.deductDetailUrl)) {
      body["deductDetailUrl"] = request.deductDetailUrl;
    }

    if (!Util.isUnset(request.deductNum)) {
      body["deductNum"] = request.deductNum;
    }

    if (!Util.isUnset(request.pointType)) {
      body["pointType"] = request.pointType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeductPoint",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/points/deduct`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeductPointResponse>(await this.execute(params, req, runtime), new DeductPointResponse({}));
  }

  /**
   * 扣减教育积分
   * 
   * @param request - DeductPointRequest
   * @returns DeductPointResponse
   */
  async deductPoint(request: DeductPointRequest): Promise<DeductPointResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeductPointHeaders({ });
    return await this.deductPointWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会删除当前部门
   * 
   * @param request - DeleteCollegeAlumniDeptRequest
   * @param headers - DeleteCollegeAlumniDeptHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteCollegeAlumniDeptResponse
   */
  async deleteCollegeAlumniDeptWithOptions(request: DeleteCollegeAlumniDeptRequest, headers: DeleteCollegeAlumniDeptHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteCollegeAlumniDeptResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      query["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteCollegeAlumniDept",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/depts`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteCollegeAlumniDeptResponse>(await this.execute(params, req, runtime), new DeleteCollegeAlumniDeptResponse({}));
  }

  /**
   * 高校校友会删除当前部门
   * 
   * @param request - DeleteCollegeAlumniDeptRequest
   * @returns DeleteCollegeAlumniDeptResponse
   */
  async deleteCollegeAlumniDept(request: DeleteCollegeAlumniDeptRequest): Promise<DeleteCollegeAlumniDeptResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteCollegeAlumniDeptHeaders({ });
    return await this.deleteCollegeAlumniDeptWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会删除校友信息
   * 
   * @param request - DeleteCollegeAlumniUserInfoRequest
   * @param headers - DeleteCollegeAlumniUserInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteCollegeAlumniUserInfoResponse
   */
  async deleteCollegeAlumniUserInfoWithOptions(request: DeleteCollegeAlumniUserInfoRequest, headers: DeleteCollegeAlumniUserInfoHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteCollegeAlumniUserInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.userIds)) {
      body["userIds"] = request.userIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeleteCollegeAlumniUserInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/userInfos/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteCollegeAlumniUserInfoResponse>(await this.execute(params, req, runtime), new DeleteCollegeAlumniUserInfoResponse({}));
  }

  /**
   * 高校校友会删除校友信息
   * 
   * @param request - DeleteCollegeAlumniUserInfoRequest
   * @returns DeleteCollegeAlumniUserInfoResponse
   */
  async deleteCollegeAlumniUserInfo(request: DeleteCollegeAlumniUserInfoRequest): Promise<DeleteCollegeAlumniUserInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteCollegeAlumniUserInfoHeaders({ });
    return await this.deleteCollegeAlumniUserInfoWithOptions(request, headers, runtime);
  }

  /**
   * 删除高校通讯录场景架构
   * 
   * @param request - DeleteCollegeContactSceneStruRequest
   * @param headers - DeleteCollegeContactSceneStruHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteCollegeContactSceneStruResponse
   */
  async deleteCollegeContactSceneStruWithOptions(request: DeleteCollegeContactSceneStruRequest, headers: DeleteCollegeContactSceneStruHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteCollegeContactSceneStruResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.struId)) {
      body["struId"] = request.struId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeleteCollegeContactSceneStru",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteCollegeContactSceneStruResponse>(await this.execute(params, req, runtime), new DeleteCollegeContactSceneStruResponse({}));
  }

  /**
   * 删除高校通讯录场景架构
   * 
   * @param request - DeleteCollegeContactSceneStruRequest
   * @returns DeleteCollegeContactSceneStruResponse
   */
  async deleteCollegeContactSceneStru(request: DeleteCollegeContactSceneStruRequest): Promise<DeleteCollegeContactSceneStruResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteCollegeContactSceneStruHeaders({ });
    return await this.deleteCollegeContactSceneStruWithOptions(request, headers, runtime);
  }

  /**
   * 删除家校部门
   * 
   * @param request - DeleteDeptRequest
   * @param headers - DeleteDeptHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteDeptResponse
   */
  async deleteDeptWithOptions(deptId: string, request: DeleteDeptRequest, headers: DeleteDeptHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteDeptResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteDept",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/depts/${deptId}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteDeptResponse>(await this.execute(params, req, runtime), new DeleteDeptResponse({}));
  }

  /**
   * 删除家校部门
   * 
   * @param request - DeleteDeptRequest
   * @returns DeleteDeptResponse
   */
  async deleteDept(deptId: string, request: DeleteDeptRequest): Promise<DeleteDeptResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteDeptHeaders({ });
    return await this.deleteDeptWithOptions(deptId, request, headers, runtime);
  }

  /**
   * 视讯paas机具删除
   * 
   * @param request - DeleteDeviceRequest
   * @param headers - DeleteDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteDeviceResponse
   */
  async deleteDeviceWithOptions(request: DeleteDeviceRequest, headers: DeleteDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteDeviceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteDeviceResponse>(await this.execute(params, req, runtime), new DeleteDeviceResponse({}));
  }

  /**
   * 视讯paas机具删除
   * 
   * @param request - DeleteDeviceRequest
   * @returns DeleteDeviceResponse
   */
  async deleteDevice(request: DeleteDeviceRequest): Promise<DeleteDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteDeviceHeaders({ });
    return await this.deleteDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 删除设备上面的组织
   * 
   * @param request - DeleteDeviceOrgRequest
   * @param headers - DeleteDeviceOrgHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteDeviceOrgResponse
   */
  async deleteDeviceOrgWithOptions(request: DeleteDeviceOrgRequest, headers: DeleteDeviceOrgHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteDeviceOrgResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.authCode)) {
      query["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.deviceCode)) {
      query["deviceCode"] = request.deviceCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteDeviceOrg",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/deviceOrgs`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteDeviceOrgResponse>(await this.execute(params, req, runtime), new DeleteDeviceOrgResponse({}));
  }

  /**
   * 删除设备上面的组织
   * 
   * @param request - DeleteDeviceOrgRequest
   * @returns DeleteDeviceOrgResponse
   */
  async deleteDeviceOrg(request: DeleteDeviceOrgRequest): Promise<DeleteDeviceOrgResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteDeviceOrgHeaders({ });
    return await this.deleteDeviceOrgWithOptions(request, headers, runtime);
  }

  /**
   * 删除评价表现数据
   * 
   * @param request - DeleteEvaluatePerformanceRequest
   * @param headers - DeleteEvaluatePerformanceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteEvaluatePerformanceResponse
   */
  async deleteEvaluatePerformanceWithOptions(request: DeleteEvaluatePerformanceRequest, headers: DeleteEvaluatePerformanceHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteEvaluatePerformanceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.evaluationIdList)) {
      body["evaluationIdList"] = request.evaluationIdList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeleteEvaluatePerformance",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/evaluations/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteEvaluatePerformanceResponse>(await this.execute(params, req, runtime), new DeleteEvaluatePerformanceResponse({}));
  }

  /**
   * 删除评价表现数据
   * 
   * @param request - DeleteEvaluatePerformanceRequest
   * @returns DeleteEvaluatePerformanceResponse
   */
  async deleteEvaluatePerformance(request: DeleteEvaluatePerformanceRequest): Promise<DeleteEvaluatePerformanceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteEvaluatePerformanceHeaders({ });
    return await this.deleteEvaluatePerformanceWithOptions(request, headers, runtime);
  }

  /**
   * 删除家长
   * 
   * @param request - DeleteGuardianRequest
   * @param headers - DeleteGuardianHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteGuardianResponse
   */
  async deleteGuardianWithOptions(classId: string, userId: string, request: DeleteGuardianRequest, headers: DeleteGuardianHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteGuardianResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.stuId)) {
      query["stuId"] = request.stuId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteGuardian",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/${classId}/guardians/${userId}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteGuardianResponse>(await this.execute(params, req, runtime), new DeleteGuardianResponse({}));
  }

  /**
   * 删除家长
   * 
   * @param request - DeleteGuardianRequest
   * @returns DeleteGuardianResponse
   */
  async deleteGuardian(classId: string, userId: string, request: DeleteGuardianRequest): Promise<DeleteGuardianResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteGuardianHeaders({ });
    return await this.deleteGuardianWithOptions(classId, userId, request, headers, runtime);
  }

  /**
   * 删除组织的关联关系
   * 
   * @param request - DeleteOrgRelationRequest
   * @param headers - DeleteOrgRelationHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteOrgRelationResponse
   */
  async deleteOrgRelationWithOptions(request: DeleteOrgRelationRequest, headers: DeleteOrgRelationHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteOrgRelationResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.authCode)) {
      query["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.targetCorpId)) {
      query["targetCorpId"] = request.targetCorpId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteOrgRelation",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/orgRelations`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteOrgRelationResponse>(await this.execute(params, req, runtime), new DeleteOrgRelationResponse({}));
  }

  /**
   * 删除组织的关联关系
   * 
   * @param request - DeleteOrgRelationRequest
   * @returns DeleteOrgRelationResponse
   */
  async deleteOrgRelation(request: DeleteOrgRelationRequest): Promise<DeleteOrgRelationResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteOrgRelationHeaders({ });
    return await this.deleteOrgRelationWithOptions(request, headers, runtime);
  }

  /**
   * 删除物理教室信息
   * 
   * @param request - DeletePhysicalClassroomRequest
   * @param headers - DeletePhysicalClassroomHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeletePhysicalClassroomResponse
   */
  async deletePhysicalClassroomWithOptions(request: DeletePhysicalClassroomRequest, headers: DeletePhysicalClassroomHeaders, runtime: $Util.RuntimeOptions): Promise<DeletePhysicalClassroomResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classroomId)) {
      query["classroomId"] = request.classroomId;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeletePhysicalClassroom",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/physicalClassrooms`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeletePhysicalClassroomResponse>(await this.execute(params, req, runtime), new DeletePhysicalClassroomResponse({}));
  }

  /**
   * 删除物理教室信息
   * 
   * @param request - DeletePhysicalClassroomRequest
   * @returns DeletePhysicalClassroomResponse
   */
  async deletePhysicalClassroom(request: DeletePhysicalClassroomRequest): Promise<DeletePhysicalClassroomResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeletePhysicalClassroomHeaders({ });
    return await this.deletePhysicalClassroomWithOptions(request, headers, runtime);
  }

  /**
   * 删除专递课堂课程
   * 
   * @param request - DeleteRemoteClassCourseRequest
   * @param headers - DeleteRemoteClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteRemoteClassCourseResponse
   */
  async deleteRemoteClassCourseWithOptions(courseCode: string, request: DeleteRemoteClassCourseRequest, headers: DeleteRemoteClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteRemoteClassCourseResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.authCode)) {
      query["authCode"] = request.authCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteRemoteClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/courses/${courseCode}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteRemoteClassCourseResponse>(await this.execute(params, req, runtime), new DeleteRemoteClassCourseResponse({}));
  }

  /**
   * 删除专递课堂课程
   * 
   * @param request - DeleteRemoteClassCourseRequest
   * @returns DeleteRemoteClassCourseResponse
   */
  async deleteRemoteClassCourse(courseCode: string, request: DeleteRemoteClassCourseRequest): Promise<DeleteRemoteClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteRemoteClassCourseHeaders({ });
    return await this.deleteRemoteClassCourseWithOptions(courseCode, request, headers, runtime);
  }

  /**
   * 删除成绩单
   * 
   * @param request - DeleteSchoolReportRequest
   * @param headers - DeleteSchoolReportHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteSchoolReportResponse
   */
  async deleteSchoolReportWithOptions(request: DeleteSchoolReportRequest, headers: DeleteSchoolReportHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteSchoolReportResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.schoolReportId)) {
      body["schoolReportId"] = request.schoolReportId;
    }

    if (!Util.isUnset(request.teacherId)) {
      body["teacherId"] = request.teacherId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DeleteSchoolReport",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/reports/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteSchoolReportResponse>(await this.execute(params, req, runtime), new DeleteSchoolReportResponse({}));
  }

  /**
   * 删除成绩单
   * 
   * @param request - DeleteSchoolReportRequest
   * @returns DeleteSchoolReportResponse
   */
  async deleteSchoolReport(request: DeleteSchoolReportRequest): Promise<DeleteSchoolReportResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteSchoolReportHeaders({ });
    return await this.deleteSchoolReportWithOptions(request, headers, runtime);
  }

  /**
   * 删除学生
   * 
   * @param request - DeleteStudentRequest
   * @param headers - DeleteStudentHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteStudentResponse
   */
  async deleteStudentWithOptions(classId: string, userId: string, request: DeleteStudentRequest, headers: DeleteStudentHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteStudentResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteStudent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/${classId}/students/${userId}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteStudentResponse>(await this.execute(params, req, runtime), new DeleteStudentResponse({}));
  }

  /**
   * 删除学生
   * 
   * @param request - DeleteStudentRequest
   * @returns DeleteStudentResponse
   */
  async deleteStudent(classId: string, userId: string, request: DeleteStudentRequest): Promise<DeleteStudentResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteStudentHeaders({ });
    return await this.deleteStudentWithOptions(classId, userId, request, headers, runtime);
  }

  /**
   * 删除老师
   * 
   * @param request - DeleteTeacherRequest
   * @param headers - DeleteTeacherHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteTeacherResponse
   */
  async deleteTeacherWithOptions(classId: string, userId: string, request: DeleteTeacherRequest, headers: DeleteTeacherHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteTeacherResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.adviser)) {
      query["adviser"] = request.adviser;
    }

    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteTeacher",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/${classId}/teachers/${userId}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteTeacherResponse>(await this.execute(params, req, runtime), new DeleteTeacherResponse({}));
  }

  /**
   * 删除老师
   * 
   * @param request - DeleteTeacherRequest
   * @returns DeleteTeacherResponse
   */
  async deleteTeacher(classId: string, userId: string, request: DeleteTeacherRequest): Promise<DeleteTeacherResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteTeacherHeaders({ });
    return await this.deleteTeacherWithOptions(classId, userId, request, headers, runtime);
  }

  /**
   * 删除大学课程组
   * 
   * @param request - DeleteUniversityCourseGroupRequest
   * @param headers - DeleteUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteUniversityCourseGroupResponse
   */
  async deleteUniversityCourseGroupWithOptions(request: DeleteUniversityCourseGroupRequest, headers: DeleteUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupCode)) {
      query["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<DeleteUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new DeleteUniversityCourseGroupResponse({}));
  }

  /**
   * 删除大学课程组
   * 
   * @param request - DeleteUniversityCourseGroupRequest
   * @returns DeleteUniversityCourseGroupResponse
   */
  async deleteUniversityCourseGroup(request: DeleteUniversityCourseGroupRequest): Promise<DeleteUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteUniversityCourseGroupHeaders({ });
    return await this.deleteUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 删除大学学生
   * 
   * @param request - DeleteUniversityStudentRequest
   * @param headers - DeleteUniversityStudentHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteUniversityStudentResponse
   */
  async deleteUniversityStudentWithOptions(request: DeleteUniversityStudentRequest, headers: DeleteUniversityStudentHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteUniversityStudentResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      query["classId"] = request.classId;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.studentUserId)) {
      query["studentUserId"] = request.studentUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteUniversityStudent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/students`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteUniversityStudentResponse>(await this.execute(params, req, runtime), new DeleteUniversityStudentResponse({}));
  }

  /**
   * 删除大学学生
   * 
   * @param request - DeleteUniversityStudentRequest
   * @returns DeleteUniversityStudentResponse
   */
  async deleteUniversityStudent(request: DeleteUniversityStudentRequest): Promise<DeleteUniversityStudentResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteUniversityStudentHeaders({ });
    return await this.deleteUniversityStudentWithOptions(request, headers, runtime);
  }

  /**
   * 删除大学教师
   * 
   * @param request - DeleteUniversityTeacherRequest
   * @param headers - DeleteUniversityTeacherHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteUniversityTeacherResponse
   */
  async deleteUniversityTeacherWithOptions(request: DeleteUniversityTeacherRequest, headers: DeleteUniversityTeacherHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteUniversityTeacherResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      query["classId"] = request.classId;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.role)) {
      query["role"] = request.role;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      query["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeleteUniversityTeacher",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/teachers`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteUniversityTeacherResponse>(await this.execute(params, req, runtime), new DeleteUniversityTeacherResponse({}));
  }

  /**
   * 删除大学教师
   * 
   * @param request - DeleteUniversityTeacherRequest
   * @returns DeleteUniversityTeacherResponse
   */
  async deleteUniversityTeacher(request: DeleteUniversityTeacherRequest): Promise<DeleteUniversityTeacherResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteUniversityTeacherHeaders({ });
    return await this.deleteUniversityTeacherWithOptions(request, headers, runtime);
  }

  /**
   * 设备心跳上报
   * 
   * @param request - DeviceHeartbeatRequest
   * @param headers - DeviceHeartbeatHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeviceHeartbeatResponse
   */
  async deviceHeartbeatWithOptions(request: DeviceHeartbeatRequest, headers: DeviceHeartbeatHeaders, runtime: $Util.RuntimeOptions): Promise<DeviceHeartbeatResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "DeviceHeartbeat",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/heartbeats/report`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeviceHeartbeatResponse>(await this.execute(params, req, runtime), new DeviceHeartbeatResponse({}));
  }

  /**
   * 设备心跳上报
   * 
   * @param request - DeviceHeartbeatRequest
   * @returns DeviceHeartbeatResponse
   */
  async deviceHeartbeat(request: DeviceHeartbeatRequest): Promise<DeviceHeartbeatResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeviceHeartbeatHeaders({ });
    return await this.deviceHeartbeatWithOptions(request, headers, runtime);
  }

  /**
   * 停用高校通讯录场景架构
   * 
   * @param request - DisableCollegeContactSceneStruRequest
   * @param headers - DisableCollegeContactSceneStruHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DisableCollegeContactSceneStruResponse
   */
  async disableCollegeContactSceneStruWithOptions(request: DisableCollegeContactSceneStruRequest, headers: DisableCollegeContactSceneStruHeaders, runtime: $Util.RuntimeOptions): Promise<DisableCollegeContactSceneStruResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.struId)) {
      body["struId"] = request.struId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "DisableCollegeContactSceneStru",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes/disable`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DisableCollegeContactSceneStruResponse>(await this.execute(params, req, runtime), new DisableCollegeContactSceneStruResponse({}));
  }

  /**
   * 停用高校通讯录场景架构
   * 
   * @param request - DisableCollegeContactSceneStruRequest
   * @returns DisableCollegeContactSceneStruResponse
   */
  async disableCollegeContactSceneStru(request: DisableCollegeContactSceneStruRequest): Promise<DisableCollegeContactSceneStruResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DisableCollegeContactSceneStruHeaders({ });
    return await this.disableCollegeContactSceneStruWithOptions(request, headers, runtime);
  }

  /**
   * 教育三方aigc结果回调
   * 
   * @param request - EduAIGCCallbackRequest
   * @param headers - EduAIGCCallbackHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduAIGCCallbackResponse
   */
  async eduAIGCCallbackWithOptions(request: EduAIGCCallbackRequest, headers: EduAIGCCallbackHeaders, runtime: $Util.RuntimeOptions): Promise<EduAIGCCallbackResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.channelCode)) {
      body["channelCode"] = request.channelCode;
    }

    if (!Util.isUnset(request.commitTime)) {
      body["commitTime"] = request.commitTime;
    }

    if (!Util.isUnset(request.completeTime)) {
      body["completeTime"] = request.completeTime;
    }

    if (!Util.isUnset(request.content)) {
      body["content"] = request.content;
    }

    if (!Util.isUnset(request.contentSize)) {
      body["contentSize"] = request.contentSize;
    }

    if (!Util.isUnset(request.contentType)) {
      body["contentType"] = request.contentType;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.prompt)) {
      body["prompt"] = request.prompt;
    }

    if (!Util.isUnset(request.remark)) {
      body["remark"] = request.remark;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EduAIGCCallback",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/aigc/callback`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduAIGCCallbackResponse>(await this.execute(params, req, runtime), new EduAIGCCallbackResponse({}));
  }

  /**
   * 教育三方aigc结果回调
   * 
   * @param request - EduAIGCCallbackRequest
   * @returns EduAIGCCallbackResponse
   */
  async eduAIGCCallback(request: EduAIGCCallbackRequest): Promise<EduAIGCCallbackResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduAIGCCallbackHeaders({ });
    return await this.eduAIGCCallbackWithOptions(request, headers, runtime);
  }

  /**
   * 教育大模型开放接口
   * 
   * @param request - EduAIModelCompleteRequest
   * @param headers - EduAIModelCompleteHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduAIModelCompleteResponse
   */
  async eduAIModelCompleteWithOptions(request: EduAIModelCompleteRequest, headers: EduAIModelCompleteHeaders, runtime: $Util.RuntimeOptions): Promise<EduAIModelCompleteResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.maxTokens)) {
      body["maxTokens"] = request.maxTokens;
    }

    if (!Util.isUnset(request.model)) {
      body["model"] = request.model;
    }

    if (!Util.isUnset(request.prompt)) {
      body["prompt"] = request.prompt;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.temperature)) {
      body["temperature"] = request.temperature;
    }

    if (!Util.isUnset(request.topP)) {
      body["top_p"] = request.topP;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EduAIModelComplete",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/ai/models/complete`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduAIModelCompleteResponse>(await this.execute(params, req, runtime), new EduAIModelCompleteResponse({}));
  }

  /**
   * 教育大模型开放接口
   * 
   * @param request - EduAIModelCompleteRequest
   * @returns EduAIModelCompleteResponse
   */
  async eduAIModelComplete(request: EduAIModelCompleteRequest): Promise<EduAIModelCompleteResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduAIModelCompleteHeaders({ });
    return await this.eduAIModelCompleteWithOptions(request, headers, runtime);
  }

  /**
   * 教育侧用户的所有角色
   * 
   * @param request - EduFindUserRolesByUserIdRequest
   * @param headers - EduFindUserRolesByUserIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduFindUserRolesByUserIdResponse
   */
  async eduFindUserRolesByUserIdWithOptions(request: EduFindUserRolesByUserIdRequest, headers: EduFindUserRolesByUserIdHeaders, runtime: $Util.RuntimeOptions): Promise<EduFindUserRolesByUserIdResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      query["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      query["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.hasOrgRole)) {
      query["hasOrgRole"] = request.hasOrgRole;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "EduFindUserRolesByUserId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/allRoles`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduFindUserRolesByUserIdResponse>(await this.execute(params, req, runtime), new EduFindUserRolesByUserIdResponse({}));
  }

  /**
   * 教育侧用户的所有角色
   * 
   * @param request - EduFindUserRolesByUserIdRequest
   * @returns EduFindUserRolesByUserIdResponse
   */
  async eduFindUserRolesByUserId(request: EduFindUserRolesByUserIdRequest): Promise<EduFindUserRolesByUserIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduFindUserRolesByUserIdHeaders({ });
    return await this.eduFindUserRolesByUserIdWithOptions(request, headers, runtime);
  }

  /**
   * 获取用户文件存储空间信息
   * 
   * @param request - EduGetFileSpaceRequest
   * @param headers - EduGetFileSpaceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduGetFileSpaceResponse
   */
  async eduGetFileSpaceWithOptions(request: EduGetFileSpaceRequest, headers: EduGetFileSpaceHeaders, runtime: $Util.RuntimeOptions): Promise<EduGetFileSpaceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.channelCode)) {
      body["channelCode"] = request.channelCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EduGetFileSpace",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/files/spaces/infos/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduGetFileSpaceResponse>(await this.execute(params, req, runtime), new EduGetFileSpaceResponse({}));
  }

  /**
   * 获取用户文件存储空间信息
   * 
   * @param request - EduGetFileSpaceRequest
   * @returns EduGetFileSpaceResponse
   */
  async eduGetFileSpace(request: EduGetFileSpaceRequest): Promise<EduGetFileSpaceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduGetFileSpaceHeaders({ });
    return await this.eduGetFileSpaceWithOptions(request, headers, runtime);
  }

  /**
   * 教育侧获取用户所有关系详情列表
   * 
   * @param request - EduListUserByFromUserIdsRequest
   * @param headers - EduListUserByFromUserIdsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduListUserByFromUserIdsResponse
   */
  async eduListUserByFromUserIdsWithOptions(request: EduListUserByFromUserIdsRequest, headers: EduListUserByFromUserIdsHeaders, runtime: $Util.RuntimeOptions): Promise<EduListUserByFromUserIdsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      query["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      query["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.guardianUserId)) {
      query["guardianUserId"] = request.guardianUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "EduListUserByFromUserIds",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/allRelations/lists`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduListUserByFromUserIdsResponse>(await this.execute(params, req, runtime), new EduListUserByFromUserIdsResponse({}));
  }

  /**
   * 教育侧获取用户所有关系详情列表
   * 
   * @param request - EduListUserByFromUserIdsRequest
   * @returns EduListUserByFromUserIdsResponse
   */
  async eduListUserByFromUserIds(request: EduListUserByFromUserIdsRequest): Promise<EduListUserByFromUserIdsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduListUserByFromUserIdsHeaders({ });
    return await this.eduListUserByFromUserIdsWithOptions(request, headers, runtime);
  }

  /**
   * 查询教师列表
   * 
   * @param request - EduTeacherListRequest
   * @param headers - EduTeacherListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EduTeacherListResponse
   */
  async eduTeacherListWithOptions(request: EduTeacherListRequest, headers: EduTeacherListHeaders, runtime: $Util.RuntimeOptions): Promise<EduTeacherListResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "EduTeacherList",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/teachers`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EduTeacherListResponse>(await this.execute(params, req, runtime), new EduTeacherListResponse({}));
  }

  /**
   * 查询教师列表
   * 
   * @param request - EduTeacherListRequest
   * @returns EduTeacherListResponse
   */
  async eduTeacherList(request: EduTeacherListRequest): Promise<EduTeacherListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EduTeacherListHeaders({ });
    return await this.eduTeacherListWithOptions(request, headers, runtime);
  }

  /**
   * 启用高校通讯录场景架构
   * 
   * @param request - EnableCollegeContactSceneStruRequest
   * @param headers - EnableCollegeContactSceneStruHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EnableCollegeContactSceneStruResponse
   */
  async enableCollegeContactSceneStruWithOptions(request: EnableCollegeContactSceneStruRequest, headers: EnableCollegeContactSceneStruHeaders, runtime: $Util.RuntimeOptions): Promise<EnableCollegeContactSceneStruResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.struId)) {
      body["struId"] = request.struId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EnableCollegeContactSceneStru",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes/enable`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EnableCollegeContactSceneStruResponse>(await this.execute(params, req, runtime), new EnableCollegeContactSceneStruResponse({}));
  }

  /**
   * 启用高校通讯录场景架构
   * 
   * @param request - EnableCollegeContactSceneStruRequest
   * @returns EnableCollegeContactSceneStruResponse
   */
  async enableCollegeContactSceneStru(request: EnableCollegeContactSceneStruRequest): Promise<EnableCollegeContactSceneStruResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EnableCollegeContactSceneStruHeaders({ });
    return await this.enableCollegeContactSceneStruWithOptions(request, headers, runtime);
  }

  /**
   * 关闭课程
   * 
   * @param request - EndCourseRequest
   * @param headers - EndCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EndCourseResponse
   */
  async endCourseWithOptions(request: EndCourseRequest, headers: EndCourseHeaders, runtime: $Util.RuntimeOptions): Promise<EndCourseResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseCode)) {
      body["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.livePlayInfoList)) {
      body["livePlayInfoList"] = request.livePlayInfoList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EndCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courses/end`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EndCourseResponse>(await this.execute(params, req, runtime), new EndCourseResponse({}));
  }

  /**
   * 关闭课程
   * 
   * @param request - EndCourseRequest
   * @returns EndCourseResponse
   */
  async endCourse(request: EndCourseRequest): Promise<EndCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EndCourseHeaders({ });
    return await this.endCourseWithOptions(request, headers, runtime);
  }

  /**
   * 新增用户事件跟踪日志
   * 
   * @param request - EventTrackRequest
   * @param headers - EventTrackHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns EventTrackResponse
   */
  async eventTrackWithOptions(request: EventTrackRequest, headers: EventTrackHeaders, runtime: $Util.RuntimeOptions): Promise<EventTrackResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionKey)) {
      body["actionKey"] = request.actionKey;
    }

    if (!Util.isUnset(request.actionTime)) {
      body["actionTime"] = request.actionTime;
    }

    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.bizReq)) {
      body["bizReq"] = request.bizReq;
    }

    if (!Util.isUnset(request.bizResp)) {
      body["bizResp"] = request.bizResp;
    }

    if (!Util.isUnset(request.deviceId)) {
      body["deviceId"] = request.deviceId;
    }

    if (!Util.isUnset(request.eventId)) {
      body["eventId"] = request.eventId;
    }

    if (!Util.isUnset(request.eventType)) {
      body["eventType"] = request.eventType;
    }

    if (!Util.isUnset(request.eventUnit)) {
      body["eventUnit"] = request.eventUnit;
    }

    if (!Util.isUnset(request.eventValue)) {
      body["eventValue"] = request.eventValue;
    }

    if (!Util.isUnset(request.extend)) {
      body["extend"] = request.extend;
    }

    if (!Util.isUnset(request.platform)) {
      body["platform"] = request.platform;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "EventTrack",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/events/traceLogs`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<EventTrackResponse>(await this.execute(params, req, runtime), new EventTrackResponse({}));
  }

  /**
   * 新增用户事件跟踪日志
   * 
   * @param request - EventTrackRequest
   * @returns EventTrackResponse
   */
  async eventTrack(request: EventTrackRequest): Promise<EventTrackResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new EventTrackHeaders({ });
    return await this.eventTrackWithOptions(request, headers, runtime);
  }

  /**
   * 获取调用大模型的taskId
   * 
   * @param request - GenerateTaskIdRequest
   * @param headers - GenerateTaskIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GenerateTaskIdResponse
   */
  async generateTaskIdWithOptions(request: GenerateTaskIdRequest, headers: GenerateTaskIdHeaders, runtime: $Util.RuntimeOptions): Promise<GenerateTaskIdResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.maxTokens)) {
      body["maxTokens"] = request.maxTokens;
    }

    if (!Util.isUnset(request.model)) {
      body["model"] = request.model;
    }

    if (!Util.isUnset(request.prompt)) {
      body["prompt"] = request.prompt;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.temperature)) {
      body["temperature"] = request.temperature;
    }

    if (!Util.isUnset(request.topP)) {
      body["top_p"] = request.topP;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "GenerateTaskId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/ai/models/taskId/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GenerateTaskIdResponse>(await this.execute(params, req, runtime), new GenerateTaskIdResponse({}));
  }

  /**
   * 获取调用大模型的taskId
   * 
   * @param request - GenerateTaskIdRequest
   * @returns GenerateTaskIdResponse
   */
  async generateTaskId(request: GenerateTaskIdRequest): Promise<GenerateTaskIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GenerateTaskIdHeaders({ });
    return await this.generateTaskIdWithOptions(request, headers, runtime);
  }

  /**
   * 获取绑定孩子信息
   * 
   * @param request - GetBindChildInfoRequest
   * @param headers - GetBindChildInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetBindChildInfoResponse
   */
  async getBindChildInfoWithOptions(request: GetBindChildInfoRequest, headers: GetBindChildInfoHeaders, runtime: $Util.RuntimeOptions): Promise<GetBindChildInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.schoolCorpId)) {
      query["schoolCorpId"] = request.schoolCorpId;
    }

    if (!Util.isUnset(request.studentUserId)) {
      query["studentUserId"] = request.studentUserId;
    }

    if (!Util.isUnset(request.unionId)) {
      query["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetBindChildInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/families/childs/infos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetBindChildInfoResponse>(await this.execute(params, req, runtime), new GetBindChildInfoResponse({}));
  }

  /**
   * 获取绑定孩子信息
   * 
   * @param request - GetBindChildInfoRequest
   * @returns GetBindChildInfoResponse
   */
  async getBindChildInfo(request: GetBindChildInfoRequest): Promise<GetBindChildInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetBindChildInfoHeaders({ });
    return await this.getBindChildInfoWithOptions(request, headers, runtime);
  }

  /**
   * 查询用户的孩子列表
   * 
   * @param headers - GetChildrenHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetChildrenResponse
   */
  async getChildrenWithOptions(headers: GetChildrenHeaders, runtime: $Util.RuntimeOptions): Promise<GetChildrenResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "GetChildren",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/children/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetChildrenResponse>(await this.execute(params, req, runtime), new GetChildrenResponse({}));
  }

  /**
   * 查询用户的孩子列表
   * @returns GetChildrenResponse
   */
  async getChildren(): Promise<GetChildrenResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetChildrenHeaders({ });
    return await this.getChildrenWithOptions(headers, runtime);
  }

  /**
   * 高校校友会获取当前部门的所有子部门
   * 
   * @param request - GetCollegeAlumniDeptsRequest
   * @param headers - GetCollegeAlumniDeptsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetCollegeAlumniDeptsResponse
   */
  async getCollegeAlumniDeptsWithOptions(request: GetCollegeAlumniDeptsRequest, headers: GetCollegeAlumniDeptsHeaders, runtime: $Util.RuntimeOptions): Promise<GetCollegeAlumniDeptsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      query["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetCollegeAlumniDepts",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/subDepts`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetCollegeAlumniDeptsResponse>(await this.execute(params, req, runtime), new GetCollegeAlumniDeptsResponse({}));
  }

  /**
   * 高校校友会获取当前部门的所有子部门
   * 
   * @param request - GetCollegeAlumniDeptsRequest
   * @returns GetCollegeAlumniDeptsResponse
   */
  async getCollegeAlumniDepts(request: GetCollegeAlumniDeptsRequest): Promise<GetCollegeAlumniDeptsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetCollegeAlumniDeptsHeaders({ });
    return await this.getCollegeAlumniDeptsWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会查询校友信息
   * 
   * @param request - GetCollegeAlumniUserInfoRequest
   * @param headers - GetCollegeAlumniUserInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetCollegeAlumniUserInfoResponse
   */
  async getCollegeAlumniUserInfoWithOptions(request: GetCollegeAlumniUserInfoRequest, headers: GetCollegeAlumniUserInfoHeaders, runtime: $Util.RuntimeOptions): Promise<GetCollegeAlumniUserInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetCollegeAlumniUserInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/userInfos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetCollegeAlumniUserInfoResponse>(await this.execute(params, req, runtime), new GetCollegeAlumniUserInfoResponse({}));
  }

  /**
   * 高校校友会查询校友信息
   * 
   * @param request - GetCollegeAlumniUserInfoRequest
   * @returns GetCollegeAlumniUserInfoResponse
   */
  async getCollegeAlumniUserInfo(request: GetCollegeAlumniUserInfoRequest): Promise<GetCollegeAlumniUserInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetCollegeAlumniUserInfoHeaders({ });
    return await this.getCollegeAlumniUserInfoWithOptions(request, headers, runtime);
  }

  /**
   * 获取高校通讯录组织单元详情
   * 
   * @param request - GetCollegeContactDeptDetailRequest
   * @param headers - GetCollegeContactDeptDetailHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetCollegeContactDeptDetailResponse
   */
  async getCollegeContactDeptDetailWithOptions(request: GetCollegeContactDeptDetailRequest, headers: GetCollegeContactDeptDetailHeaders, runtime: $Util.RuntimeOptions): Promise<GetCollegeContactDeptDetailResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      query["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetCollegeContactDeptDetail",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetCollegeContactDeptDetailResponse>(await this.execute(params, req, runtime), new GetCollegeContactDeptDetailResponse({}));
  }

  /**
   * 获取高校通讯录组织单元详情
   * 
   * @param request - GetCollegeContactDeptDetailRequest
   * @returns GetCollegeContactDeptDetailResponse
   */
  async getCollegeContactDeptDetail(request: GetCollegeContactDeptDetailRequest): Promise<GetCollegeContactDeptDetailResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetCollegeContactDeptDetailHeaders({ });
    return await this.getCollegeContactDeptDetailWithOptions(request, headers, runtime);
  }

  /**
   * 获取行政组织架构信息
   * 
   * @param request - GetCollegeContactStandardStruDeptDetailRequest
   * @param headers - GetCollegeContactStandardStruDeptDetailHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetCollegeContactStandardStruDeptDetailResponse
   */
  async getCollegeContactStandardStruDeptDetailWithOptions(request: GetCollegeContactStandardStruDeptDetailRequest, headers: GetCollegeContactStandardStruDeptDetailHeaders, runtime: $Util.RuntimeOptions): Promise<GetCollegeContactStandardStruDeptDetailResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetCollegeContactStandardStruDeptDetail",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/standards`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetCollegeContactStandardStruDeptDetailResponse>(await this.execute(params, req, runtime), new GetCollegeContactStandardStruDeptDetailResponse({}));
  }

  /**
   * 获取行政组织架构信息
   * 
   * @param request - GetCollegeContactStandardStruDeptDetailRequest
   * @returns GetCollegeContactStandardStruDeptDetailResponse
   */
  async getCollegeContactStandardStruDeptDetail(request: GetCollegeContactStandardStruDeptDetailRequest): Promise<GetCollegeContactStandardStruDeptDetailResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetCollegeContactStandardStruDeptDetailHeaders({ });
    return await this.getCollegeContactStandardStruDeptDetailWithOptions(request, headers, runtime);
  }

  /**
   * 获取默认孩子信息
   * 
   * @param headers - GetDefaultChildHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetDefaultChildResponse
   */
  async getDefaultChildWithOptions(headers: GetDefaultChildHeaders, runtime: $Util.RuntimeOptions): Promise<GetDefaultChildResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "GetDefaultChild",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/defaultChildren`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<GetDefaultChildResponse>(await this.execute(params, req, runtime), new GetDefaultChildResponse({}));
  }

  /**
   * 获取默认孩子信息
   * @returns GetDefaultChildResponse
   */
  async getDefaultChild(): Promise<GetDefaultChildResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetDefaultChildHeaders({ });
    return await this.getDefaultChildWithOptions(headers, runtime);
  }

  /**
   * 阿里云盘教师节活动获取用户身份
   * 
   * @param request - GetEduUserIdentityRequest
   * @param headers - GetEduUserIdentityHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetEduUserIdentityResponse
   */
  async getEduUserIdentityWithOptions(request: GetEduUserIdentityRequest, headers: GetEduUserIdentityHeaders, runtime: $Util.RuntimeOptions): Promise<GetEduUserIdentityResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.unionId)) {
      query["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetEduUserIdentity",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/apollos/activities/userIdentities`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetEduUserIdentityResponse>(await this.execute(params, req, runtime), new GetEduUserIdentityResponse({}));
  }

  /**
   * 阿里云盘教师节活动获取用户身份
   * 
   * @param request - GetEduUserIdentityRequest
   * @returns GetEduUserIdentityResponse
   */
  async getEduUserIdentity(request: GetEduUserIdentityRequest): Promise<GetEduUserIdentityResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetEduUserIdentityHeaders({ });
    return await this.getEduUserIdentityWithOptions(request, headers, runtime);
  }

  /**
   * 获取文件下载信息
   * 
   * @param request - GetFileDownloadInfoRequest
   * @param headers - GetFileDownloadInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetFileDownloadInfoResponse
   */
  async getFileDownloadInfoWithOptions(request: GetFileDownloadInfoRequest, headers: GetFileDownloadInfoHeaders, runtime: $Util.RuntimeOptions): Promise<GetFileDownloadInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.fileIdList)) {
      body["fileIdList"] = request.fileIdList;
    }

    if (!Util.isUnset(request.spaceId)) {
      body["spaceId"] = request.spaceId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "GetFileDownloadInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/files/downloadInfos/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetFileDownloadInfoResponse>(await this.execute(params, req, runtime), new GetFileDownloadInfoResponse({}));
  }

  /**
   * 获取文件下载信息
   * 
   * @param request - GetFileDownloadInfoRequest
   * @returns GetFileDownloadInfoResponse
   */
  async getFileDownloadInfo(request: GetFileDownloadInfoRequest): Promise<GetFileDownloadInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetFileDownloadInfoHeaders({ });
    return await this.getFileDownloadInfoWithOptions(request, headers, runtime);
  }

  /**
   * 查询文件和图片ID信息
   * 
   * @param request - GetFileDownloadInfoByPackageIdRequest
   * @param headers - GetFileDownloadInfoByPackageIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetFileDownloadInfoByPackageIdResponse
   */
  async getFileDownloadInfoByPackageIdWithOptions(request: GetFileDownloadInfoByPackageIdRequest, headers: GetFileDownloadInfoByPackageIdHeaders, runtime: $Util.RuntimeOptions): Promise<GetFileDownloadInfoByPackageIdResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.packageId)) {
      body["packageId"] = request.packageId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "GetFileDownloadInfoByPackageId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/fileAndImages/ids/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetFileDownloadInfoByPackageIdResponse>(await this.execute(params, req, runtime), new GetFileDownloadInfoByPackageIdResponse({}));
  }

  /**
   * 查询文件和图片ID信息
   * 
   * @param request - GetFileDownloadInfoByPackageIdRequest
   * @returns GetFileDownloadInfoByPackageIdResponse
   */
  async getFileDownloadInfoByPackageId(request: GetFileDownloadInfoByPackageIdRequest): Promise<GetFileDownloadInfoByPackageIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetFileDownloadInfoByPackageIdHeaders({ });
    return await this.getFileDownloadInfoByPackageIdWithOptions(request, headers, runtime);
  }

  /**
   * 获取图片下载信息
   * 
   * @param request - GetImageTempDownloadUrlRequest
   * @param headers - GetImageTempDownloadUrlHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetImageTempDownloadUrlResponse
   */
  async getImageTempDownloadUrlWithOptions(request: GetImageTempDownloadUrlRequest, headers: GetImageTempDownloadUrlHeaders, runtime: $Util.RuntimeOptions): Promise<GetImageTempDownloadUrlResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.mediaId)) {
      body["mediaId"] = request.mediaId;
    }

    if (!Util.isUnset(request.sourceType)) {
      body["sourceType"] = request.sourceType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "GetImageTempDownloadUrl",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/images/tempDownloadUrls/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetImageTempDownloadUrlResponse>(await this.execute(params, req, runtime), new GetImageTempDownloadUrlResponse({}));
  }

  /**
   * 获取图片下载信息
   * 
   * @param request - GetImageTempDownloadUrlRequest
   * @returns GetImageTempDownloadUrlResponse
   */
  async getImageTempDownloadUrl(request: GetImageTempDownloadUrlRequest): Promise<GetImageTempDownloadUrlResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetImageTempDownloadUrlHeaders({ });
    return await this.getImageTempDownloadUrlWithOptions(request, headers, runtime);
  }

  /**
   * 获取公开课的课程详情
   * 
   * @param headers - GetOpenCourseDetailHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetOpenCourseDetailResponse
   */
  async getOpenCourseDetailWithOptions(courseId: string, headers: GetOpenCourseDetailHeaders, runtime: $Util.RuntimeOptions): Promise<GetOpenCourseDetailResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "GetOpenCourseDetail",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/openCourse/${courseId}`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetOpenCourseDetailResponse>(await this.execute(params, req, runtime), new GetOpenCourseDetailResponse({}));
  }

  /**
   * 获取公开课的课程详情
   * @returns GetOpenCourseDetailResponse
   */
  async getOpenCourseDetail(courseId: string): Promise<GetOpenCourseDetailResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetOpenCourseDetailHeaders({ });
    return await this.getOpenCourseDetailWithOptions(courseId, headers, runtime);
  }

  /**
   * 获取通过审核的课程列表
   * 
   * @param request - GetOpenCoursesRequest
   * @param headers - GetOpenCoursesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetOpenCoursesResponse
   */
  async getOpenCoursesWithOptions(request: GetOpenCoursesRequest, headers: GetOpenCoursesHeaders, runtime: $Util.RuntimeOptions): Promise<GetOpenCoursesResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetOpenCourses",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/openCourses`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetOpenCoursesResponse>(await this.execute(params, req, runtime), new GetOpenCoursesResponse({}));
  }

  /**
   * 获取通过审核的课程列表
   * 
   * @param request - GetOpenCoursesRequest
   * @returns GetOpenCoursesResponse
   */
  async getOpenCourses(request: GetOpenCoursesRequest): Promise<GetOpenCoursesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetOpenCoursesHeaders({ });
    return await this.getOpenCoursesWithOptions(request, headers, runtime);
  }

  /**
   * 查询教育积分流水记录
   * 
   * @param tmpReq - GetPointActionRecordRequest
   * @param headers - GetPointActionRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetPointActionRecordResponse
   */
  async getPointActionRecordWithOptions(tmpReq: GetPointActionRecordRequest, headers: GetPointActionRecordHeaders, runtime: $Util.RuntimeOptions): Promise<GetPointActionRecordResponse> {
    Util.validateModel(tmpReq);
    let request = new GetPointActionRecordShrinkRequest({ });
    OpenApiUtil.convert(tmpReq, request);
    if (!Util.isUnset(tmpReq.body)) {
      request.bodyShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.body, "body", "json");
    }

    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bodyShrink)) {
      query["body"] = request.bodyShrink;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetPointActionRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/points/actionRecords`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetPointActionRecordResponse>(await this.execute(params, req, runtime), new GetPointActionRecordResponse({}));
  }

  /**
   * 查询教育积分流水记录
   * 
   * @param request - GetPointActionRecordRequest
   * @returns GetPointActionRecordResponse
   */
  async getPointActionRecord(request: GetPointActionRecordRequest): Promise<GetPointActionRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetPointActionRecordHeaders({ });
    return await this.getPointActionRecordWithOptions(request, headers, runtime);
  }

  /**
   * 查询教育积分信息
   * 
   * @param request - GetPointInfoRequest
   * @param headers - GetPointInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetPointInfoResponse
   */
  async getPointInfoWithOptions(request: GetPointInfoRequest, headers: GetPointInfoHeaders, runtime: $Util.RuntimeOptions): Promise<GetPointInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.pointType)) {
      query["pointType"] = request.pointType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetPointInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/points/infos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetPointInfoResponse>(await this.execute(params, req, runtime), new GetPointInfoResponse({}));
  }

  /**
   * 查询教育积分信息
   * 
   * @param request - GetPointInfoRequest
   * @returns GetPointInfoResponse
   */
  async getPointInfo(request: GetPointInfoRequest): Promise<GetPointInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetPointInfoHeaders({ });
    return await this.getPointInfoWithOptions(request, headers, runtime);
  }

  /**
   * 查询专递课堂课程详情
   * 
   * @param request - GetRemoteClassCourseRequest
   * @param headers - GetRemoteClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetRemoteClassCourseResponse
   */
  async getRemoteClassCourseWithOptions(courseCode: string, request: GetRemoteClassCourseRequest, headers: GetRemoteClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<GetRemoteClassCourseResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetRemoteClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/courses/${courseCode}`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<GetRemoteClassCourseResponse>(await this.execute(params, req, runtime), new GetRemoteClassCourseResponse({}));
  }

  /**
   * 查询专递课堂课程详情
   * 
   * @param request - GetRemoteClassCourseRequest
   * @returns GetRemoteClassCourseResponse
   */
  async getRemoteClassCourse(courseCode: string, request: GetRemoteClassCourseRequest): Promise<GetRemoteClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetRemoteClassCourseHeaders({ });
    return await this.getRemoteClassCourseWithOptions(courseCode, request, headers, runtime);
  }

  /**
   * 获取共享角色成员
   * 
   * @param headers - GetShareRoleMembersHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetShareRoleMembersResponse
   */
  async getShareRoleMembersWithOptions(shareRoleCode: string, headers: GetShareRoleMembersHeaders, runtime: $Util.RuntimeOptions): Promise<GetShareRoleMembersResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "GetShareRoleMembers",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/shareRoles/${shareRoleCode}/members`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetShareRoleMembersResponse>(await this.execute(params, req, runtime), new GetShareRoleMembersResponse({}));
  }

  /**
   * 获取共享角色成员
   * @returns GetShareRoleMembersResponse
   */
  async getShareRoleMembers(shareRoleCode: string): Promise<GetShareRoleMembersResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetShareRoleMembersHeaders({ });
    return await this.getShareRoleMembersWithOptions(shareRoleCode, headers, runtime);
  }

  /**
   * 获取教育局的共享角色列表
   * 
   * @param headers - GetShareRolesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetShareRolesResponse
   */
  async getShareRolesWithOptions(headers: GetShareRolesHeaders, runtime: $Util.RuntimeOptions): Promise<GetShareRolesResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "GetShareRoles",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/shareRoles`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetShareRolesResponse>(await this.execute(params, req, runtime), new GetShareRolesResponse({}));
  }

  /**
   * 获取教育局的共享角色列表
   * @returns GetShareRolesResponse
   */
  async getShareRoles(): Promise<GetShareRolesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetShareRolesHeaders({ });
    return await this.getShareRolesWithOptions(headers, runtime);
  }

  /**
   * 查询入学任务列表
   * 
   * @param request - GetTaskListRequest
   * @param headers - GetTaskListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetTaskListResponse
   */
  async getTaskListWithOptions(request: GetTaskListRequest, headers: GetTaskListHeaders, runtime: $Util.RuntimeOptions): Promise<GetTaskListResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    if (!Util.isUnset(request.taskYear)) {
      query["taskYear"] = request.taskYear;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetTaskList",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/newGrades/tasks/lists`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetTaskListResponse>(await this.execute(params, req, runtime), new GetTaskListResponse({}));
  }

  /**
   * 查询入学任务列表
   * 
   * @param request - GetTaskListRequest
   * @returns GetTaskListResponse
   */
  async getTaskList(request: GetTaskListRequest): Promise<GetTaskListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetTaskListHeaders({ });
    return await this.getTaskListWithOptions(request, headers, runtime);
  }

  /**
   * 获取入学任务下的学生列表
   * 
   * @param request - GetTaskStudentListRequest
   * @param headers - GetTaskStudentListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns GetTaskStudentListResponse
   */
  async getTaskStudentListWithOptions(request: GetTaskStudentListRequest, headers: GetTaskStudentListHeaders, runtime: $Util.RuntimeOptions): Promise<GetTaskStudentListResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    if (!Util.isUnset(request.taskId)) {
      query["taskId"] = request.taskId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "GetTaskStudentList",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/newGrades/tasks/students/lists`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<GetTaskStudentListResponse>(await this.execute(params, req, runtime), new GetTaskStudentListResponse({}));
  }

  /**
   * 获取入学任务下的学生列表
   * 
   * @param request - GetTaskStudentListRequest
   * @returns GetTaskStudentListResponse
   */
  async getTaskStudentList(request: GetTaskStudentListRequest): Promise<GetTaskStudentListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new GetTaskStudentListHeaders({ });
    return await this.getTaskStudentListWithOptions(request, headers, runtime);
  }

  /**
   * 初始化班级课程表
   * 
   * @param request - InitCoursesOfClassRequest
   * @param headers - InitCoursesOfClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InitCoursesOfClassResponse
   */
  async initCoursesOfClassWithOptions(classId: string, request: InitCoursesOfClassRequest, headers: InitCoursesOfClassHeaders, runtime: $Util.RuntimeOptions): Promise<InitCoursesOfClassResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courses)) {
      body["courses"] = request.courses;
    }

    if (!Util.isUnset(request.sectionConfig)) {
      body["sectionConfig"] = request.sectionConfig;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InitCoursesOfClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/${classId}/courses/init`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<InitCoursesOfClassResponse>(await this.execute(params, req, runtime), new InitCoursesOfClassResponse({}));
  }

  /**
   * 初始化班级课程表
   * 
   * @param request - InitCoursesOfClassRequest
   * @returns InitCoursesOfClassResponse
   */
  async initCoursesOfClass(classId: string, request: InitCoursesOfClassRequest): Promise<InitCoursesOfClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InitCoursesOfClassHeaders({ });
    return await this.initCoursesOfClassWithOptions(classId, request, headers, runtime);
  }

  /**
   * 设备启动注册
   * 
   * @param request - InitDeviceRequest
   * @param headers - InitDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InitDeviceResponse
   */
  async initDeviceWithOptions(request: InitDeviceRequest, headers: InitDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<InitDeviceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.encryptPubKey)) {
      body["encryptPubKey"] = request.encryptPubKey;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.version)) {
      body["version"] = request.version;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InitDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/devices/init`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InitDeviceResponse>(await this.execute(params, req, runtime), new InitDeviceResponse({}));
  }

  /**
   * 设备启动注册
   * 
   * @param request - InitDeviceRequest
   * @returns InitDeviceResponse
   */
  async initDevice(request: InitDeviceRequest): Promise<InitDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InitDeviceHeaders({ });
    return await this.initDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 视讯paas机具初始化
   * 
   * @param request - InitVPaasDeviceRequest
   * @param headers - InitVPaasDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InitVPaasDeviceResponse
   */
  async initVPaasDeviceWithOptions(request: InitVPaasDeviceRequest, headers: InitVPaasDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<InitVPaasDeviceResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InitVPaasDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices/init`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InitVPaasDeviceResponse>(await this.execute(params, req, runtime), new InitVPaasDeviceResponse({}));
  }

  /**
   * 视讯paas机具初始化
   * 
   * @param request - InitVPaasDeviceRequest
   * @returns InitVPaasDeviceResponse
   */
  async initVPaasDevice(request: InitVPaasDeviceRequest): Promise<InitVPaasDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InitVPaasDeviceHeaders({ });
    return await this.initVPaasDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 插入学校维度节次设置
   * 
   * @param request - InsertSectionConfigRequest
   * @param headers - InsertSectionConfigHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InsertSectionConfigResponse
   */
  async insertSectionConfigWithOptions(request: InsertSectionConfigRequest, headers: InsertSectionConfigHeaders, runtime: $Util.RuntimeOptions): Promise<InsertSectionConfigResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.end)) {
      body["end"] = request.end;
    }

    if (!Util.isUnset(request.scheduleName)) {
      body["scheduleName"] = request.scheduleName;
    }

    if (!Util.isUnset(request.sectionModels)) {
      body["sectionModels"] = request.sectionModels;
    }

    if (!Util.isUnset(request.start)) {
      body["start"] = request.start;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InsertSectionConfig",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schedules/configs`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<InsertSectionConfigResponse>(await this.execute(params, req, runtime), new InsertSectionConfigResponse({}));
  }

  /**
   * 插入学校维度节次设置
   * 
   * @param request - InsertSectionConfigRequest
   * @returns InsertSectionConfigResponse
   */
  async insertSectionConfig(request: InsertSectionConfigRequest): Promise<InsertSectionConfigResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InsertSectionConfigHeaders({ });
    return await this.insertSectionConfigWithOptions(request, headers, runtime);
  }

  /**
   * 失效课程
   * 
   * @param request - InvalidCourseRequest
   * @param headers - InvalidCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InvalidCourseResponse
   */
  async invalidCourseWithOptions(request: InvalidCourseRequest, headers: InvalidCourseHeaders, runtime: $Util.RuntimeOptions): Promise<InvalidCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InvalidCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/courses/invalid`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InvalidCourseResponse>(await this.execute(params, req, runtime), new InvalidCourseResponse({}));
  }

  /**
   * 失效课程
   * 
   * @param request - InvalidCourseRequest
   * @returns InvalidCourseResponse
   */
  async invalidCourse(request: InvalidCourseRequest): Promise<InvalidCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InvalidCourseHeaders({ });
    return await this.invalidCourseWithOptions(request, headers, runtime);
  }

  /**
   * 失效教育套件
   * 
   * @param request - InvalidKitRequest
   * @param headers - InvalidKitHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InvalidKitResponse
   */
  async invalidKitWithOptions(request: InvalidKitRequest, headers: InvalidKitHeaders, runtime: $Util.RuntimeOptions): Promise<InvalidKitResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvProductScene)) {
      body["isvProductScene"] = request.isvProductScene;
    }

    if (!Util.isUnset(request.openUserId)) {
      body["openUserId"] = request.openUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InvalidKit",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/records/invalid`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InvalidKitResponse>(await this.execute(params, req, runtime), new InvalidKitResponse({}));
  }

  /**
   * 失效教育套件
   * 
   * @param request - InvalidKitRequest
   * @returns InvalidKitResponse
   */
  async invalidKit(request: InvalidKitRequest): Promise<InvalidKitResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InvalidKitHeaders({ });
    return await this.invalidKitWithOptions(request, headers, runtime);
  }

  /**
   * 删除学生班级
   * 
   * @param request - InvalidStudentClassRequest
   * @param headers - InvalidStudentClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InvalidStudentClassResponse
   */
  async invalidStudentClassWithOptions(request: InvalidStudentClassRequest, headers: InvalidStudentClassHeaders, runtime: $Util.RuntimeOptions): Promise<InvalidStudentClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.studentUserIds)) {
      body["studentUserIds"] = request.studentUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InvalidStudentClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/students/classes/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InvalidStudentClassResponse>(await this.execute(params, req, runtime), new InvalidStudentClassResponse({}));
  }

  /**
   * 删除学生班级
   * 
   * @param request - InvalidStudentClassRequest
   * @returns InvalidStudentClassResponse
   */
  async invalidStudentClass(request: InvalidStudentClassRequest): Promise<InvalidStudentClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InvalidStudentClassHeaders({ });
    return await this.invalidStudentClassWithOptions(request, headers, runtime);
  }

  /**
   * 删除老师课程
   * 
   * @param request - InvalidTeacherCourseRequest
   * @param headers - InvalidTeacherCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns InvalidTeacherCourseResponse
   */
  async invalidTeacherCourseWithOptions(request: InvalidTeacherCourseRequest, headers: InvalidTeacherCourseHeaders, runtime: $Util.RuntimeOptions): Promise<InvalidTeacherCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.needDeleteCourseIdList)) {
      body["needDeleteCourseIdList"] = request.needDeleteCourseIdList;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "InvalidTeacherCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/teachers/courses/remove`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<InvalidTeacherCourseResponse>(await this.execute(params, req, runtime), new InvalidTeacherCourseResponse({}));
  }

  /**
   * 删除老师课程
   * 
   * @param request - InvalidTeacherCourseRequest
   * @returns InvalidTeacherCourseResponse
   */
  async invalidTeacherCourse(request: InvalidTeacherCourseRequest): Promise<InvalidTeacherCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new InvalidTeacherCourseHeaders({ });
    return await this.invalidTeacherCourseWithOptions(request, headers, runtime);
  }

  /**
   * 查看用户是否是认证校的语文老师
   * 
   * @param request - IsYuwenCertifiedTeacherRequest
   * @param headers - IsYuwenCertifiedTeacherHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns IsYuwenCertifiedTeacherResponse
   */
  async isYuwenCertifiedTeacherWithOptions(request: IsYuwenCertifiedTeacherRequest, headers: IsYuwenCertifiedTeacherHeaders, runtime: $Util.RuntimeOptions): Promise<IsYuwenCertifiedTeacherResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "IsYuwenCertifiedTeacher",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/paas/certifiedTeachers/chineseTeachers/check`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<IsYuwenCertifiedTeacherResponse>(await this.execute(params, req, runtime), new IsYuwenCertifiedTeacherResponse({}));
  }

  /**
   * 查看用户是否是认证校的语文老师
   * 
   * @param request - IsYuwenCertifiedTeacherRequest
   * @returns IsYuwenCertifiedTeacherResponse
   */
  async isYuwenCertifiedTeacher(request: IsYuwenCertifiedTeacherRequest): Promise<IsYuwenCertifiedTeacherResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new IsYuwenCertifiedTeacherHeaders({ });
    return await this.isYuwenCertifiedTeacherWithOptions(request, headers, runtime);
  }

  /**
   * 第三方数据写入
   * 
   * @param request - IsvDataWriteRequest
   * @param headers - IsvDataWriteHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns IsvDataWriteResponse
   */
  async isvDataWriteWithOptions(request: IsvDataWriteRequest, headers: IsvDataWriteHeaders, runtime: $Util.RuntimeOptions): Promise<IsvDataWriteResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.objectCode)) {
      body["objectCode"] = request.objectCode;
    }

    if (!Util.isUnset(request.rowValueList)) {
      body["rowValueList"] = request.rowValueList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "IsvDataWrite",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/datas/write`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<IsvDataWriteResponse>(await this.execute(params, req, runtime), new IsvDataWriteResponse({}));
  }

  /**
   * 第三方数据写入
   * 
   * @param request - IsvDataWriteRequest
   * @returns IsvDataWriteResponse
   */
  async isvDataWrite(request: IsvDataWriteRequest): Promise<IsvDataWriteResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new IsvDataWriteHeaders({ });
    return await this.isvDataWriteWithOptions(request, headers, runtime);
  }

  /**
   * Isv查询元数据信息
   * 
   * @param request - IsvMetadataQueryRequest
   * @param headers - IsvMetadataQueryHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns IsvMetadataQueryResponse
   */
  async isvMetadataQueryWithOptions(request: IsvMetadataQueryRequest, headers: IsvMetadataQueryHeaders, runtime: $Util.RuntimeOptions): Promise<IsvMetadataQueryResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.objectCode)) {
      query["objectCode"] = request.objectCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "IsvMetadataQuery",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/datas/metadatas`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<IsvMetadataQueryResponse>(await this.execute(params, req, runtime), new IsvMetadataQueryResponse({}));
  }

  /**
   * Isv查询元数据信息
   * 
   * @param request - IsvMetadataQueryRequest
   * @returns IsvMetadataQueryResponse
   */
  async isvMetadataQuery(request: IsvMetadataQueryRequest): Promise<IsvMetadataQueryResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new IsvMetadataQueryHeaders({ });
    return await this.isvMetadataQueryWithOptions(request, headers, runtime);
  }

  /**
   * 获取高校组织单元类型
   * 
   * @param request - ListCollegeContactDeptTypeConfigRequest
   * @param headers - ListCollegeContactDeptTypeConfigHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ListCollegeContactDeptTypeConfigResponse
   */
  async listCollegeContactDeptTypeConfigWithOptions(request: ListCollegeContactDeptTypeConfigRequest, headers: ListCollegeContactDeptTypeConfigHeaders, runtime: $Util.RuntimeOptions): Promise<ListCollegeContactDeptTypeConfigResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "ListCollegeContactDeptTypeConfig",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/configs/deptTypes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ListCollegeContactDeptTypeConfigResponse>(await this.execute(params, req, runtime), new ListCollegeContactDeptTypeConfigResponse({}));
  }

  /**
   * 获取高校组织单元类型
   * 
   * @param request - ListCollegeContactDeptTypeConfigRequest
   * @returns ListCollegeContactDeptTypeConfigResponse
   */
  async listCollegeContactDeptTypeConfig(request: ListCollegeContactDeptTypeConfigRequest): Promise<ListCollegeContactDeptTypeConfigResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ListCollegeContactDeptTypeConfigHeaders({ });
    return await this.listCollegeContactDeptTypeConfigWithOptions(request, headers, runtime);
  }

  /**
   * 获取高校通讯录场景架构列表
   * 
   * @param request - ListCollegeContactSceneStrusRequest
   * @param headers - ListCollegeContactSceneStrusHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ListCollegeContactSceneStrusResponse
   */
  async listCollegeContactSceneStrusWithOptions(request: ListCollegeContactSceneStrusRequest, headers: ListCollegeContactSceneStrusHeaders, runtime: $Util.RuntimeOptions): Promise<ListCollegeContactSceneStrusResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "ListCollegeContactSceneStrus",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ListCollegeContactSceneStrusResponse>(await this.execute(params, req, runtime), new ListCollegeContactSceneStrusResponse({}));
  }

  /**
   * 获取高校通讯录场景架构列表
   * 
   * @param request - ListCollegeContactSceneStrusRequest
   * @returns ListCollegeContactSceneStrusResponse
   */
  async listCollegeContactSceneStrus(request: ListCollegeContactSceneStrusRequest): Promise<ListCollegeContactSceneStrusResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ListCollegeContactSceneStrusHeaders({ });
    return await this.listCollegeContactSceneStrusWithOptions(request, headers, runtime);
  }

  /**
   * 获取高校通讯录子组织单元列表
   * 
   * @param request - ListCollegeContactSubDeptsRequest
   * @param headers - ListCollegeContactSubDeptsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ListCollegeContactSubDeptsResponse
   */
  async listCollegeContactSubDeptsWithOptions(request: ListCollegeContactSubDeptsRequest, headers: ListCollegeContactSubDeptsHeaders, runtime: $Util.RuntimeOptions): Promise<ListCollegeContactSubDeptsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      query["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "ListCollegeContactSubDepts",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/subDepts`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ListCollegeContactSubDeptsResponse>(await this.execute(params, req, runtime), new ListCollegeContactSubDeptsResponse({}));
  }

  /**
   * 获取高校通讯录子组织单元列表
   * 
   * @param request - ListCollegeContactSubDeptsRequest
   * @returns ListCollegeContactSubDeptsResponse
   */
  async listCollegeContactSubDepts(request: ListCollegeContactSubDeptsRequest): Promise<ListCollegeContactSubDeptsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ListCollegeContactSubDeptsHeaders({ });
    return await this.listCollegeContactSubDeptsWithOptions(request, headers, runtime);
  }

  /**
   * 查询订单
   * 
   * @param request - ListOrderRequest
   * @param headers - ListOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ListOrderResponse
   */
  async listOrderWithOptions(request: ListOrderRequest, headers: ListOrderHeaders, runtime: $Util.RuntimeOptions): Promise<ListOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.createTimeEnd)) {
      body["createTimeEnd"] = request.createTimeEnd;
    }

    if (!Util.isUnset(request.createTimeStart)) {
      body["createTimeStart"] = request.createTimeStart;
    }

    if (!Util.isUnset(request.merchantId)) {
      body["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.pageNumber)) {
      body["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      body["pageSize"] = request.pageSize;
    }

    if (!Util.isUnset(request.scene)) {
      body["scene"] = request.scene;
    }

    if (!Util.isUnset(request.status)) {
      body["status"] = request.status;
    }

    if (!Util.isUnset(request.tradeNo)) {
      body["tradeNo"] = request.tradeNo;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ListOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ListOrderResponse>(await this.execute(params, req, runtime), new ListOrderResponse({}));
  }

  /**
   * 查询订单
   * 
   * @param request - ListOrderRequest
   * @returns ListOrderResponse
   */
  async listOrder(request: ListOrderRequest): Promise<ListOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ListOrderHeaders({ });
    return await this.listOrderWithOptions(request, headers, runtime);
  }

  /**
   * 学生调班，如果学生在本班有对应的家长，则家长也会跟同学生进行调整班级。
   * 
   * @param request - MoveStudentRequest
   * @param headers - MoveStudentHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns MoveStudentResponse
   */
  async moveStudentWithOptions(request: MoveStudentRequest, headers: MoveStudentHeaders, runtime: $Util.RuntimeOptions): Promise<MoveStudentResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.originClassId)) {
      body["originClassId"] = request.originClassId;
    }

    if (!Util.isUnset(request.targetClassId)) {
      body["targetClassId"] = request.targetClassId;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "MoveStudent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/students/move`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<MoveStudentResponse>(await this.execute(params, req, runtime), new MoveStudentResponse({}));
  }

  /**
   * 学生调班，如果学生在本班有对应的家长，则家长也会跟同学生进行调整班级。
   * 
   * @param request - MoveStudentRequest
   * @returns MoveStudentResponse
   */
  async moveStudent(request: MoveStudentRequest): Promise<MoveStudentResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new MoveStudentHeaders({ });
    return await this.moveStudentWithOptions(request, headers, runtime);
  }

  /**
   * 开通教育套件
   * 
   * @param request - OpenKitRequest
   * @param headers - OpenKitHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns OpenKitResponse
   */
  async openKitWithOptions(request: OpenKitRequest, headers: OpenKitHeaders, runtime: $Util.RuntimeOptions): Promise<OpenKitResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attributes)) {
      body["attributes"] = request.attributes;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvProductScene)) {
      body["isvProductScene"] = request.isvProductScene;
    }

    if (!Util.isUnset(request.openEndTime)) {
      body["openEndTime"] = request.openEndTime;
    }

    if (!Util.isUnset(request.openStartTime)) {
      body["openStartTime"] = request.openStartTime;
    }

    if (!Util.isUnset(request.openUserId)) {
      body["openUserId"] = request.openUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "OpenKit",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/records/open`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<OpenKitResponse>(await this.execute(params, req, runtime), new OpenKitResponse({}));
  }

  /**
   * 开通教育套件
   * 
   * @param request - OpenKitRequest
   * @returns OpenKitResponse
   */
  async openKit(request: OpenKitRequest): Promise<OpenKitResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new OpenKitHeaders({ });
    return await this.openKitWithOptions(request, headers, runtime);
  }

  /**
   * 查询订单信息
   * 
   * @param request - OrderInfoRequest
   * @param headers - OrderInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns OrderInfoResponse
   */
  async orderInfoWithOptions(request: OrderInfoRequest, headers: OrderInfoHeaders, runtime: $Util.RuntimeOptions): Promise<OrderInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.orderNo)) {
      query["orderNo"] = request.orderNo;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "OrderInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/dingLifes/orders`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<OrderInfoResponse>(await this.execute(params, req, runtime), new OrderInfoResponse({}));
  }

  /**
   * 查询订单信息
   * 
   * @param request - OrderInfoRequest
   * @returns OrderInfoResponse
   */
  async orderInfo(request: OrderInfoRequest): Promise<OrderInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new OrderInfoHeaders({ });
    return await this.orderInfoWithOptions(request, headers, runtime);
  }

  /**
   * 批量查询班级课表
   * 
   * @param request - PageQueryClassCourseRequest
   * @param headers - PageQueryClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PageQueryClassCourseResponse
   */
  async pageQueryClassCourseWithOptions(request: PageQueryClassCourseRequest, headers: PageQueryClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<PageQueryClassCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.endCourseDate)) {
      body["endCourseDate"] = request.endCourseDate;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.pageNumber)) {
      body["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      body["pageSize"] = request.pageSize;
    }

    if (!Util.isUnset(request.startCourseDate)) {
      body["startCourseDate"] = request.startCourseDate;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PageQueryClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/classes/courses/batchQuery`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PageQueryClassCourseResponse>(await this.execute(params, req, runtime), new PageQueryClassCourseResponse({}));
  }

  /**
   * 批量查询班级课表
   * 
   * @param request - PageQueryClassCourseRequest
   * @returns PageQueryClassCourseResponse
   */
  async pageQueryClassCourse(request: PageQueryClassCourseRequest): Promise<PageQueryClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PageQueryClassCourseHeaders({ });
    return await this.pageQueryClassCourseWithOptions(request, headers, runtime);
  }

  /**
   * 分页查询设备列表
   * 
   * @param request - PageQueryDevicesRequest
   * @param headers - PageQueryDevicesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PageQueryDevicesResponse
   */
  async pageQueryDevicesWithOptions(request: PageQueryDevicesRequest, headers: PageQueryDevicesHeaders, runtime: $Util.RuntimeOptions): Promise<PageQueryDevicesResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.maxResults)) {
      query["maxResults"] = request.maxResults;
    }

    if (!Util.isUnset(request.nextToken)) {
      query["nextToken"] = request.nextToken;
    }

    if (!Util.isUnset(request.type)) {
      query["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "PageQueryDevices",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PageQueryDevicesResponse>(await this.execute(params, req, runtime), new PageQueryDevicesResponse({}));
  }

  /**
   * 分页查询设备列表
   * 
   * @param request - PageQueryDevicesRequest
   * @returns PageQueryDevicesResponse
   */
  async pageQueryDevices(request: PageQueryDevicesRequest): Promise<PageQueryDevicesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PageQueryDevicesHeaders({ });
    return await this.pageQueryDevicesWithOptions(request, headers, runtime);
  }

  /**
   * 批量查询套件开通记录
   * 
   * @param request - PageQueryKitOpenRecordRequest
   * @param headers - PageQueryKitOpenRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PageQueryKitOpenRecordResponse
   */
  async pageQueryKitOpenRecordWithOptions(request: PageQueryKitOpenRecordRequest, headers: PageQueryKitOpenRecordHeaders, runtime: $Util.RuntimeOptions): Promise<PageQueryKitOpenRecordResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvProductScene)) {
      body["isvProductScene"] = request.isvProductScene;
    }

    if (!Util.isUnset(request.pageNumber)) {
      body["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      body["pageSize"] = request.pageSize;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PageQueryKitOpenRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/records/batchQuery`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PageQueryKitOpenRecordResponse>(await this.execute(params, req, runtime), new PageQueryKitOpenRecordResponse({}));
  }

  /**
   * 批量查询套件开通记录
   * 
   * @param request - PageQueryKitOpenRecordRequest
   * @returns PageQueryKitOpenRecordResponse
   */
  async pageQueryKitOpenRecord(request: PageQueryKitOpenRecordRequest): Promise<PageQueryKitOpenRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PageQueryKitOpenRecordHeaders({ });
    return await this.pageQueryKitOpenRecordWithOptions(request, headers, runtime);
  }

  /**
   * 支付订单
   * 
   * @param request - PayOrderRequest
   * @param headers - PayOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PayOrderResponse
   */
  async payOrderWithOptions(request: PayOrderRequest, headers: PayOrderHeaders, runtime: $Util.RuntimeOptions): Promise<PayOrderResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    if (!Util.isUnset(request.version)) {
      body["version"] = request.version;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PayOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders/pay`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PayOrderResponse>(await this.execute(params, req, runtime), new PayOrderResponse({}));
  }

  /**
   * 支付订单
   * 
   * @param request - PayOrderRequest
   * @returns PayOrderResponse
   */
  async payOrder(request: PayOrderRequest): Promise<PayOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PayOrderHeaders({ });
    return await this.payOrderWithOptions(request, headers, runtime);
  }

  /**
   * 轮询课程状态，确认教师是否已同意开课
   * 
   * @param request - PollingConfirmStatusRequest
   * @param headers - PollingConfirmStatusHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PollingConfirmStatusResponse
   */
  async pollingConfirmStatusWithOptions(request: PollingConfirmStatusRequest, headers: PollingConfirmStatusHeaders, runtime: $Util.RuntimeOptions): Promise<PollingConfirmStatusResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseCode)) {
      query["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.ext)) {
      query["ext"] = request.ext;
    }

    if (!Util.isUnset(request.isvCode)) {
      query["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "PollingConfirmStatus",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courses/pollingConfirmStatus`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PollingConfirmStatusResponse>(await this.execute(params, req, runtime), new PollingConfirmStatusResponse({}));
  }

  /**
   * 轮询课程状态，确认教师是否已同意开课
   * 
   * @param request - PollingConfirmStatusRequest
   * @returns PollingConfirmStatusResponse
   */
  async pollingConfirmStatus(request: PollingConfirmStatusRequest): Promise<PollingConfirmStatusResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PollingConfirmStatusHeaders({ });
    return await this.pollingConfirmStatusWithOptions(request, headers, runtime);
  }

  /**
   * 视讯paas机具预拨号
   * 
   * @param request - PreDialRequest
   * @param headers - PreDialHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PreDialResponse
   */
  async preDialWithOptions(request: PreDialRequest, headers: PreDialHeaders, runtime: $Util.RuntimeOptions): Promise<PreDialResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.callerUserId)) {
      body["callerUserId"] = request.callerUserId;
    }

    if (!Util.isUnset(request.receiverUserId)) {
      body["receiverUserId"] = request.receiverUserId;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PreDial",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/devices/preDial`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PreDialResponse>(await this.execute(params, req, runtime), new PreDialResponse({}));
  }

  /**
   * 视讯paas机具预拨号
   * 
   * @param request - PreDialRequest
   * @returns PreDialResponse
   */
  async preDial(request: PreDialRequest): Promise<PreDialResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PreDialHeaders({ });
    return await this.preDialWithOptions(request, headers, runtime);
  }

  /**
   * 发放教育积分
   * 
   * @param request - ProvidePointRequest
   * @param headers - ProvidePointHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ProvidePointResponse
   */
  async providePointWithOptions(request: ProvidePointRequest, headers: ProvidePointHeaders, runtime: $Util.RuntimeOptions): Promise<ProvidePointResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionCode)) {
      body["actionCode"] = request.actionCode;
    }

    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.pointType)) {
      body["pointType"] = request.pointType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ProvidePoint",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/points/provide`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ProvidePointResponse>(await this.execute(params, req, runtime), new ProvidePointResponse({}));
  }

  /**
   * 发放教育积分
   * 
   * @param request - ProvidePointRequest
   * @returns ProvidePointResponse
   */
  async providePoint(request: ProvidePointRequest): Promise<ProvidePointResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ProvidePointHeaders({ });
    return await this.providePointWithOptions(request, headers, runtime);
  }

  /**
   * 发布成绩单
   * 
   * @param request - PublishSchoolReportRequest
   * @param headers - PublishSchoolReportHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PublishSchoolReportResponse
   */
  async publishSchoolReportWithOptions(request: PublishSchoolReportRequest, headers: PublishSchoolReportHeaders, runtime: $Util.RuntimeOptions): Promise<PublishSchoolReportResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.classDetailItems)) {
      body["classDetailItems"] = request.classDetailItems;
    }

    if (!Util.isUnset(request.examClass)) {
      body["examClass"] = request.examClass;
    }

    if (!Util.isUnset(request.examTitle)) {
      body["examTitle"] = request.examTitle;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.publishScope)) {
      body["publishScope"] = request.publishScope;
    }

    if (!Util.isUnset(request.scoreType)) {
      body["scoreType"] = request.scoreType;
    }

    if (!Util.isUnset(request.share)) {
      body["share"] = request.share;
    }

    if (!Util.isUnset(request.showRank)) {
      body["showRank"] = request.showRank;
    }

    if (!Util.isUnset(request.showStatisticsScore)) {
      body["showStatisticsScore"] = request.showStatisticsScore;
    }

    if (!Util.isUnset(request.subScoreType)) {
      body["subScoreType"] = request.subScoreType;
    }

    if (!Util.isUnset(request.subjectList)) {
      body["subjectList"] = request.subjectList;
    }

    if (!Util.isUnset(request.subjects)) {
      body["subjects"] = request.subjects;
    }

    if (!Util.isUnset(request.teacherId)) {
      body["teacherId"] = request.teacherId;
    }

    if (!Util.isUnset(request.teacherName)) {
      body["teacherName"] = request.teacherName;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PublishSchoolReport",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/reports/publish`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PublishSchoolReportResponse>(await this.execute(params, req, runtime), new PublishSchoolReportResponse({}));
  }

  /**
   * 发布成绩单
   * 
   * @param request - PublishSchoolReportRequest
   * @returns PublishSchoolReportResponse
   */
  async publishSchoolReport(request: PublishSchoolReportRequest): Promise<PublishSchoolReportResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PublishSchoolReportHeaders({ });
    return await this.publishSchoolReportWithOptions(request, headers, runtime);
  }

  /**
   * 推送班级群卡片消息
   * 
   * @param request - PushClassGroupCardRequest
   * @param headers - PushClassGroupCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns PushClassGroupCardResponse
   */
  async pushClassGroupCardWithOptions(request: PushClassGroupCardRequest, headers: PushClassGroupCardHeaders, runtime: $Util.RuntimeOptions): Promise<PushClassGroupCardResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.groupTypeList)) {
      body["groupTypeList"] = request.groupTypeList;
    }

    if (!Util.isUnset(request.privateCardData)) {
      body["privateCardData"] = request.privateCardData;
    }

    if (!Util.isUnset(request.publicCardData)) {
      body["publicCardData"] = request.publicCardData;
    }

    if (!Util.isUnset(request.senderUserId)) {
      body["senderUserId"] = request.senderUserId;
    }

    if (!Util.isUnset(request.studentUserIds)) {
      body["studentUserIds"] = request.studentUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "PushClassGroupCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/groups/cards/messages/push`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<PushClassGroupCardResponse>(await this.execute(params, req, runtime), new PushClassGroupCardResponse({}));
  }

  /**
   * 推送班级群卡片消息
   * 
   * @param request - PushClassGroupCardRequest
   * @returns PushClassGroupCardResponse
   */
  async pushClassGroupCard(request: PushClassGroupCardRequest): Promise<PushClassGroupCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new PushClassGroupCardHeaders({ });
    return await this.pushClassGroupCardWithOptions(request, headers, runtime);
  }

  /**
   * 错题本-查询错题本
   * 
   * @param headers - QueryHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryResponse
   */
  async queryWithOptions(headers: QueryHeaders, runtime: $Util.RuntimeOptions): Promise<QueryResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "Query",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/wrongQuestions/codes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryResponse>(await this.execute(params, req, runtime), new QueryResponse({}));
  }

  /**
   * 错题本-查询错题本
   * @returns QueryResponse
   */
  async query(): Promise<QueryResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryHeaders({ });
    return await this.queryWithOptions(headers, runtime);
  }

  /**
   * 查询全量学科实例列表
   * 
   * @param tmpReq - QueryAllSubjectsFromClassScheduleRequest
   * @param headers - QueryAllSubjectsFromClassScheduleHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryAllSubjectsFromClassScheduleResponse
   */
  async queryAllSubjectsFromClassScheduleWithOptions(tmpReq: QueryAllSubjectsFromClassScheduleRequest, headers: QueryAllSubjectsFromClassScheduleHeaders, runtime: $Util.RuntimeOptions): Promise<QueryAllSubjectsFromClassScheduleResponse> {
    Util.validateModel(tmpReq);
    let request = new QueryAllSubjectsFromClassScheduleShrinkRequest({ });
    OpenApiUtil.convert(tmpReq, request);
    if (!Util.isUnset(tmpReq.classIds)) {
      request.classIdsShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.classIds, "classIds", "json");
    }

    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classIdsShrink)) {
      query["classIds"] = request.classIdsShrink;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.periodCode)) {
      query["periodCode"] = request.periodCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryAllSubjectsFromClassSchedule",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/subjects/instances`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryAllSubjectsFromClassScheduleResponse>(await this.execute(params, req, runtime), new QueryAllSubjectsFromClassScheduleResponse({}));
  }

  /**
   * 查询全量学科实例列表
   * 
   * @param request - QueryAllSubjectsFromClassScheduleRequest
   * @returns QueryAllSubjectsFromClassScheduleResponse
   */
  async queryAllSubjectsFromClassSchedule(request: QueryAllSubjectsFromClassScheduleRequest): Promise<QueryAllSubjectsFromClassScheduleResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryAllSubjectsFromClassScheduleHeaders({ });
    return await this.queryAllSubjectsFromClassScheduleWithOptions(request, headers, runtime);
  }

  /**
   * 查询课程表
   * 
   * @param request - QueryClassScheduleRequest
   * @param headers - QueryClassScheduleHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryClassScheduleResponse
   */
  async queryClassScheduleWithOptions(request: QueryClassScheduleRequest, headers: QueryClassScheduleHeaders, runtime: $Util.RuntimeOptions): Promise<QueryClassScheduleResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.endTime)) {
      query["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.startTime)) {
      query["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.subscriberType)) {
      query["subscriberType"] = request.subscriberType;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sectionIndexList)) {
      body["sectionIndexList"] = request.sectionIndexList;
    }

    if (!Util.isUnset(request.subscriberIds)) {
      body["subscriberIds"] = request.subscriberIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryClassSchedule",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/schedules/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryClassScheduleResponse>(await this.execute(params, req, runtime), new QueryClassScheduleResponse({}));
  }

  /**
   * 查询课程表
   * 
   * @param request - QueryClassScheduleRequest
   * @returns QueryClassScheduleResponse
   */
  async queryClassSchedule(request: QueryClassScheduleRequest): Promise<QueryClassScheduleResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryClassScheduleHeaders({ });
    return await this.queryClassScheduleWithOptions(request, headers, runtime);
  }

  /**
   * 按照学校和时间区间筛选课程
   * 
   * @param request - QueryClassScheduleByTimeSchoolRequest
   * @param headers - QueryClassScheduleByTimeSchoolHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryClassScheduleByTimeSchoolResponse
   */
  async queryClassScheduleByTimeSchoolWithOptions(request: QueryClassScheduleByTimeSchoolRequest, headers: QueryClassScheduleByTimeSchoolHeaders, runtime: $Util.RuntimeOptions): Promise<QueryClassScheduleByTimeSchoolResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.endTime)) {
      query["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.startTime)) {
      query["startTime"] = request.startTime;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryClassScheduleByTimeSchool",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/classes/courses `,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryClassScheduleByTimeSchoolResponse>(await this.execute(params, req, runtime), new QueryClassScheduleByTimeSchoolResponse({}));
  }

  /**
   * 按照学校和时间区间筛选课程
   * 
   * @param request - QueryClassScheduleByTimeSchoolRequest
   * @returns QueryClassScheduleByTimeSchoolResponse
   */
  async queryClassScheduleByTimeSchool(request: QueryClassScheduleByTimeSchoolRequest): Promise<QueryClassScheduleByTimeSchoolResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryClassScheduleByTimeSchoolHeaders({ });
    return await this.queryClassScheduleByTimeSchoolWithOptions(request, headers, runtime);
  }

  /**
   * 获取课程表设置
   * 
   * @param tmpReq - QueryClassScheduleConfigRequest
   * @param headers - QueryClassScheduleConfigHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryClassScheduleConfigResponse
   */
  async queryClassScheduleConfigWithOptions(tmpReq: QueryClassScheduleConfigRequest, headers: QueryClassScheduleConfigHeaders, runtime: $Util.RuntimeOptions): Promise<QueryClassScheduleConfigResponse> {
    Util.validateModel(tmpReq);
    let request = new QueryClassScheduleConfigShrinkRequest({ });
    OpenApiUtil.convert(tmpReq, request);
    if (!Util.isUnset(tmpReq.classIds)) {
      request.classIdsShrink = OpenApiUtil.arrayToStringWithSpecifiedStyle(tmpReq.classIds, "classIds", "json");
    }

    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classIdsShrink)) {
      query["classIds"] = request.classIdsShrink;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryClassScheduleConfig",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schedules/configs`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryClassScheduleConfigResponse>(await this.execute(params, req, runtime), new QueryClassScheduleConfigResponse({}));
  }

  /**
   * 获取课程表设置
   * 
   * @param request - QueryClassScheduleConfigRequest
   * @returns QueryClassScheduleConfigResponse
   */
  async queryClassScheduleConfig(request: QueryClassScheduleConfigRequest): Promise<QueryClassScheduleConfigResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryClassScheduleConfigHeaders({ });
    return await this.queryClassScheduleConfigWithOptions(request, headers, runtime);
  }

  /**
   * 获取用户详情(包含高校账号)
   * 
   * @param request - QueryCollegeContactUserDetailRequest
   * @param headers - QueryCollegeContactUserDetailHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryCollegeContactUserDetailResponse
   */
  async queryCollegeContactUserDetailWithOptions(request: QueryCollegeContactUserDetailRequest, headers: QueryCollegeContactUserDetailHeaders, runtime: $Util.RuntimeOptions): Promise<QueryCollegeContactUserDetailResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.jobNumber)) {
      query["jobNumber"] = request.jobNumber;
    }

    if (!Util.isUnset(request.language)) {
      query["language"] = request.language;
    }

    if (!Util.isUnset(request.userid)) {
      query["userid"] = request.userid;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryCollegeContactUserDetail",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/users`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryCollegeContactUserDetailResponse>(await this.execute(params, req, runtime), new QueryCollegeContactUserDetailResponse({}));
  }

  /**
   * 获取用户详情(包含高校账号)
   * 
   * @param request - QueryCollegeContactUserDetailRequest
   * @returns QueryCollegeContactUserDetailResponse
   */
  async queryCollegeContactUserDetail(request: QueryCollegeContactUserDetailRequest): Promise<QueryCollegeContactUserDetailResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryCollegeContactUserDetailHeaders({ });
    return await this.queryCollegeContactUserDetailWithOptions(request, headers, runtime);
  }

  /**
   * 查询单台视讯PAAS设备
   * 
   * @param request - QueryDeviceRequest
   * @param headers - QueryDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryDeviceResponse
   */
  async queryDeviceWithOptions(request: QueryDeviceRequest, headers: QueryDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<QueryDeviceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpass/devices/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryDeviceResponse>(await this.execute(params, req, runtime), new QueryDeviceResponse({}));
  }

  /**
   * 查询单台视讯PAAS设备
   * 
   * @param request - QueryDeviceRequest
   * @returns QueryDeviceResponse
   */
  async queryDevice(request: QueryDeviceRequest): Promise<QueryDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryDeviceHeaders({ });
    return await this.queryDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 查询某个组织下面的设备列表
   * 
   * @param request - QueryDeviceListByCorpIdRequest
   * @param headers - QueryDeviceListByCorpIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryDeviceListByCorpIdResponse
   */
  async queryDeviceListByCorpIdWithOptions(request: QueryDeviceListByCorpIdRequest, headers: QueryDeviceListByCorpIdHeaders, runtime: $Util.RuntimeOptions): Promise<QueryDeviceListByCorpIdResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryDeviceListByCorpId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/devices`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryDeviceListByCorpIdResponse>(await this.execute(params, req, runtime), new QueryDeviceListByCorpIdResponse({}));
  }

  /**
   * 查询某个组织下面的设备列表
   * 
   * @param request - QueryDeviceListByCorpIdRequest
   * @returns QueryDeviceListByCorpIdResponse
   */
  async queryDeviceListByCorpId(request: QueryDeviceListByCorpIdRequest): Promise<QueryDeviceListByCorpIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryDeviceListByCorpIdHeaders({ });
    return await this.queryDeviceListByCorpIdWithOptions(request, headers, runtime);
  }

  /**
   * 教学资源库查询space列表
   * 
   * @param request - QueryEduAssetSpacesRequest
   * @param headers - QueryEduAssetSpacesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryEduAssetSpacesResponse
   */
  async queryEduAssetSpacesWithOptions(request: QueryEduAssetSpacesRequest, headers: QueryEduAssetSpacesHeaders, runtime: $Util.RuntimeOptions): Promise<QueryEduAssetSpacesResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      query["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.maxResults)) {
      query["maxResults"] = request.maxResults;
    }

    if (!Util.isUnset(request.nextToken)) {
      query["nextToken"] = request.nextToken;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryEduAssetSpaces",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/assets/spaces`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryEduAssetSpacesResponse>(await this.execute(params, req, runtime), new QueryEduAssetSpacesResponse({}));
  }

  /**
   * 教学资源库查询space列表
   * 
   * @param request - QueryEduAssetSpacesRequest
   * @returns QueryEduAssetSpacesResponse
   */
  async queryEduAssetSpaces(request: QueryEduAssetSpacesRequest): Promise<QueryEduAssetSpacesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryEduAssetSpacesHeaders({ });
    return await this.queryEduAssetSpacesWithOptions(request, headers, runtime);
  }

  /**
   * 根据设备SN信息查询学校人脸库
   * 
   * @param request - QueryGroupIdRequest
   * @param headers - QueryGroupIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryGroupIdResponse
   */
  async queryGroupIdWithOptions(request: QueryGroupIdRequest, headers: QueryGroupIdHeaders, runtime: $Util.RuntimeOptions): Promise<QueryGroupIdResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryGroupId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/faces/groups`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryGroupIdResponse>(await this.execute(params, req, runtime), new QueryGroupIdResponse({}));
  }

  /**
   * 根据设备SN信息查询学校人脸库
   * 
   * @param request - QueryGroupIdRequest
   * @returns QueryGroupIdResponse
   */
  async queryGroupId(request: QueryGroupIdRequest): Promise<QueryGroupIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryGroupIdHeaders({ });
    return await this.queryGroupIdWithOptions(request, headers, runtime);
  }

  /**
   * 查询套件开通记录
   * 
   * @param request - QueryKitOpenRecordRequest
   * @param headers - QueryKitOpenRecordHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryKitOpenRecordResponse
   */
  async queryKitOpenRecordWithOptions(request: QueryKitOpenRecordRequest, headers: QueryKitOpenRecordHeaders, runtime: $Util.RuntimeOptions): Promise<QueryKitOpenRecordResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvProductScene)) {
      body["isvProductScene"] = request.isvProductScene;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryKitOpenRecord",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/records/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryKitOpenRecordResponse>(await this.execute(params, req, runtime), new QueryKitOpenRecordResponse({}));
  }

  /**
   * 查询套件开通记录
   * 
   * @param request - QueryKitOpenRecordRequest
   * @returns QueryKitOpenRecordResponse
   */
  async queryKitOpenRecord(request: QueryKitOpenRecordRequest): Promise<QueryKitOpenRecordResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryKitOpenRecordHeaders({ });
    return await this.queryKitOpenRecordWithOptions(request, headers, runtime);
  }

  /**
   * 获取大模型的返回值
   * 
   * @param request - QueryModelResultByTaskIdRequest
   * @param headers - QueryModelResultByTaskIdHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryModelResultByTaskIdResponse
   */
  async queryModelResultByTaskIdWithOptions(request: QueryModelResultByTaskIdRequest, headers: QueryModelResultByTaskIdHeaders, runtime: $Util.RuntimeOptions): Promise<QueryModelResultByTaskIdResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.taskId)) {
      body["taskId"] = request.taskId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryModelResultByTaskId",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/ai/models/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryModelResultByTaskIdResponse>(await this.execute(params, req, runtime), new QueryModelResultByTaskIdResponse({}));
  }

  /**
   * 获取大模型的返回值
   * 
   * @param request - QueryModelResultByTaskIdRequest
   * @returns QueryModelResultByTaskIdResponse
   */
  async queryModelResultByTaskId(request: QueryModelResultByTaskIdRequest): Promise<QueryModelResultByTaskIdResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryModelResultByTaskIdHeaders({ });
    return await this.queryModelResultByTaskIdWithOptions(request, headers, runtime);
  }

  /**
   * 查询订单信息
   * 
   * @param request - QueryOrderRequest
   * @param headers - QueryOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryOrderResponse
   */
  async queryOrderWithOptions(request: QueryOrderRequest, headers: QueryOrderHeaders, runtime: $Util.RuntimeOptions): Promise<QueryOrderResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.alipayAppId)) {
      query["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.merchantId)) {
      query["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      query["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      query["signature"] = request.signature;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryOrderResponse>(await this.execute(params, req, runtime), new QueryOrderResponse({}));
  }

  /**
   * 查询订单信息
   * 
   * @param request - QueryOrderRequest
   * @returns QueryOrderResponse
   */
  async queryOrder(request: QueryOrderRequest): Promise<QueryOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryOrderHeaders({ });
    return await this.queryOrderWithOptions(request, headers, runtime);
  }

  /**
   * 查询某个组织下面关联的组织列表
   * 
   * @param request - QueryOrgRelationListRequest
   * @param headers - QueryOrgRelationListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryOrgRelationListResponse
   */
  async queryOrgRelationListWithOptions(request: QueryOrgRelationListRequest, headers: QueryOrgRelationListHeaders, runtime: $Util.RuntimeOptions): Promise<QueryOrgRelationListResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryOrgRelationList",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/orgRelations`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryOrgRelationListResponse>(await this.execute(params, req, runtime), new QueryOrgRelationListResponse({}));
  }

  /**
   * 查询某个组织下面关联的组织列表
   * 
   * @param request - QueryOrgRelationListRequest
   * @returns QueryOrgRelationListResponse
   */
  async queryOrgRelationList(request: QueryOrgRelationListRequest): Promise<QueryOrgRelationListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryOrgRelationListHeaders({ });
    return await this.queryOrgRelationListWithOptions(request, headers, runtime);
  }

  /**
   * 获取组织秘钥
   * 
   * @param request - QueryOrgSecretKeyRequest
   * @param headers - QueryOrgSecretKeyHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryOrgSecretKeyResponse
   */
  async queryOrgSecretKeyWithOptions(request: QueryOrgSecretKeyRequest, headers: QueryOrgSecretKeyHeaders, runtime: $Util.RuntimeOptions): Promise<QueryOrgSecretKeyResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.isvCode)) {
      query["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryOrgSecretKey",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/secretKeys`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryOrgSecretKeyResponse>(await this.execute(params, req, runtime), new QueryOrgSecretKeyResponse({}));
  }

  /**
   * 获取组织秘钥
   * 
   * @param request - QueryOrgSecretKeyRequest
   * @returns QueryOrgSecretKeyResponse
   */
  async queryOrgSecretKey(request: QueryOrgSecretKeyRequest): Promise<QueryOrgSecretKeyResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryOrgSecretKeyHeaders({ });
    return await this.queryOrgSecretKeyWithOptions(request, headers, runtime);
  }

  /**
   * 查询教育组织类型
   * 
   * @param headers - QueryOrgTypeHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryOrgTypeResponse
   */
  async queryOrgTypeWithOptions(headers: QueryOrgTypeHeaders, runtime: $Util.RuntimeOptions): Promise<QueryOrgTypeResponse> {
    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
    });
    let params = new $OpenApi.Params({
      action: "QueryOrgType",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orgTypes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryOrgTypeResponse>(await this.execute(params, req, runtime), new QueryOrgTypeResponse({}));
  }

  /**
   * 查询教育组织类型
   * @returns QueryOrgTypeResponse
   */
  async queryOrgType(): Promise<QueryOrgTypeResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryOrgTypeHeaders({ });
    return await this.queryOrgTypeWithOptions(headers, runtime);
  }

  /**
   * 查询支付结果
   * 
   * @param request - QueryPayResultRequest
   * @param headers - QueryPayResultHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryPayResultResponse
   */
  async queryPayResultWithOptions(request: QueryPayResultRequest, headers: QueryPayResultHeaders, runtime: $Util.RuntimeOptions): Promise<QueryPayResultResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      body["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      body["signature"] = request.signature;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.timestamp)) {
      body["timestamp"] = request.timestamp;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    if (!Util.isUnset(request.version)) {
      body["version"] = request.version;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryPayResult",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/payResults/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryPayResultResponse>(await this.execute(params, req, runtime), new QueryPayResultResponse({}));
  }

  /**
   * 查询支付结果
   * 
   * @param request - QueryPayResultRequest
   * @returns QueryPayResultResponse
   */
  async queryPayResult(request: QueryPayResultRequest): Promise<QueryPayResultResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryPayResultHeaders({ });
    return await this.queryPayResultWithOptions(request, headers, runtime);
  }

  /**
   * 查询物理教室信息
   * 
   * @param request - QueryPhysicalClassroomRequest
   * @param headers - QueryPhysicalClassroomHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryPhysicalClassroomResponse
   */
  async queryPhysicalClassroomWithOptions(request: QueryPhysicalClassroomRequest, headers: QueryPhysicalClassroomHeaders, runtime: $Util.RuntimeOptions): Promise<QueryPhysicalClassroomResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classroomId)) {
      query["classroomId"] = request.classroomId;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryPhysicalClassroom",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/physicalClassrooms`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryPhysicalClassroomResponse>(await this.execute(params, req, runtime), new QueryPhysicalClassroomResponse({}));
  }

  /**
   * 查询物理教室信息
   * 
   * @param request - QueryPhysicalClassroomRequest
   * @returns QueryPhysicalClassroomResponse
   */
  async queryPhysicalClassroom(request: QueryPhysicalClassroomRequest): Promise<QueryPhysicalClassroomResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryPhysicalClassroomHeaders({ });
    return await this.queryPhysicalClassroomWithOptions(request, headers, runtime);
  }

  /**
   * 查询用户订购服务状态
   * 
   * @param request - QueryPurchaseInfoRequest
   * @param headers - QueryPurchaseInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryPurchaseInfoResponse
   */
  async queryPurchaseInfoWithOptions(request: QueryPurchaseInfoRequest, headers: QueryPurchaseInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QueryPurchaseInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.merchantId)) {
      query["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.scene)) {
      query["scene"] = request.scene;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryPurchaseInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/purchases`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryPurchaseInfoResponse>(await this.execute(params, req, runtime), new QueryPurchaseInfoResponse({}));
  }

  /**
   * 查询用户订购服务状态
   * 
   * @param request - QueryPurchaseInfoRequest
   * @returns QueryPurchaseInfoResponse
   */
  async queryPurchaseInfo(request: QueryPurchaseInfoRequest): Promise<QueryPurchaseInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryPurchaseInfoHeaders({ });
    return await this.queryPurchaseInfoWithOptions(request, headers, runtime);
  }

  /**
   * 查询课程列表
   * 
   * @param request - QueryRemoteClassCourseRequest
   * @param headers - QueryRemoteClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryRemoteClassCourseResponse
   */
  async queryRemoteClassCourseWithOptions(request: QueryRemoteClassCourseRequest, headers: QueryRemoteClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<QueryRemoteClassCourseResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.endTime)) {
      query["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.operator)) {
      query["operator"] = request.operator;
    }

    if (!Util.isUnset(request.startTime)) {
      query["startTime"] = request.startTime;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryRemoteClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/courses`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryRemoteClassCourseResponse>(await this.execute(params, req, runtime), new QueryRemoteClassCourseResponse({}));
  }

  /**
   * 查询课程列表
   * 
   * @param request - QueryRemoteClassCourseRequest
   * @returns QueryRemoteClassCourseResponse
   */
  async queryRemoteClassCourse(request: QueryRemoteClassCourseRequest): Promise<QueryRemoteClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryRemoteClassCourseHeaders({ });
    return await this.queryRemoteClassCourseWithOptions(request, headers, runtime);
  }

  /**
   * 分批查询学校人脸id
   * 
   * @param request - QuerySchoolUserFaceRequest
   * @param headers - QuerySchoolUserFaceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QuerySchoolUserFaceResponse
   */
  async querySchoolUserFaceWithOptions(request: QuerySchoolUserFaceRequest, headers: QuerySchoolUserFaceHeaders, runtime: $Util.RuntimeOptions): Promise<QuerySchoolUserFaceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.pageNumber)) {
      query["pageNumber"] = request.pageNumber;
    }

    if (!Util.isUnset(request.pageSize)) {
      query["pageSize"] = request.pageSize;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      query["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QuerySchoolUserFace",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/faces`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QuerySchoolUserFaceResponse>(await this.execute(params, req, runtime), new QuerySchoolUserFaceResponse({}));
  }

  /**
   * 分批查询学校人脸id
   * 
   * @param request - QuerySchoolUserFaceRequest
   * @returns QuerySchoolUserFaceResponse
   */
  async querySchoolUserFace(request: QuerySchoolUserFaceRequest): Promise<QuerySchoolUserFaceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QuerySchoolUserFaceHeaders({ });
    return await this.querySchoolUserFaceWithOptions(request, headers, runtime);
  }

  /**
   * 查询自建群组织和班级信息
   * 
   * @param request - QuerySelfBuildGroupBaseInfoRequest
   * @param headers - QuerySelfBuildGroupBaseInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QuerySelfBuildGroupBaseInfoResponse
   */
  async querySelfBuildGroupBaseInfoWithOptions(request: QuerySelfBuildGroupBaseInfoRequest, headers: QuerySelfBuildGroupBaseInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QuerySelfBuildGroupBaseInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QuerySelfBuildGroupBaseInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/self/group/base/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QuerySelfBuildGroupBaseInfoResponse>(await this.execute(params, req, runtime), new QuerySelfBuildGroupBaseInfoResponse({}));
  }

  /**
   * 查询自建群组织和班级信息
   * 
   * @param request - QuerySelfBuildGroupBaseInfoRequest
   * @returns QuerySelfBuildGroupBaseInfoResponse
   */
  async querySelfBuildGroupBaseInfo(request: QuerySelfBuildGroupBaseInfoRequest): Promise<QuerySelfBuildGroupBaseInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QuerySelfBuildGroupBaseInfoHeaders({ });
    return await this.querySelfBuildGroupBaseInfoWithOptions(request, headers, runtime);
  }

  /**
   * 查询自建群用户信息
   * 
   * @param request - QuerySelfBuildGroupUserInfoRequest
   * @param headers - QuerySelfBuildGroupUserInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QuerySelfBuildGroupUserInfoResponse
   */
  async querySelfBuildGroupUserInfoWithOptions(request: QuerySelfBuildGroupUserInfoRequest, headers: QuerySelfBuildGroupUserInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QuerySelfBuildGroupUserInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.roles)) {
      body["roles"] = request.roles;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QuerySelfBuildGroupUserInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/self/group/user/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QuerySelfBuildGroupUserInfoResponse>(await this.execute(params, req, runtime), new QuerySelfBuildGroupUserInfoResponse({}));
  }

  /**
   * 查询自建群用户信息
   * 
   * @param request - QuerySelfBuildGroupUserInfoRequest
   * @returns QuerySelfBuildGroupUserInfoResponse
   */
  async querySelfBuildGroupUserInfo(request: QuerySelfBuildGroupUserInfoRequest): Promise<QuerySelfBuildGroupUserInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QuerySelfBuildGroupUserInfoHeaders({ });
    return await this.querySelfBuildGroupUserInfoWithOptions(request, headers, runtime);
  }

  /**
   * 个人应用查询订单信息
   * 
   * @param request - QuerySnsOrderRequest
   * @param headers - QuerySnsOrderHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QuerySnsOrderResponse
   */
  async querySnsOrderWithOptions(request: QuerySnsOrderRequest, headers: QuerySnsOrderHeaders, runtime: $Util.RuntimeOptions): Promise<QuerySnsOrderResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.alipayAppId)) {
      query["alipayAppId"] = request.alipayAppId;
    }

    if (!Util.isUnset(request.merchantId)) {
      query["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.orderNo)) {
      query["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.signature)) {
      query["signature"] = request.signature;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QuerySnsOrder",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/snsOrders`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QuerySnsOrderResponse>(await this.execute(params, req, runtime), new QuerySnsOrderResponse({}));
  }

  /**
   * 个人应用查询订单信息
   * 
   * @param request - QuerySnsOrderRequest
   * @returns QuerySnsOrderResponse
   */
  async querySnsOrder(request: QuerySnsOrderRequest): Promise<QuerySnsOrderResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QuerySnsOrderHeaders({ });
    return await this.querySnsOrderWithOptions(request, headers, runtime);
  }

  /**
   * 获得课程表详细信息
   * 
   * @param request - QueryStatisticsDataRequest
   * @param headers - QueryStatisticsDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryStatisticsDataResponse
   */
  async queryStatisticsDataWithOptions(request: QueryStatisticsDataRequest, headers: QueryStatisticsDataHeaders, runtime: $Util.RuntimeOptions): Promise<QueryStatisticsDataResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.endTime)) {
      query["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.startTime)) {
      query["startTime"] = request.startTime;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.sectionIndexList)) {
      body["sectionIndexList"] = request.sectionIndexList;
    }

    if (!Util.isUnset(request.teacherUserIds)) {
      body["teacherUserIds"] = request.teacherUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryStatisticsData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/schedules/statisticData/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryStatisticsDataResponse>(await this.execute(params, req, runtime), new QueryStatisticsDataResponse({}));
  }

  /**
   * 获得课程表详细信息
   * 
   * @param request - QueryStatisticsDataRequest
   * @returns QueryStatisticsDataResponse
   */
  async queryStatisticsData(request: QueryStatisticsDataRequest): Promise<QueryStatisticsDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryStatisticsDataHeaders({ });
    return await this.queryStatisticsDataWithOptions(request, headers, runtime);
  }

  /**
   * 查询学生班级
   * 
   * @param request - QueryStudentClassRequest
   * @param headers - QueryStudentClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryStudentClassResponse
   */
  async queryStudentClassWithOptions(request: QueryStudentClassRequest, headers: QueryStudentClassHeaders, runtime: $Util.RuntimeOptions): Promise<QueryStudentClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.classType)) {
      body["classType"] = request.classType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.studentUserIds)) {
      body["studentUserIds"] = request.studentUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryStudentClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/students/classes/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryStudentClassResponse>(await this.execute(params, req, runtime), new QueryStudentClassResponse({}));
  }

  /**
   * 查询学生班级
   * 
   * @param request - QueryStudentClassRequest
   * @returns QueryStudentClassResponse
   */
  async queryStudentClass(request: QueryStudentClassRequest): Promise<QueryStudentClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryStudentClassHeaders({ });
    return await this.queryStudentClassWithOptions(request, headers, runtime);
  }

  /**
   * 查询教授某学科老师列表
   * 
   * @param request - QuerySubjectTeachersRequest
   * @param headers - QuerySubjectTeachersHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QuerySubjectTeachersResponse
   */
  async querySubjectTeachersWithOptions(request: QuerySubjectTeachersRequest, headers: QuerySubjectTeachersHeaders, runtime: $Util.RuntimeOptions): Promise<QuerySubjectTeachersResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classIds)) {
      query["classIds"] = request.classIds;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    if (!Util.isUnset(request.subjectCode)) {
      query["subjectCode"] = request.subjectCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QuerySubjectTeachers",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/subjects/teachers`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QuerySubjectTeachersResponse>(await this.execute(params, req, runtime), new QuerySubjectTeachersResponse({}));
  }

  /**
   * 查询教授某学科老师列表
   * 
   * @param request - QuerySubjectTeachersRequest
   * @returns QuerySubjectTeachersResponse
   */
  async querySubjectTeachers(request: QuerySubjectTeachersRequest): Promise<QuerySubjectTeachersResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QuerySubjectTeachersHeaders({ });
    return await this.querySubjectTeachersWithOptions(request, headers, runtime);
  }

  /**
   * 查询老师教授学科列表
   * 
   * @param request - QueryTeachSubjectsRequest
   * @param headers - QueryTeachSubjectsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryTeachSubjectsResponse
   */
  async queryTeachSubjectsWithOptions(request: QueryTeachSubjectsRequest, headers: QueryTeachSubjectsHeaders, runtime: $Util.RuntimeOptions): Promise<QueryTeachSubjectsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classIds)) {
      query["classIds"] = request.classIds;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryTeachSubjects",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/teachers/subjects`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryTeachSubjectsResponse>(await this.execute(params, req, runtime), new QueryTeachSubjectsResponse({}));
  }

  /**
   * 查询老师教授学科列表
   * 
   * @param request - QueryTeachSubjectsRequest
   * @returns QueryTeachSubjectsResponse
   */
  async queryTeachSubjects(request: QueryTeachSubjectsRequest): Promise<QueryTeachSubjectsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryTeachSubjectsHeaders({ });
    return await this.queryTeachSubjectsWithOptions(request, headers, runtime);
  }

  /**
   * 查询老师课程
   * 
   * @param request - QueryTeacherCourseRequest
   * @param headers - QueryTeacherCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryTeacherCourseResponse
   */
  async queryTeacherCourseWithOptions(request: QueryTeacherCourseRequest, headers: QueryTeacherCourseHeaders, runtime: $Util.RuntimeOptions): Promise<QueryTeacherCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseIdList)) {
      body["isvCourseIdList"] = request.isvCourseIdList;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryTeacherCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/teachers/courses/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryTeacherCourseResponse>(await this.execute(params, req, runtime), new QueryTeacherCourseResponse({}));
  }

  /**
   * 查询老师课程
   * 
   * @param request - QueryTeacherCourseRequest
   * @returns QueryTeacherCourseResponse
   */
  async queryTeacherCourse(request: QueryTeacherCourseRequest): Promise<QueryTeacherCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryTeacherCourseHeaders({ });
    return await this.queryTeacherCourseWithOptions(request, headers, runtime);
  }

  /**
   * 查询调代课记录
   * 
   * @param request - QueryTransferCourseRequest
   * @param headers - QueryTransferCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryTransferCourseResponse
   */
  async queryTransferCourseWithOptions(request: QueryTransferCourseRequest, headers: QueryTransferCourseHeaders, runtime: $Util.RuntimeOptions): Promise<QueryTransferCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvRecordId)) {
      body["isvRecordId"] = request.isvRecordId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "QueryTransferCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/transferRecords/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryTransferCourseResponse>(await this.execute(params, req, runtime), new QueryTransferCourseResponse({}));
  }

  /**
   * 查询调代课记录
   * 
   * @param request - QueryTransferCourseRequest
   * @returns QueryTransferCourseResponse
   */
  async queryTransferCourse(request: QueryTransferCourseRequest): Promise<QueryTransferCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryTransferCourseHeaders({ });
    return await this.queryTransferCourseWithOptions(request, headers, runtime);
  }

  /**
   * 查询大学课程组
   * 
   * @param request - QueryUniversityCourseGroupRequest
   * @param headers - QueryUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryUniversityCourseGroupResponse
   */
  async queryUniversityCourseGroupWithOptions(request: QueryUniversityCourseGroupRequest, headers: QueryUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<QueryUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupCode)) {
      query["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<QueryUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new QueryUniversityCourseGroupResponse({}));
  }

  /**
   * 查询大学课程组
   * 
   * @param request - QueryUniversityCourseGroupRequest
   * @returns QueryUniversityCourseGroupResponse
   */
  async queryUniversityCourseGroup(request: QueryUniversityCourseGroupRequest): Promise<QueryUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryUniversityCourseGroupHeaders({ });
    return await this.queryUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 根据人脸id查询用户信息
   * 
   * @param request - QueryUserFaceRequest
   * @param headers - QueryUserFaceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryUserFaceResponse
   */
  async queryUserFaceWithOptions(request: QueryUserFaceRequest, headers: QueryUserFaceHeaders, runtime: $Util.RuntimeOptions): Promise<QueryUserFaceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      query["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryUserFace",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/faces`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryUserFaceResponse>(await this.execute(params, req, runtime), new QueryUserFaceResponse({}));
  }

  /**
   * 根据人脸id查询用户信息
   * 
   * @param request - QueryUserFaceRequest
   * @returns QueryUserFaceResponse
   */
  async queryUserFace(request: QueryUserFaceRequest): Promise<QueryUserFaceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryUserFaceHeaders({ });
    return await this.queryUserFaceWithOptions(request, headers, runtime);
  }

  /**
   * 查询用户支付信息
   * 
   * @param request - QueryUserPayInfoRequest
   * @param headers - QueryUserPayInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryUserPayInfoResponse
   */
  async queryUserPayInfoWithOptions(request: QueryUserPayInfoRequest, headers: QueryUserPayInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QueryUserPayInfoResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.faceId)) {
      query["faceId"] = request.faceId;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    if (!Util.isUnset(request.userId)) {
      query["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "QueryUserPayInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orders/payInfos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryUserPayInfoResponse>(await this.execute(params, req, runtime), new QueryUserPayInfoResponse({}));
  }

  /**
   * 查询用户支付信息
   * 
   * @param request - QueryUserPayInfoRequest
   * @returns QueryUserPayInfoResponse
   */
  async queryUserPayInfo(request: QueryUserPayInfoRequest): Promise<QueryUserPayInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryUserPayInfoHeaders({ });
    return await this.queryUserPayInfoWithOptions(request, headers, runtime);
  }

  /**
   * 移除设备
   * 
   * @param request - RemoveDeviceRequest
   * @param headers - RemoveDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns RemoveDeviceResponse
   */
  async removeDeviceWithOptions(request: RemoveDeviceRequest, headers: RemoveDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<RemoveDeviceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.merchantId)) {
      query["merchantId"] = request.merchantId;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "RemoveDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/devices`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<RemoveDeviceResponse>(await this.execute(params, req, runtime), new RemoveDeviceResponse({}));
  }

  /**
   * 移除设备
   * 
   * @param request - RemoveDeviceRequest
   * @returns RemoveDeviceResponse
   */
  async removeDevice(request: RemoveDeviceRequest): Promise<RemoveDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new RemoveDeviceHeaders({ });
    return await this.removeDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 设备日志上报接口
   * 
   * @param request - ReportDeviceLogRequest
   * @param headers - ReportDeviceLogHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ReportDeviceLogResponse
   */
  async reportDeviceLogWithOptions(request: ReportDeviceLogRequest, headers: ReportDeviceLogHeaders, runtime: $Util.RuntimeOptions): Promise<ReportDeviceLogResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.mediaId)) {
      query["mediaId"] = request.mediaId;
    }

    if (!Util.isUnset(request.sn)) {
      query["sn"] = request.sn;
    }

    if (!Util.isUnset(request.type)) {
      query["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "ReportDeviceLog",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/deviceLogs/report`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ReportDeviceLogResponse>(await this.execute(params, req, runtime), new ReportDeviceLogResponse({}));
  }

  /**
   * 设备日志上报接口
   * 
   * @param request - ReportDeviceLogRequest
   * @returns ReportDeviceLogResponse
   */
  async reportDeviceLog(request: ReportDeviceLogRequest): Promise<ReportDeviceLogResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ReportDeviceLogHeaders({ });
    return await this.reportDeviceLogWithOptions(request, headers, runtime);
  }

  /**
   * 上传设备使用日志
   * 
   * @param request - ReportDeviceUseLogRequest
   * @param headers - ReportDeviceUseLogHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ReportDeviceUseLogResponse
   */
  async reportDeviceUseLogWithOptions(request: ReportDeviceUseLogRequest, headers: ReportDeviceUseLogHeaders, runtime: $Util.RuntimeOptions): Promise<ReportDeviceUseLogResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.action)) {
      body["action"] = request.action;
    }

    if (!Util.isUnset(request.orderNo)) {
      body["orderNo"] = request.orderNo;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ReportDeviceUseLog",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/deviceUseLogs/report`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ReportDeviceUseLogResponse>(await this.execute(params, req, runtime), new ReportDeviceUseLogResponse({}));
  }

  /**
   * 上传设备使用日志
   * 
   * @param request - ReportDeviceUseLogRequest
   * @returns ReportDeviceUseLogResponse
   */
  async reportDeviceUseLog(request: ReportDeviceUseLogRequest): Promise<ReportDeviceUseLogResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ReportDeviceUseLogHeaders({ });
    return await this.reportDeviceUseLogWithOptions(request, headers, runtime);
  }

  /**
   * 回滚教育积分扣减
   * 
   * @param request - RollbackDeductPointRequest
   * @param headers - RollbackDeductPointHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns RollbackDeductPointResponse
   */
  async rollbackDeductPointWithOptions(request: RollbackDeductPointRequest, headers: RollbackDeductPointHeaders, runtime: $Util.RuntimeOptions): Promise<RollbackDeductPointResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.pointType)) {
      body["pointType"] = request.pointType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "RollbackDeductPoint",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/deductPoints/rollback`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<RollbackDeductPointResponse>(await this.execute(params, req, runtime), new RollbackDeductPointResponse({}));
  }

  /**
   * 回滚教育积分扣减
   * 
   * @param request - RollbackDeductPointRequest
   * @returns RollbackDeductPointResponse
   */
  async rollbackDeductPoint(request: RollbackDeductPointRequest): Promise<RollbackDeductPointResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new RollbackDeductPointHeaders({ });
    return await this.rollbackDeductPointWithOptions(request, headers, runtime);
  }

  /**
   * 保存班级学情数据
   * 
   * @param request - SaveClassLearningDataRequest
   * @param headers - SaveClassLearningDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SaveClassLearningDataResponse
   */
  async saveClassLearningDataWithOptions(request: SaveClassLearningDataRequest, headers: SaveClassLearningDataHeaders, runtime: $Util.RuntimeOptions): Promise<SaveClassLearningDataResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.assignNum)) {
      body["assignNum"] = request.assignNum;
    }

    if (!Util.isUnset(request.assignStudentUserIds)) {
      body["assignStudentUserIds"] = request.assignStudentUserIds;
    }

    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.fileSuffix)) {
      body["fileSuffix"] = request.fileSuffix;
    }

    if (!Util.isUnset(request.generatedTime)) {
      body["generatedTime"] = request.generatedTime;
    }

    if (!Util.isUnset(request.questionNum)) {
      body["questionNum"] = request.questionNum;
    }

    if (!Util.isUnset(request.questionPictureNum)) {
      body["questionPictureNum"] = request.questionPictureNum;
    }

    if (!Util.isUnset(request.standardAnswerPictureNum)) {
      body["standardAnswerPictureNum"] = request.standardAnswerPictureNum;
    }

    if (!Util.isUnset(request.subjectCode)) {
      body["subjectCode"] = request.subjectCode;
    }

    if (!Util.isUnset(request.teacherUserId)) {
      body["teacherUserId"] = request.teacherUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SaveClassLearningData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/learnings/datas/save`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SaveClassLearningDataResponse>(await this.execute(params, req, runtime), new SaveClassLearningDataResponse({}));
  }

  /**
   * 保存班级学情数据
   * 
   * @param request - SaveClassLearningDataRequest
   * @returns SaveClassLearningDataResponse
   */
  async saveClassLearningData(request: SaveClassLearningDataRequest): Promise<SaveClassLearningDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SaveClassLearningDataHeaders({ });
    return await this.saveClassLearningDataWithOptions(request, headers, runtime);
  }

  /**
   * 保存学生学情数据
   * 
   * @param request - SaveStudentLearningDataRequest
   * @param headers - SaveStudentLearningDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SaveStudentLearningDataResponse
   */
  async saveStudentLearningDataWithOptions(request: SaveStudentLearningDataRequest, headers: SaveStudentLearningDataHeaders, runtime: $Util.RuntimeOptions): Promise<SaveStudentLearningDataResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.assignNum)) {
      body["assignNum"] = request.assignNum;
    }

    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.correctNum)) {
      body["correctNum"] = request.correctNum;
    }

    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.fileSuffix)) {
      body["fileSuffix"] = request.fileSuffix;
    }

    if (!Util.isUnset(request.generatedTime)) {
      body["generatedTime"] = request.generatedTime;
    }

    if (!Util.isUnset(request.questionNum)) {
      body["questionNum"] = request.questionNum;
    }

    if (!Util.isUnset(request.studentUserId)) {
      body["studentUserId"] = request.studentUserId;
    }

    if (!Util.isUnset(request.subjectCode)) {
      body["subjectCode"] = request.subjectCode;
    }

    if (!Util.isUnset(request.submitNum)) {
      body["submitNum"] = request.submitNum;
    }

    if (!Util.isUnset(request.wrongQuestions)) {
      body["wrongQuestions"] = request.wrongQuestions;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SaveStudentLearningData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/students/learnings/datas/save`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SaveStudentLearningDataResponse>(await this.execute(params, req, runtime), new SaveStudentLearningDataResponse({}));
  }

  /**
   * 保存学生学情数据
   * 
   * @param request - SaveStudentLearningDataRequest
   * @returns SaveStudentLearningDataResponse
   */
  async saveStudentLearningData(request: SaveStudentLearningDataRequest): Promise<SaveStudentLearningDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SaveStudentLearningDataHeaders({ });
    return await this.saveStudentLearningDataWithOptions(request, headers, runtime);
  }

  /**
   * 成绩单详情已读状态设置
   * 
   * @param request - SchoolReportDetailReadedRequest
   * @param headers - SchoolReportDetailReadedHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SchoolReportDetailReadedResponse
   */
  async schoolReportDetailReadedWithOptions(request: SchoolReportDetailReadedRequest, headers: SchoolReportDetailReadedHeaders, runtime: $Util.RuntimeOptions): Promise<SchoolReportDetailReadedResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.schoolReportId)) {
      body["schoolReportId"] = request.schoolReportId;
    }

    if (!Util.isUnset(request.studentIds)) {
      body["studentIds"] = request.studentIds;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SchoolReportDetailReaded",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/schools/reportDetails/readStatuses/set`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SchoolReportDetailReadedResponse>(await this.execute(params, req, runtime), new SchoolReportDetailReadedResponse({}));
  }

  /**
   * 成绩单详情已读状态设置
   * 
   * @param request - SchoolReportDetailReadedRequest
   * @returns SchoolReportDetailReadedResponse
   */
  async schoolReportDetailReaded(request: SchoolReportDetailReadedRequest): Promise<SchoolReportDetailReadedResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SchoolReportDetailReadedHeaders({ });
    return await this.schoolReportDetailReadedWithOptions(request, headers, runtime);
  }

  /**
   * 按关键字搜索老师
   * 
   * @param request - SearchTeachersRequest
   * @param headers - SearchTeachersHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SearchTeachersResponse
   */
  async searchTeachersWithOptions(request: SearchTeachersRequest, headers: SearchTeachersHeaders, runtime: $Util.RuntimeOptions): Promise<SearchTeachersResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.nameKeyword)) {
      query["nameKeyword"] = request.nameKeyword;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "SearchTeachers",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/teachers/search`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<SearchTeachersResponse>(await this.execute(params, req, runtime), new SearchTeachersResponse({}));
  }

  /**
   * 按关键字搜索老师
   * 
   * @param request - SearchTeachersRequest
   * @returns SearchTeachersResponse
   */
  async searchTeachers(request: SearchTeachersRequest): Promise<SearchTeachersResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SearchTeachersHeaders({ });
    return await this.searchTeachersWithOptions(request, headers, runtime);
  }

  /**
   * 套件-发送AI卡片
   * 
   * @param request - SendAiCardRequest
   * @param headers - SendAiCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SendAiCardResponse
   */
  async sendAiCardWithOptions(request: SendAiCardRequest, headers: SendAiCardHeaders, runtime: $Util.RuntimeOptions): Promise<SendAiCardResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionType)) {
      body["actionType"] = request.actionType;
    }

    if (!Util.isUnset(request.bizData)) {
      body["bizData"] = request.bizData;
    }

    if (!Util.isUnset(request.cardChannel)) {
      body["cardChannel"] = request.cardChannel;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.identifier)) {
      body["identifier"] = request.identifier;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SendAiCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/aiCards/send`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SendAiCardResponse>(await this.execute(params, req, runtime), new SendAiCardResponse({}));
  }

  /**
   * 套件-发送AI卡片
   * 
   * @param request - SendAiCardRequest
   * @returns SendAiCardResponse
   */
  async sendAiCard(request: SendAiCardRequest): Promise<SendAiCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SendAiCardHeaders({ });
    return await this.sendAiCardWithOptions(request, headers, runtime);
  }

  /**
   * 高校AI助理主动发送消息
   * 
   * @param request - SendCollegeAiAssistantMsgRequest
   * @param headers - SendCollegeAiAssistantMsgHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SendCollegeAiAssistantMsgResponse
   */
  async sendCollegeAiAssistantMsgWithOptions(request: SendCollegeAiAssistantMsgRequest, headers: SendCollegeAiAssistantMsgHeaders, runtime: $Util.RuntimeOptions): Promise<SendCollegeAiAssistantMsgResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.content)) {
      body["content"] = request.content;
    }

    if (!Util.isUnset(request.contentType)) {
      body["contentType"] = request.contentType;
    }

    if (!Util.isUnset(request.openConversationId)) {
      body["openConversationId"] = request.openConversationId;
    }

    if (!Util.isUnset(request.unionId)) {
      body["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SendCollegeAiAssistantMsg",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/colleges/aiAssistants/messages/send`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SendCollegeAiAssistantMsgResponse>(await this.execute(params, req, runtime), new SendCollegeAiAssistantMsgResponse({}));
  }

  /**
   * 高校AI助理主动发送消息
   * 
   * @param request - SendCollegeAiAssistantMsgRequest
   * @returns SendCollegeAiAssistantMsgResponse
   */
  async sendCollegeAiAssistantMsg(request: SendCollegeAiAssistantMsgRequest): Promise<SendCollegeAiAssistantMsgResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SendCollegeAiAssistantMsgHeaders({ });
    return await this.sendCollegeAiAssistantMsgWithOptions(request, headers, runtime);
  }

  /**
   * 收藏文件消息发送
   * 
   * @param request - SendFileMessageRequest
   * @param headers - SendFileMessageHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SendFileMessageResponse
   */
  async sendFileMessageWithOptions(request: SendFileMessageRequest, headers: SendFileMessageHeaders, runtime: $Util.RuntimeOptions): Promise<SendFileMessageResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.fileName)) {
      body["fileName"] = request.fileName;
    }

    if (!Util.isUnset(request.fileSize)) {
      body["fileSize"] = request.fileSize;
    }

    if (!Util.isUnset(request.fileUrl)) {
      body["fileUrl"] = request.fileUrl;
    }

    if (!Util.isUnset(request.sendType)) {
      body["sendType"] = request.sendType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SendFileMessage",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/contents/files/messages/send`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SendFileMessageResponse>(await this.execute(params, req, runtime), new SendFileMessageResponse({}));
  }

  /**
   * 收藏文件消息发送
   * 
   * @param request - SendFileMessageRequest
   * @returns SendFileMessageResponse
   */
  async sendFileMessage(request: SendFileMessageRequest): Promise<SendFileMessageResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SendFileMessageHeaders({ });
    return await this.sendFileMessageWithOptions(request, headers, runtime);
  }

  /**
   * 亲情通话发消息
   * 
   * @param request - SendMessageRequest
   * @param headers - SendMessageHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SendMessageResponse
   */
  async sendMessageWithOptions(request: SendMessageRequest, headers: SendMessageHeaders, runtime: $Util.RuntimeOptions): Promise<SendMessageResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.fromUserId)) {
      body["fromUserId"] = request.fromUserId;
    }

    if (!Util.isUnset(request.sn)) {
      body["sn"] = request.sn;
    }

    if (!Util.isUnset(request.toUserIdList)) {
      body["toUserIdList"] = request.toUserIdList;
    }

    if (!Util.isUnset(request.type)) {
      body["type"] = request.type;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SendMessage",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/messages/send`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SendMessageResponse>(await this.execute(params, req, runtime), new SendMessageResponse({}));
  }

  /**
   * 亲情通话发消息
   * 
   * @param request - SendMessageRequest
   * @returns SendMessageResponse
   */
  async sendMessage(request: SendMessageRequest): Promise<SendMessageResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SendMessageHeaders({ });
    return await this.sendMessageWithOptions(request, headers, runtime);
  }

  /**
   * 发送打印订单提醒消息
   * 
   * @param request - SendPrintOrderNoticeMsgRequest
   * @param headers - SendPrintOrderNoticeMsgHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SendPrintOrderNoticeMsgResponse
   */
  async sendPrintOrderNoticeMsgWithOptions(request: SendPrintOrderNoticeMsgRequest, headers: SendPrintOrderNoticeMsgHeaders, runtime: $Util.RuntimeOptions): Promise<SendPrintOrderNoticeMsgResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.createOrderTime)) {
      body["createOrderTime"] = request.createOrderTime;
    }

    if (!Util.isUnset(request.deliveryCompanyName)) {
      body["deliveryCompanyName"] = request.deliveryCompanyName;
    }

    if (!Util.isUnset(request.deliveryNumber)) {
      body["deliveryNumber"] = request.deliveryNumber;
    }

    if (!Util.isUnset(request.deliveryTime)) {
      body["deliveryTime"] = request.deliveryTime;
    }

    if (!Util.isUnset(request.paymentTime)) {
      body["paymentTime"] = request.paymentTime;
    }

    if (!Util.isUnset(request.price)) {
      body["price"] = request.price;
    }

    if (!Util.isUnset(request.sceneCode)) {
      body["sceneCode"] = request.sceneCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SendPrintOrderNoticeMsg",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/files/printOrders/noticeMessages/send`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SendPrintOrderNoticeMsgResponse>(await this.execute(params, req, runtime), new SendPrintOrderNoticeMsgResponse({}));
  }

  /**
   * 发送打印订单提醒消息
   * 
   * @param request - SendPrintOrderNoticeMsgRequest
   * @returns SendPrintOrderNoticeMsgResponse
   */
  async sendPrintOrderNoticeMsg(request: SendPrintOrderNoticeMsgRequest): Promise<SendPrintOrderNoticeMsgResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SendPrintOrderNoticeMsgHeaders({ });
    return await this.sendPrintOrderNoticeMsgWithOptions(request, headers, runtime);
  }

  /**
   * 开始课程
   * 
   * @param request - StartCourseRequest
   * @param headers - StartCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns StartCourseResponse
   */
  async startCourseWithOptions(request: StartCourseRequest, headers: StartCourseHeaders, runtime: $Util.RuntimeOptions): Promise<StartCourseResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseCode)) {
      body["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.livePlayInfoList)) {
      body["livePlayInfoList"] = request.livePlayInfoList;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "StartCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courses/start`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<StartCourseResponse>(await this.execute(params, req, runtime), new StartCourseResponse({}));
  }

  /**
   * 开始课程
   * 
   * @param request - StartCourseRequest
   * @returns StartCourseResponse
   */
  async startCourse(request: StartCourseRequest): Promise<StartCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new StartCourseHeaders({ });
    return await this.startCourseWithOptions(request, headers, runtime);
  }

  /**
   * 预开课，发送开课提醒
   * 
   * @param request - StartCoursePrepareRequest
   * @param headers - StartCoursePrepareHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns StartCoursePrepareResponse
   */
  async startCoursePrepareWithOptions(request: StartCoursePrepareRequest, headers: StartCoursePrepareHeaders, runtime: $Util.RuntimeOptions): Promise<StartCoursePrepareResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseDate)) {
      body["courseDate"] = request.courseDate;
    }

    if (!Util.isUnset(request.courseGroupCode)) {
      body["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.deviceId)) {
      body["deviceId"] = request.deviceId;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.liveCoverImage)) {
      body["liveCoverImage"] = request.liveCoverImage;
    }

    if (!Util.isUnset(request.sectionIndex)) {
      body["sectionIndex"] = request.sectionIndex;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "StartCoursePrepare",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courses/prepare`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<StartCoursePrepareResponse>(await this.execute(params, req, runtime), new StartCoursePrepareResponse({}));
  }

  /**
   * 预开课，发送开课提醒
   * 
   * @param request - StartCoursePrepareRequest
   * @returns StartCoursePrepareResponse
   */
  async startCoursePrepare(request: StartCoursePrepareRequest): Promise<StartCoursePrepareResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new StartCoursePrepareHeaders({ });
    return await this.startCoursePrepareWithOptions(request, headers, runtime);
  }

  /**
   * AI体育-上报数据
   * 
   * @param request - SubmitAiSportDataRequest
   * @param headers - SubmitAiSportDataHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SubmitAiSportDataResponse
   */
  async submitAiSportDataWithOptions(request: SubmitAiSportDataRequest, headers: SubmitAiSportDataHeaders, runtime: $Util.RuntimeOptions): Promise<SubmitAiSportDataResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.data)) {
      body["data"] = request.data;
    }

    if (!Util.isUnset(request.dataType)) {
      body["dataType"] = request.dataType;
    }

    if (!Util.isUnset(request.operateType)) {
      body["operateType"] = request.operateType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SubmitAiSportData",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/aiSports/data/submit`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<SubmitAiSportDataResponse>(await this.execute(params, req, runtime), new SubmitAiSportDataResponse({}));
  }

  /**
   * AI体育-上报数据
   * 
   * @param request - SubmitAiSportDataRequest
   * @returns SubmitAiSportDataResponse
   */
  async submitAiSportData(request: SubmitAiSportDataRequest): Promise<SubmitAiSportDataResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SubmitAiSportDataHeaders({ });
    return await this.submitAiSportDataWithOptions(request, headers, runtime);
  }

  /**
   * 订阅大学课程组
   * 
   * @param request - SubscribeUniversityCourseGroupRequest
   * @param headers - SubscribeUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns SubscribeUniversityCourseGroupResponse
   */
  async subscribeUniversityCourseGroupWithOptions(request: SubscribeUniversityCourseGroupRequest, headers: SubscribeUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<SubscribeUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupCode)) {
      body["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.studentUserIds)) {
      body["studentUserIds"] = request.studentUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "SubscribeUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups/subscribe`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<SubscribeUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new SubscribeUniversityCourseGroupResponse({}));
  }

  /**
   * 订阅大学课程组
   * 
   * @param request - SubscribeUniversityCourseGroupRequest
   * @returns SubscribeUniversityCourseGroupResponse
   */
  async subscribeUniversityCourseGroup(request: SubscribeUniversityCourseGroupRequest): Promise<SubscribeUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new SubscribeUniversityCourseGroupHeaders({ });
    return await this.subscribeUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 取消订阅大学课程组
   * 
   * @param request - UnsubscribeUniversityCourseGroupRequest
   * @param headers - UnsubscribeUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UnsubscribeUniversityCourseGroupResponse
   */
  async unsubscribeUniversityCourseGroupWithOptions(request: UnsubscribeUniversityCourseGroupRequest, headers: UnsubscribeUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<UnsubscribeUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupCode)) {
      body["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.studentUserIds)) {
      body["studentUserIds"] = request.studentUserIds;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UnsubscribeUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups/unsubscribe`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<UnsubscribeUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new UnsubscribeUniversityCourseGroupResponse({}));
  }

  /**
   * 取消订阅大学课程组
   * 
   * @param request - UnsubscribeUniversityCourseGroupRequest
   * @returns UnsubscribeUniversityCourseGroupResponse
   */
  async unsubscribeUniversityCourseGroup(request: UnsubscribeUniversityCourseGroupRequest): Promise<UnsubscribeUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UnsubscribeUniversityCourseGroupHeaders({ });
    return await this.unsubscribeUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 修改班级信息
   * 
   * @param request - UpdateClassRequest
   * @param headers - UpdateClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateClassResponse
   */
  async updateClassWithOptions(request: UpdateClassRequest, headers: UpdateClassHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateClassResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.gradeLevel)) {
      body["gradeLevel"] = request.gradeLevel;
    }

    if (!Util.isUnset(request.openClass)) {
      body["openClass"] = request.openClass;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.superId)) {
      body["superId"] = request.superId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/infos`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateClassResponse>(await this.execute(params, req, runtime), new UpdateClassResponse({}));
  }

  /**
   * 修改班级信息
   * 
   * @param request - UpdateClassRequest
   * @returns UpdateClassResponse
   */
  async updateClass(request: UpdateClassRequest): Promise<UpdateClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateClassHeaders({ });
    return await this.updateClassWithOptions(request, headers, runtime);
  }

  /**
   * 更新班级群卡片消息
   * 
   * @param request - UpdateClassGroupCardRequest
   * @param headers - UpdateClassGroupCardHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateClassGroupCardResponse
   */
  async updateClassGroupCardWithOptions(request: UpdateClassGroupCardRequest, headers: UpdateClassGroupCardHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateClassGroupCardResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCardId)) {
      body["bizCardId"] = request.bizCardId;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.groupTypeList)) {
      body["groupTypeList"] = request.groupTypeList;
    }

    if (!Util.isUnset(request.isFinalUpdate)) {
      body["isFinalUpdate"] = request.isFinalUpdate;
    }

    if (!Util.isUnset(request.privateCardData)) {
      body["privateCardData"] = request.privateCardData;
    }

    if (!Util.isUnset(request.publicCardData)) {
      body["publicCardData"] = request.publicCardData;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateClassGroupCard",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/groups/cards/messages`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateClassGroupCardResponse>(await this.execute(params, req, runtime), new UpdateClassGroupCardResponse({}));
  }

  /**
   * 更新班级群卡片消息
   * 
   * @param request - UpdateClassGroupCardRequest
   * @returns UpdateClassGroupCardResponse
   */
  async updateClassGroupCard(request: UpdateClassGroupCardRequest): Promise<UpdateClassGroupCardResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateClassGroupCardHeaders({ });
    return await this.updateClassGroupCardWithOptions(request, headers, runtime);
  }

  /**
   * 高校校友会更新校友信息
   * 
   * @param request - UpdateCollegeAlumniUserInfoRequest
   * @param headers - UpdateCollegeAlumniUserInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeAlumniUserInfoResponse
   */
  async updateCollegeAlumniUserInfoWithOptions(request: UpdateCollegeAlumniUserInfoRequest, headers: UpdateCollegeAlumniUserInfoHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeAlumniUserInfoResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.address)) {
      body["address"] = request.address;
    }

    if (!Util.isUnset(request.deptIds)) {
      body["deptIds"] = request.deptIds;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.intake)) {
      body["intake"] = request.intake;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.outtake)) {
      body["outtake"] = request.outtake;
    }

    if (!Util.isUnset(request.studentNumber)) {
      body["studentNumber"] = request.studentNumber;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeAlumniUserInfo",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeAlumni/userInfos`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeAlumniUserInfoResponse>(await this.execute(params, req, runtime), new UpdateCollegeAlumniUserInfoResponse({}));
  }

  /**
   * 高校校友会更新校友信息
   * 
   * @param request - UpdateCollegeAlumniUserInfoRequest
   * @returns UpdateCollegeAlumniUserInfoResponse
   */
  async updateCollegeAlumniUserInfo(request: UpdateCollegeAlumniUserInfoRequest): Promise<UpdateCollegeAlumniUserInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeAlumniUserInfoHeaders({ });
    return await this.updateCollegeAlumniUserInfoWithOptions(request, headers, runtime);
  }

  /**
   * 更新高校通讯录组织单元
   * 
   * @param request - UpdateCollegeContactDeptRequest
   * @param headers - UpdateCollegeContactDeptHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeContactDeptResponse
   */
  async updateCollegeContactDeptWithOptions(request: UpdateCollegeContactDeptRequest, headers: UpdateCollegeContactDeptHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeContactDeptResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.autoAddUser)) {
      body["autoAddUser"] = request.autoAddUser;
    }

    if (!Util.isUnset(request.autoApproveApply)) {
      body["autoApproveApply"] = request.autoApproveApply;
    }

    if (!Util.isUnset(request.brief)) {
      body["brief"] = request.brief;
    }

    if (!Util.isUnset(request.code)) {
      body["code"] = request.code;
    }

    if (!Util.isUnset(request.createDeptGroup)) {
      body["createDeptGroup"] = request.createDeptGroup;
    }

    if (!Util.isUnset(request.deptCode)) {
      body["deptCode"] = request.deptCode;
    }

    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.deptManagerUseridList)) {
      body["deptManagerUseridList"] = request.deptManagerUseridList;
    }

    if (!Util.isUnset(request.deptPermits)) {
      body["deptPermits"] = request.deptPermits;
    }

    if (!Util.isUnset(request.deptType)) {
      body["deptType"] = request.deptType;
    }

    if (!Util.isUnset(request.empApplyJoinDept)) {
      body["empApplyJoinDept"] = request.empApplyJoinDept;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.forceUpdateFields)) {
      body["forceUpdateFields"] = request.forceUpdateFields;
    }

    if (!Util.isUnset(request.groupContainHiddenDept)) {
      body["groupContainHiddenDept"] = request.groupContainHiddenDept;
    }

    if (!Util.isUnset(request.groupContainOuterDept)) {
      body["groupContainOuterDept"] = request.groupContainOuterDept;
    }

    if (!Util.isUnset(request.groupContainSubDept)) {
      body["groupContainSubDept"] = request.groupContainSubDept;
    }

    if (!Util.isUnset(request.hideDept)) {
      body["hideDept"] = request.hideDept;
    }

    if (!Util.isUnset(request.hideSceneConfig)) {
      body["hideSceneConfig"] = request.hideSceneConfig;
    }

    if (!Util.isUnset(request.language)) {
      body["language"] = request.language;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.order)) {
      body["order"] = request.order;
    }

    if (!Util.isUnset(request.orgDeptOwner)) {
      body["orgDeptOwner"] = request.orgDeptOwner;
    }

    if (!Util.isUnset(request.outerDept)) {
      body["outerDept"] = request.outerDept;
    }

    if (!Util.isUnset(request.outerDeptOnlySelf)) {
      body["outerDeptOnlySelf"] = request.outerDeptOnlySelf;
    }

    if (!Util.isUnset(request.outerPermitDepts)) {
      body["outerPermitDepts"] = request.outerPermitDepts;
    }

    if (!Util.isUnset(request.outerPermitUsers)) {
      body["outerPermitUsers"] = request.outerPermitUsers;
    }

    if (!Util.isUnset(request.outerSceneConfig)) {
      body["outerSceneConfig"] = request.outerSceneConfig;
    }

    if (!Util.isUnset(request.parentId)) {
      body["parentId"] = request.parentId;
    }

    if (!Util.isUnset(request.sourceIdentifier)) {
      body["sourceIdentifier"] = request.sourceIdentifier;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.userPermits)) {
      body["userPermits"] = request.userPermits;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeContactDept",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeContactDeptResponse>(await this.execute(params, req, runtime), new UpdateCollegeContactDeptResponse({}));
  }

  /**
   * 更新高校通讯录组织单元
   * 
   * @param request - UpdateCollegeContactDeptRequest
   * @returns UpdateCollegeContactDeptResponse
   */
  async updateCollegeContactDept(request: UpdateCollegeContactDeptRequest): Promise<UpdateCollegeContactDeptResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeContactDeptHeaders({ });
    return await this.updateCollegeContactDeptWithOptions(request, headers, runtime);
  }

  /**
   * 更新高校账号用户
   * 
   * @param request - UpdateCollegeContactExclusiveRequest
   * @param headers - UpdateCollegeContactExclusiveHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeContactExclusiveResponse
   */
  async updateCollegeContactExclusiveWithOptions(request: UpdateCollegeContactExclusiveRequest, headers: UpdateCollegeContactExclusiveHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeContactExclusiveResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.avatarMediaId)) {
      body["avatarMediaId"] = request.avatarMediaId;
    }

    if (!Util.isUnset(request.deptIdList)) {
      body["deptIdList"] = request.deptIdList;
    }

    if (!Util.isUnset(request.deptOrderList)) {
      body["deptOrderList"] = request.deptOrderList;
    }

    if (!Util.isUnset(request.deptPositionSet)) {
      body["deptPositionSet"] = request.deptPositionSet;
    }

    if (!Util.isUnset(request.deptTitleList)) {
      body["deptTitleList"] = request.deptTitleList;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.empType)) {
      body["empType"] = request.empType;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.forceUpdateFields)) {
      body["forceUpdateFields"] = request.forceUpdateFields;
    }

    if (!Util.isUnset(request.hideMobile)) {
      body["hideMobile"] = request.hideMobile;
    }

    if (!Util.isUnset(request.hiredDate)) {
      body["hiredDate"] = request.hiredDate;
    }

    if (!Util.isUnset(request.jobNumber)) {
      body["jobNumber"] = request.jobNumber;
    }

    if (!Util.isUnset(request.language)) {
      body["language"] = request.language;
    }

    if (!Util.isUnset(request.loginIdType)) {
      body["loginIdType"] = request.loginIdType;
    }

    if (!Util.isUnset(request.mainDeptId)) {
      body["mainDeptId"] = request.mainDeptId;
    }

    if (!Util.isUnset(request.managerUserid)) {
      body["managerUserid"] = request.managerUserid;
    }

    if (!Util.isUnset(request.mobile)) {
      body["mobile"] = request.mobile;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.nickname)) {
      body["nickname"] = request.nickname;
    }

    if (!Util.isUnset(request.orgEmail)) {
      body["orgEmail"] = request.orgEmail;
    }

    if (!Util.isUnset(request.orgEmailType)) {
      body["orgEmailType"] = request.orgEmailType;
    }

    if (!Util.isUnset(request.remark)) {
      body["remark"] = request.remark;
    }

    if (!Util.isUnset(request.seniorMode)) {
      body["seniorMode"] = request.seniorMode;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.title)) {
      body["title"] = request.title;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    if (!Util.isUnset(request.workPlace)) {
      body["workPlace"] = request.workPlace;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeContactExclusive",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/exclusiveAccounts/users`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeContactExclusiveResponse>(await this.execute(params, req, runtime), new UpdateCollegeContactExclusiveResponse({}));
  }

  /**
   * 更新高校账号用户
   * 
   * @param request - UpdateCollegeContactExclusiveRequest
   * @returns UpdateCollegeContactExclusiveResponse
   */
  async updateCollegeContactExclusive(request: UpdateCollegeContactExclusiveRequest): Promise<UpdateCollegeContactExclusiveResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeContactExclusiveHeaders({ });
    return await this.updateCollegeContactExclusiveWithOptions(request, headers, runtime);
  }

  /**
   * 更新高校通讯录场景架构
   * 
   * @param request - UpdateCollegeContactSceneStruRequest
   * @param headers - UpdateCollegeContactSceneStruHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeContactSceneStruResponse
   */
  async updateCollegeContactSceneStruWithOptions(request: UpdateCollegeContactSceneStruRequest, headers: UpdateCollegeContactSceneStruHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeContactSceneStruResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.order)) {
      body["order"] = request.order;
    }

    if (!Util.isUnset(request.sourceIdentifier)) {
      body["sourceIdentifier"] = request.sourceIdentifier;
    }

    if (!Util.isUnset(request.struBrief)) {
      body["struBrief"] = request.struBrief;
    }

    if (!Util.isUnset(request.struId)) {
      body["struId"] = request.struId;
    }

    if (!Util.isUnset(request.struName)) {
      body["struName"] = request.struName;
    }

    if (!Util.isUnset(request.struType)) {
      body["struType"] = request.struType;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeContactSceneStru",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/depts/structures/scenes`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeContactSceneStruResponse>(await this.execute(params, req, runtime), new UpdateCollegeContactSceneStruResponse({}));
  }

  /**
   * 更新高校通讯录场景架构
   * 
   * @param request - UpdateCollegeContactSceneStruRequest
   * @returns UpdateCollegeContactSceneStruResponse
   */
  async updateCollegeContactSceneStru(request: UpdateCollegeContactSceneStruRequest): Promise<UpdateCollegeContactSceneStruResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeContactSceneStruHeaders({ });
    return await this.updateCollegeContactSceneStruWithOptions(request, headers, runtime);
  }

  /**
   * 更新个人账号用户
   * 
   * @param request - UpdateCollegeContactUserRequest
   * @param headers - UpdateCollegeContactUserHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeContactUserResponse
   */
  async updateCollegeContactUserWithOptions(request: UpdateCollegeContactUserRequest, headers: UpdateCollegeContactUserHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeContactUserResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.deptIdList)) {
      body["deptIdList"] = request.deptIdList;
    }

    if (!Util.isUnset(request.deptOrderList)) {
      body["deptOrderList"] = request.deptOrderList;
    }

    if (!Util.isUnset(request.deptPositionSet)) {
      body["deptPositionSet"] = request.deptPositionSet;
    }

    if (!Util.isUnset(request.deptTitleList)) {
      body["deptTitleList"] = request.deptTitleList;
    }

    if (!Util.isUnset(request.email)) {
      body["email"] = request.email;
    }

    if (!Util.isUnset(request.empType)) {
      body["empType"] = request.empType;
    }

    if (!Util.isUnset(request.extension)) {
      body["extension"] = request.extension;
    }

    if (!Util.isUnset(request.forceUpdateFields)) {
      body["forceUpdateFields"] = request.forceUpdateFields;
    }

    if (!Util.isUnset(request.hideMobile)) {
      body["hideMobile"] = request.hideMobile;
    }

    if (!Util.isUnset(request.hiredDate)) {
      body["hiredDate"] = request.hiredDate;
    }

    if (!Util.isUnset(request.jobNumber)) {
      body["jobNumber"] = request.jobNumber;
    }

    if (!Util.isUnset(request.language)) {
      body["language"] = request.language;
    }

    if (!Util.isUnset(request.mainDeptId)) {
      body["mainDeptId"] = request.mainDeptId;
    }

    if (!Util.isUnset(request.managerUserid)) {
      body["managerUserid"] = request.managerUserid;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.orgEmail)) {
      body["orgEmail"] = request.orgEmail;
    }

    if (!Util.isUnset(request.remark)) {
      body["remark"] = request.remark;
    }

    if (!Util.isUnset(request.seniorMode)) {
      body["seniorMode"] = request.seniorMode;
    }

    if (!Util.isUnset(request.telephone)) {
      body["telephone"] = request.telephone;
    }

    if (!Util.isUnset(request.title)) {
      body["title"] = request.title;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    if (!Util.isUnset(request.workPlace)) {
      body["workPlace"] = request.workPlace;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeContactUser",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/personalAccounts/users`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeContactUserResponse>(await this.execute(params, req, runtime), new UpdateCollegeContactUserResponse({}));
  }

  /**
   * 更新个人账号用户
   * 
   * @param request - UpdateCollegeContactUserRequest
   * @returns UpdateCollegeContactUserResponse
   */
  async updateCollegeContactUser(request: UpdateCollegeContactUserRequest): Promise<UpdateCollegeContactUserResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeContactUserHeaders({ });
    return await this.updateCollegeContactUserWithOptions(request, headers, runtime);
  }

  /**
   * 修改用户成员类型
   * 
   * @param request - UpdateCollegeUserEmpTypeRequest
   * @param headers - UpdateCollegeUserEmpTypeHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCollegeUserEmpTypeResponse
   */
  async updateCollegeUserEmpTypeWithOptions(request: UpdateCollegeUserEmpTypeRequest, headers: UpdateCollegeUserEmpTypeHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCollegeUserEmpTypeResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.empType)) {
      body["empType"] = request.empType;
    }

    if (!Util.isUnset(request.userid)) {
      body["userid"] = request.userid;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCollegeUserEmpType",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/collegeContact/empTypes/change`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateCollegeUserEmpTypeResponse>(await this.execute(params, req, runtime), new UpdateCollegeUserEmpTypeResponse({}));
  }

  /**
   * 修改用户成员类型
   * 
   * @param request - UpdateCollegeUserEmpTypeRequest
   * @returns UpdateCollegeUserEmpTypeResponse
   */
  async updateCollegeUserEmpType(request: UpdateCollegeUserEmpTypeRequest): Promise<UpdateCollegeUserEmpTypeResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCollegeUserEmpTypeHeaders({ });
    return await this.updateCollegeUserEmpTypeWithOptions(request, headers, runtime);
  }

  /**
   * 更新班级课程表（调代课等微调场景）
   * 
   * @param request - UpdateCoursesOfClassRequest
   * @param headers - UpdateCoursesOfClassHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateCoursesOfClassResponse
   */
  async updateCoursesOfClassWithOptions(classId: string, request: UpdateCoursesOfClassRequest, headers: UpdateCoursesOfClassHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateCoursesOfClassResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courses)) {
      body["courses"] = request.courses;
    }

    if (!Util.isUnset(request.sectionConfig)) {
      body["sectionConfig"] = request.sectionConfig;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateCoursesOfClass",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/classes/${classId}/courses/schedules`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<UpdateCoursesOfClassResponse>(await this.execute(params, req, runtime), new UpdateCoursesOfClassResponse({}));
  }

  /**
   * 更新班级课程表（调代课等微调场景）
   * 
   * @param request - UpdateCoursesOfClassRequest
   * @returns UpdateCoursesOfClassResponse
   */
  async updateCoursesOfClass(classId: string, request: UpdateCoursesOfClassRequest): Promise<UpdateCoursesOfClassResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateCoursesOfClassHeaders({ });
    return await this.updateCoursesOfClassWithOptions(classId, request, headers, runtime);
  }

  /**
   * 更新评价表现未读数量
   * 
   * @param request - UpdateEvaluatePerformanceCountRequest
   * @param headers - UpdateEvaluatePerformanceCountHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateEvaluatePerformanceCountResponse
   */
  async updateEvaluatePerformanceCountWithOptions(request: UpdateEvaluatePerformanceCountRequest, headers: UpdateEvaluatePerformanceCountHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateEvaluatePerformanceCountResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.teacherId)) {
      body["teacherId"] = request.teacherId;
    }

    if (!Util.isUnset(request.unreadData)) {
      body["unreadData"] = request.unreadData;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateEvaluatePerformanceCount",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/evaluations/unreadCounts`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateEvaluatePerformanceCountResponse>(await this.execute(params, req, runtime), new UpdateEvaluatePerformanceCountResponse({}));
  }

  /**
   * 更新评价表现未读数量
   * 
   * @param request - UpdateEvaluatePerformanceCountRequest
   * @returns UpdateEvaluatePerformanceCountResponse
   */
  async updateEvaluatePerformanceCount(request: UpdateEvaluatePerformanceCountRequest): Promise<UpdateEvaluatePerformanceCountResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateEvaluatePerformanceCountHeaders({ });
    return await this.updateEvaluatePerformanceCountWithOptions(request, headers, runtime);
  }

  /**
   * 更新家长信息
   * 
   * @param request - UpdateGuardianRequest
   * @param headers - UpdateGuardianHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateGuardianResponse
   */
  async updateGuardianWithOptions(request: UpdateGuardianRequest, headers: UpdateGuardianHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateGuardianResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.relation)) {
      body["relation"] = request.relation;
    }

    if (!Util.isUnset(request.stuId)) {
      body["stuId"] = request.stuId;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateGuardian",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/guardians/infos`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateGuardianResponse>(await this.execute(params, req, runtime), new UpdateGuardianResponse({}));
  }

  /**
   * 更新家长信息
   * 
   * @param request - UpdateGuardianRequest
   * @returns UpdateGuardianResponse
   */
  async updateGuardian(request: UpdateGuardianRequest): Promise<UpdateGuardianResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateGuardianHeaders({ });
    return await this.updateGuardianWithOptions(request, headers, runtime);
  }

  /**
   * 添加物理教室信息
   * 
   * @param request - UpdatePhysicalClassroomRequest
   * @param headers - UpdatePhysicalClassroomHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdatePhysicalClassroomResponse
   */
  async updatePhysicalClassroomWithOptions(request: UpdatePhysicalClassroomRequest, headers: UpdatePhysicalClassroomHeaders, runtime: $Util.RuntimeOptions): Promise<UpdatePhysicalClassroomResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classroomBuilding)) {
      body["classroomBuilding"] = request.classroomBuilding;
    }

    if (!Util.isUnset(request.classroomCampus)) {
      body["classroomCampus"] = request.classroomCampus;
    }

    if (!Util.isUnset(request.classroomFloor)) {
      body["classroomFloor"] = request.classroomFloor;
    }

    if (!Util.isUnset(request.classroomId)) {
      body["classroomId"] = request.classroomId;
    }

    if (!Util.isUnset(request.classroomName)) {
      body["classroomName"] = request.classroomName;
    }

    if (!Util.isUnset(request.classroomNumber)) {
      body["classroomNumber"] = request.classroomNumber;
    }

    if (!Util.isUnset(request.directBroadcast)) {
      body["directBroadcast"] = request.directBroadcast;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdatePhysicalClassroom",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/physicalClassrooms`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<UpdatePhysicalClassroomResponse>(await this.execute(params, req, runtime), new UpdatePhysicalClassroomResponse({}));
  }

  /**
   * 添加物理教室信息
   * 
   * @param request - UpdatePhysicalClassroomRequest
   * @returns UpdatePhysicalClassroomResponse
   */
  async updatePhysicalClassroom(request: UpdatePhysicalClassroomRequest): Promise<UpdatePhysicalClassroomResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdatePhysicalClassroomHeaders({ });
    return await this.updatePhysicalClassroomWithOptions(request, headers, runtime);
  }

  /**
   * 更新专递课堂课程
   * 
   * @param request - UpdateRemoteClassCourseRequest
   * @param headers - UpdateRemoteClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateRemoteClassCourseResponse
   */
  async updateRemoteClassCourseWithOptions(request: UpdateRemoteClassCourseRequest, headers: UpdateRemoteClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateRemoteClassCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.attendParticipants)) {
      body["attendParticipants"] = request.attendParticipants;
    }

    if (!Util.isUnset(request.authCode)) {
      body["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.courseCode)) {
      body["courseCode"] = request.courseCode;
    }

    if (!Util.isUnset(request.courseName)) {
      body["courseName"] = request.courseName;
    }

    if (!Util.isUnset(request.endTime)) {
      body["endTime"] = request.endTime;
    }

    if (!Util.isUnset(request.startTime)) {
      body["startTime"] = request.startTime;
    }

    if (!Util.isUnset(request.teachingParticipant)) {
      body["teachingParticipant"] = request.teachingParticipant;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateRemoteClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/courses`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<UpdateRemoteClassCourseResponse>(await this.execute(params, req, runtime), new UpdateRemoteClassCourseResponse({}));
  }

  /**
   * 更新专递课堂课程
   * 
   * @param request - UpdateRemoteClassCourseRequest
   * @returns UpdateRemoteClassCourseResponse
   */
  async updateRemoteClassCourse(request: UpdateRemoteClassCourseRequest): Promise<UpdateRemoteClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateRemoteClassCourseHeaders({ });
    return await this.updateRemoteClassCourseWithOptions(request, headers, runtime);
  }

  /**
   * 更新设备名称
   * 
   * @param request - UpdateRemoteClassDeviceRequest
   * @param headers - UpdateRemoteClassDeviceHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateRemoteClassDeviceResponse
   */
  async updateRemoteClassDeviceWithOptions(request: UpdateRemoteClassDeviceRequest, headers: UpdateRemoteClassDeviceHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateRemoteClassDeviceResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.authCode)) {
      query["authCode"] = request.authCode;
    }

    if (!Util.isUnset(request.deviceCode)) {
      query["deviceCode"] = request.deviceCode;
    }

    if (!Util.isUnset(request.deviceName)) {
      query["deviceName"] = request.deviceName;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
    });
    let params = new $OpenApi.Params({
      action: "UpdateRemoteClassDevice",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/remoteClasses/deviceNames`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateRemoteClassDeviceResponse>(await this.execute(params, req, runtime), new UpdateRemoteClassDeviceResponse({}));
  }

  /**
   * 更新设备名称
   * 
   * @param request - UpdateRemoteClassDeviceRequest
   * @returns UpdateRemoteClassDeviceResponse
   */
  async updateRemoteClassDevice(request: UpdateRemoteClassDeviceRequest): Promise<UpdateRemoteClassDeviceResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateRemoteClassDeviceHeaders({ });
    return await this.updateRemoteClassDeviceWithOptions(request, headers, runtime);
  }

  /**
   * 修改学生信息
   * 
   * @param request - UpdateStudentRequest
   * @param headers - UpdateStudentHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateStudentResponse
   */
  async updateStudentWithOptions(request: UpdateStudentRequest, headers: UpdateStudentHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateStudentResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.name)) {
      body["name"] = request.name;
    }

    if (!Util.isUnset(request.operator)) {
      body["operator"] = request.operator;
    }

    if (!Util.isUnset(request.studentNo)) {
      body["studentNo"] = request.studentNo;
    }

    if (!Util.isUnset(request.userId)) {
      body["userId"] = request.userId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateStudent",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/students/infos`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateStudentResponse>(await this.execute(params, req, runtime), new UpdateStudentResponse({}));
  }

  /**
   * 修改学生信息
   * 
   * @param request - UpdateStudentRequest
   * @returns UpdateStudentResponse
   */
  async updateStudent(request: UpdateStudentRequest): Promise<UpdateStudentResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateStudentHeaders({ });
    return await this.updateStudentWithOptions(request, headers, runtime);
  }

  /**
   * 更新大学课程组
   * 
   * @param request - UpdateUniversityCourseGroupRequest
   * @param headers - UpdateUniversityCourseGroupHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateUniversityCourseGroupResponse
   */
  async updateUniversityCourseGroupWithOptions(request: UpdateUniversityCourseGroupRequest, headers: UpdateUniversityCourseGroupHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateUniversityCourseGroupResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.opUserId)) {
      query["opUserId"] = request.opUserId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.courseGroupCode)) {
      body["courseGroupCode"] = request.courseGroupCode;
    }

    if (!Util.isUnset(request.courseGroupIntroduce)) {
      body["courseGroupIntroduce"] = request.courseGroupIntroduce;
    }

    if (!Util.isUnset(request.courseGroupName)) {
      body["courseGroupName"] = request.courseGroupName;
    }

    if (!Util.isUnset(request.courserGroupItemModels)) {
      body["courserGroupItemModels"] = request.courserGroupItemModels;
    }

    if (!Util.isUnset(request.ext)) {
      body["ext"] = request.ext;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      query: OpenApiUtil.query(query),
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UpdateUniversityCourseGroup",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/universities/courseGroups`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "json",
      bodyType: "json",
    });
    return $tea.cast<UpdateUniversityCourseGroupResponse>(await this.execute(params, req, runtime), new UpdateUniversityCourseGroupResponse({}));
  }

  /**
   * 更新大学课程组
   * 
   * @param request - UpdateUniversityCourseGroupRequest
   * @returns UpdateUniversityCourseGroupResponse
   */
  async updateUniversityCourseGroup(request: UpdateUniversityCourseGroupRequest): Promise<UpdateUniversityCourseGroupResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateUniversityCourseGroupHeaders({ });
    return await this.updateUniversityCourseGroupWithOptions(request, headers, runtime);
  }

  /**
   * 上传学情图片回调
   * 
   * @param request - UploadLearningDataCallbackRequest
   * @param headers - UploadLearningDataCallbackHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UploadLearningDataCallbackResponse
   */
  async uploadLearningDataCallbackWithOptions(request: UploadLearningDataCallbackRequest, headers: UploadLearningDataCallbackHeaders, runtime: $Util.RuntimeOptions): Promise<UploadLearningDataCallbackResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      body["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.bizType)) {
      body["bizType"] = request.bizType;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.deptId)) {
      body["deptId"] = request.deptId;
    }

    if (!Util.isUnset(request.generatedTime)) {
      body["generatedTime"] = request.generatedTime;
    }

    if (!Util.isUnset(request.studentUserId)) {
      body["studentUserId"] = request.studentUserId;
    }

    if (!Util.isUnset(request.subjectCode)) {
      body["subjectCode"] = request.subjectCode;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "UploadLearningDataCallback",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/uploadLearnings/datas/callback`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UploadLearningDataCallbackResponse>(await this.execute(params, req, runtime), new UploadLearningDataCallbackResponse({}));
  }

  /**
   * 上传学情图片回调
   * 
   * @param request - UploadLearningDataCallbackRequest
   * @returns UploadLearningDataCallbackResponse
   */
  async uploadLearningDataCallback(request: UploadLearningDataCallbackRequest): Promise<UploadLearningDataCallbackResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UploadLearningDataCallbackHeaders({ });
    return await this.uploadLearningDataCallbackWithOptions(request, headers, runtime);
  }

  /**
   * 视讯PAAS接口代理
   * 
   * @param request - VPaasProxyRequest
   * @param headers - VPaasProxyHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns VPaasProxyResponse
   */
  async vPaasProxyWithOptions(request: VPaasProxyRequest, headers: VPaasProxyHeaders, runtime: $Util.RuntimeOptions): Promise<VPaasProxyResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.actionCode)) {
      body["actionCode"] = request.actionCode;
    }

    if (!Util.isUnset(request.params)) {
      body["params"] = request.params;
    }

    if (!Util.isUnset(request.publicKey)) {
      body["publicKey"] = request.publicKey;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "VPaasProxy",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/vpaas/proxy`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<VPaasProxyResponse>(await this.execute(params, req, runtime), new VPaasProxyResponse({}));
  }

  /**
   * 视讯PAAS接口代理
   * 
   * @param request - VPaasProxyRequest
   * @returns VPaasProxyResponse
   */
  async vPaasProxy(request: VPaasProxyRequest): Promise<VPaasProxyResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new VPaasProxyHeaders({ });
    return await this.vPaasProxyWithOptions(request, headers, runtime);
  }

  /**
   * 校验开学季任务是否完成
   * 
   * @param request - ValidateNewGradeManagerRequest
   * @param headers - ValidateNewGradeManagerHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ValidateNewGradeManagerResponse
   */
  async validateNewGradeManagerWithOptions(request: ValidateNewGradeManagerRequest, headers: ValidateNewGradeManagerHeaders, runtime: $Util.RuntimeOptions): Promise<ValidateNewGradeManagerResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.unionId)) {
      body["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ValidateNewGradeManager",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/newGrades/tasks/validate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ValidateNewGradeManagerResponse>(await this.execute(params, req, runtime), new ValidateNewGradeManagerResponse({}));
  }

  /**
   * 校验开学季任务是否完成
   * 
   * @param request - ValidateNewGradeManagerRequest
   * @returns ValidateNewGradeManagerResponse
   */
  async validateNewGradeManager(request: ValidateNewGradeManagerRequest): Promise<ValidateNewGradeManagerResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ValidateNewGradeManagerHeaders({ });
    return await this.validateNewGradeManagerWithOptions(request, headers, runtime);
  }

  /**
   * 校验用户的教育角色
   * 
   * @param request - ValidateUserRoleRequest
   * @param headers - ValidateUserRoleHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns ValidateUserRoleResponse
   */
  async validateUserRoleWithOptions(request: ValidateUserRoleRequest, headers: ValidateUserRoleHeaders, runtime: $Util.RuntimeOptions): Promise<ValidateUserRoleResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.timeThreshold)) {
      body["timeThreshold"] = request.timeThreshold;
    }

    if (!Util.isUnset(request.unionId)) {
      body["unionId"] = request.unionId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "ValidateUserRole",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/roles/validate`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<ValidateUserRoleResponse>(await this.execute(params, req, runtime), new ValidateUserRoleResponse({}));
  }

  /**
   * 校验用户的教育角色
   * 
   * @param request - ValidateUserRoleRequest
   * @returns ValidateUserRoleResponse
   */
  async validateUserRole(request: ValidateUserRoleRequest): Promise<ValidateUserRoleResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new ValidateUserRoleHeaders({ });
    return await this.validateUserRoleWithOptions(request, headers, runtime);
  }

  /**
   * 校验教育组织
   * 
   * @param request - VerifyEduOrgCertificationRequest
   * @param headers - VerifyEduOrgCertificationHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns VerifyEduOrgCertificationResponse
   */
  async verifyEduOrgCertificationWithOptions(request: VerifyEduOrgCertificationRequest, headers: VerifyEduOrgCertificationHeaders, runtime: $Util.RuntimeOptions): Promise<VerifyEduOrgCertificationResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.targetCorpId)) {
      body["targetCorpId"] = request.targetCorpId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "VerifyEduOrgCertification",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/orgs/certifications/verify`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<VerifyEduOrgCertificationResponse>(await this.execute(params, req, runtime), new VerifyEduOrgCertificationResponse({}));
  }

  /**
   * 校验教育组织
   * 
   * @param request - VerifyEduOrgCertificationRequest
   * @returns VerifyEduOrgCertificationResponse
   */
  async verifyEduOrgCertification(request: VerifyEduOrgCertificationRequest): Promise<VerifyEduOrgCertificationResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new VerifyEduOrgCertificationHeaders({ });
    return await this.verifyEduOrgCertificationWithOptions(request, headers, runtime);
  }

  /**
   * 校验教育用户特殊身份权限
   * 
   * @param request - VerifyEduUserCertificationRequest
   * @param headers - VerifyEduUserCertificationHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns VerifyEduUserCertificationResponse
   */
  async verifyEduUserCertificationWithOptions(request: VerifyEduUserCertificationRequest, headers: VerifyEduUserCertificationHeaders, runtime: $Util.RuntimeOptions): Promise<VerifyEduUserCertificationResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizCode)) {
      body["bizCode"] = request.bizCode;
    }

    if (!Util.isUnset(request.targetCorpId)) {
      body["targetCorpId"] = request.targetCorpId;
    }

    if (!Util.isUnset(request.targetUserId)) {
      body["targetUserId"] = request.targetUserId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "VerifyEduUserCertification",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/users/certifications/verify`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<VerifyEduUserCertificationResponse>(await this.execute(params, req, runtime), new VerifyEduUserCertificationResponse({}));
  }

  /**
   * 校验教育用户特殊身份权限
   * 
   * @param request - VerifyEduUserCertificationRequest
   * @returns VerifyEduUserCertificationResponse
   */
  async verifyEduUserCertification(request: VerifyEduUserCertificationRequest): Promise<VerifyEduUserCertificationResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new VerifyEduUserCertificationHeaders({ });
    return await this.verifyEduUserCertificationWithOptions(request, headers, runtime);
  }

  /**
   * 查询班级课程
   * 
   * @param request - QueryClassCourseRequest
   * @param headers - QueryClassCourseHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryClassCourseResponse
   */
  async queryClassCourseWithOptions(request: QueryClassCourseRequest, headers: QueryClassCourseHeaders, runtime: $Util.RuntimeOptions): Promise<QueryClassCourseResponse> {
    Util.validateModel(request);
    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.classId)) {
      body["classId"] = request.classId;
    }

    if (!Util.isUnset(request.corpId)) {
      body["corpId"] = request.corpId;
    }

    if (!Util.isUnset(request.isvCode)) {
      body["isvCode"] = request.isvCode;
    }

    if (!Util.isUnset(request.isvCourseId)) {
      body["isvCourseId"] = request.isvCourseId;
    }

    let realHeaders : {[key: string ]: string} = { };
    if (!Util.isUnset(headers.commonHeaders)) {
      realHeaders = headers.commonHeaders;
    }

    if (!Util.isUnset(headers.xAcsDingtalkAccessToken)) {
      realHeaders["x-acs-dingtalk-access-token"] = Util.toJSONString(headers.xAcsDingtalkAccessToken);
    }

    let req = new $OpenApi.OpenApiRequest({
      headers: realHeaders,
      body: OpenApiUtil.parseToMap(body),
    });
    let params = new $OpenApi.Params({
      action: "queryClassCourse",
      version: "edu_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/edu/kits/classes/courses/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryClassCourseResponse>(await this.execute(params, req, runtime), new QueryClassCourseResponse({}));
  }

  /**
   * 查询班级课程
   * 
   * @param request - QueryClassCourseRequest
   * @returns QueryClassCourseResponse
   */
  async queryClassCourse(request: QueryClassCourseRequest): Promise<QueryClassCourseResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryClassCourseHeaders({ });
    return await this.queryClassCourseWithOptions(request, headers, runtime);
  }

}
