// 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 BatchGetMinutesDetailsHeaders 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 BatchGetMinutesDetailsRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  taskUuids?: string[];
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      taskUuids: 'taskUuids',
      unionId: 'unionId',
    };
  }

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

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

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

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

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

export class BatchGetMinutesDetailsResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: BatchGetMinutesDetailsResponseBody;
  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: BatchGetMinutesDetailsResponseBody,
    };
  }

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

export class DeleteMinutesHeaders 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 DeleteMinutesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  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 DeleteMinutesResponseBody extends $tea.Model {
  taskUuid?: string;
  static names(): { [key: string]: string } {
    return {
      taskUuid: 'taskUuid',
    };
  }

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

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

export class DeleteMinutesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: DeleteMinutesResponseBody;
  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: DeleteMinutesResponseBody,
    };
  }

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

export class OpenQueryMinutesSummaryHeaders 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 OpenQueryMinutesSummaryRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  taskUuid?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      taskUuid: 'taskUuid',
      unionId: 'unionId',
    };
  }

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

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

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

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

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

export class OpenQueryMinutesSummaryResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: OpenQueryMinutesSummaryResponseBody;
  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: OpenQueryMinutesSummaryResponseBody,
    };
  }

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

export class QueryBizMinutesHeaders 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 QueryBizMinutesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  bizId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  bizType?: number;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      bizId: 'bizId',
      bizType: 'bizType',
      unionId: 'unionId',
    };
  }

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

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

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

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

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

export class QueryBizMinutesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryBizMinutesResponseBody;
  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: QueryBizMinutesResponseBody,
    };
  }

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

export class QueryCreateMinutesListHeaders 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 QueryCreateMinutesListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  maxResults?: number;
  nextToken?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      maxResults: 'maxResults',
      nextToken: 'nextToken',
      unionId: 'unionId',
    };
  }

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

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

export class QueryCreateMinutesListResponseBody extends $tea.Model {
  hasNext?: boolean;
  minutesDetails?: QueryCreateMinutesListResponseBodyMinutesDetails[];
  nextToken?: string;
  static names(): { [key: string]: string } {
    return {
      hasNext: 'hasNext',
      minutesDetails: 'minutesDetails',
      nextToken: 'nextToken',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasNext: 'boolean',
      minutesDetails: { 'type': 'array', 'itemType': QueryCreateMinutesListResponseBodyMinutesDetails },
      nextToken: 'string',
    };
  }

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

export class QueryCreateMinutesListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryCreateMinutesListResponseBody;
  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: QueryCreateMinutesListResponseBody,
    };
  }

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

export class QueryMinutesPlayInfoHeaders 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 QueryMinutesPlayInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  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 QueryMinutesPlayInfoResponseBody extends $tea.Model {
  playInfo?: QueryMinutesPlayInfoResponseBodyPlayInfo;
  static names(): { [key: string]: string } {
    return {
      playInfo: 'playInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      playInfo: QueryMinutesPlayInfoResponseBodyPlayInfo,
    };
  }

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

export class QueryMinutesPlayInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryMinutesPlayInfoResponseBody;
  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: QueryMinutesPlayInfoResponseBody,
    };
  }

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

export class QueryMinutesShareListHeaders 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 QueryMinutesShareListRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  maxResults?: number;
  nextToken?: string;
  scene?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      maxResults: 'maxResults',
      nextToken: 'nextToken',
      scene: 'scene',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      maxResults: 'number',
      nextToken: 'string',
      scene: 'string',
      unionId: 'string',
    };
  }

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

export class QueryMinutesShareListResponseBody extends $tea.Model {
  hasNext?: boolean;
  minutesDetails?: QueryMinutesShareListResponseBodyMinutesDetails[];
  nextToken?: string;
  static names(): { [key: string]: string } {
    return {
      hasNext: 'hasNext',
      minutesDetails: 'minutesDetails',
      nextToken: 'nextToken',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasNext: 'boolean',
      minutesDetails: { 'type': 'array', 'itemType': QueryMinutesShareListResponseBodyMinutesDetails },
      nextToken: 'string',
    };
  }

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

export class QueryMinutesShareListResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryMinutesShareListResponseBody;
  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: QueryMinutesShareListResponseBody,
    };
  }

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

export class QueryMinutesStatusHeaders 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 QueryMinutesStatusRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  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 QueryMinutesStatusResponseBody extends $tea.Model {
  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 QueryMinutesStatusResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryMinutesStatusResponseBody;
  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: QueryMinutesStatusResponseBody,
    };
  }

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

export class QueryMinutesTextHeaders 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 QueryMinutesTextRequest extends $tea.Model {
  direction?: number;
  maxResults?: number;
  nextToken?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      direction: 'direction',
      maxResults: 'maxResults',
      nextToken: 'nextToken',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      direction: 'number',
      maxResults: 'number',
      nextToken: 'string',
      unionId: 'string',
    };
  }

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

export class QueryMinutesTextResponseBody extends $tea.Model {
  hasNext?: boolean;
  nextToken?: string;
  paragraphList?: QueryMinutesTextResponseBodyParagraphList[];
  static names(): { [key: string]: string } {
    return {
      hasNext: 'hasNext',
      nextToken: 'nextToken',
      paragraphList: 'paragraphList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      hasNext: 'boolean',
      nextToken: 'string',
      paragraphList: { 'type': 'array', 'itemType': QueryMinutesTextResponseBodyParagraphList },
    };
  }

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

export class QueryMinutesTextResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryMinutesTextResponseBody;
  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: QueryMinutesTextResponseBody,
    };
  }

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

export class QueryScheduleConfMinutesHeaders 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 QueryScheduleConfMinutesRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  eventId?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      eventId: 'eventId',
      unionId: 'unionId',
    };
  }

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

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

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

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

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

export class QueryScheduleConfMinutesResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryScheduleConfMinutesResponseBody;
  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: QueryScheduleConfMinutesResponseBody,
    };
  }

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

export class QueryUploadVideoPlayInfoHeaders 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 QueryUploadVideoPlayInfoRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  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 QueryUploadVideoPlayInfoResponseBody extends $tea.Model {
  playInfo?: QueryUploadVideoPlayInfoResponseBodyPlayInfo;
  static names(): { [key: string]: string } {
    return {
      playInfo: 'playInfo',
    };
  }

  static types(): { [key: string]: any } {
    return {
      playInfo: QueryUploadVideoPlayInfoResponseBodyPlayInfo,
    };
  }

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

export class QueryUploadVideoPlayInfoResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: QueryUploadVideoPlayInfoResponseBody;
  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: QueryUploadVideoPlayInfoResponseBody,
    };
  }

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

export class UpdateMinutesTitleHeaders 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 UpdateMinutesTitleRequest extends $tea.Model {
  /**
   * @remarks
   * This parameter is required.
   */
  title?: string;
  /**
   * @remarks
   * This parameter is required.
   */
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      title: 'title',
      unionId: 'unionId',
    };
  }

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

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

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

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

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

export class UpdateMinutesTitleResponse extends $tea.Model {
  headers?: { [key: string]: string };
  statusCode?: number;
  body?: UpdateMinutesTitleResponseBody;
  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: UpdateMinutesTitleResponseBody,
    };
  }

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

export class BatchGetMinutesDetailsResponseBodyMinutesDetails extends $tea.Model {
  bizType?: number;
  creatorNick?: string;
  creatorUnionId?: string;
  durationMicros?: number;
  isDeleted?: number;
  size?: number;
  startTime?: number;
  status?: number;
  taskUuid?: string;
  title?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      creatorNick: 'creatorNick',
      creatorUnionId: 'creatorUnionId',
      durationMicros: 'durationMicros',
      isDeleted: 'isDeleted',
      size: 'size',
      startTime: 'startTime',
      status: 'status',
      taskUuid: 'taskUuid',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      creatorNick: 'string',
      creatorUnionId: 'string',
      durationMicros: 'number',
      isDeleted: 'number',
      size: 'number',
      startTime: 'number',
      status: 'number',
      taskUuid: 'string',
      title: 'string',
    };
  }

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

export class QueryBizMinutesResponseBodyMinutesDetails extends $tea.Model {
  bizType?: number;
  creatorNick?: string;
  creatorUnionId?: string;
  durationMicros?: number;
  isDeleted?: number;
  size?: number;
  startTime?: number;
  status?: number;
  taskUuid?: string;
  title?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      creatorNick: 'creatorNick',
      creatorUnionId: 'creatorUnionId',
      durationMicros: 'durationMicros',
      isDeleted: 'isDeleted',
      size: 'size',
      startTime: 'startTime',
      status: 'status',
      taskUuid: 'taskUuid',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      creatorNick: 'string',
      creatorUnionId: 'string',
      durationMicros: 'number',
      isDeleted: 'number',
      size: 'number',
      startTime: 'number',
      status: 'number',
      taskUuid: 'string',
      title: 'string',
    };
  }

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

export class QueryCreateMinutesListResponseBodyMinutesDetails extends $tea.Model {
  bizType?: number;
  creatorNick?: string;
  creatorUnionId?: string;
  durationMicros?: number;
  isDeleted?: number;
  size?: number;
  startTime?: number;
  status?: number;
  taskUuid?: string;
  title?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      creatorNick: 'creatorNick',
      creatorUnionId: 'creatorUnionId',
      durationMicros: 'durationMicros',
      isDeleted: 'isDeleted',
      size: 'size',
      startTime: 'startTime',
      status: 'status',
      taskUuid: 'taskUuid',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      creatorNick: 'string',
      creatorUnionId: 'string',
      durationMicros: 'number',
      isDeleted: 'number',
      size: 'number',
      startTime: 'number',
      status: 'number',
      taskUuid: 'string',
      title: 'string',
    };
  }

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

export class QueryMinutesPlayInfoResponseBodyPlayInfo extends $tea.Model {
  downloadUrl?: string;
  duration?: string;
  mediaType?: string;
  playUrl?: string;
  size?: string;
  status?: string;
  static names(): { [key: string]: string } {
    return {
      downloadUrl: 'downloadUrl',
      duration: 'duration',
      mediaType: 'mediaType',
      playUrl: 'playUrl',
      size: 'size',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      downloadUrl: 'string',
      duration: 'string',
      mediaType: 'string',
      playUrl: 'string',
      size: 'string',
      status: 'string',
    };
  }

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

export class QueryMinutesShareListResponseBodyMinutesDetails extends $tea.Model {
  bizType?: number;
  creatorNick?: string;
  creatorUnionId?: string;
  durationMicros?: number;
  isDeleted?: number;
  size?: number;
  startTime?: number;
  status?: number;
  taskUuid?: string;
  title?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      creatorNick: 'creatorNick',
      creatorUnionId: 'creatorUnionId',
      durationMicros: 'durationMicros',
      isDeleted: 'isDeleted',
      size: 'size',
      startTime: 'startTime',
      status: 'status',
      taskUuid: 'taskUuid',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      creatorNick: 'string',
      creatorUnionId: 'string',
      durationMicros: 'number',
      isDeleted: 'number',
      size: 'number',
      startTime: 'number',
      status: 'number',
      taskUuid: 'string',
      title: 'string',
    };
  }

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

export class QueryMinutesTextResponseBodyParagraphListSentenceListWordList extends $tea.Model {
  endTime?: number;
  startTime?: number;
  word?: string;
  wordId?: string;
  static names(): { [key: string]: string } {
    return {
      endTime: 'endTime',
      startTime: 'startTime',
      word: 'word',
      wordId: 'wordId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      endTime: 'number',
      startTime: 'number',
      word: 'string',
      wordId: 'string',
    };
  }

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

export class QueryMinutesTextResponseBodyParagraphListSentenceList extends $tea.Model {
  endTime?: number;
  sentence?: string;
  startTime?: number;
  wordList?: QueryMinutesTextResponseBodyParagraphListSentenceListWordList[];
  static names(): { [key: string]: string } {
    return {
      endTime: 'endTime',
      sentence: 'sentence',
      startTime: 'startTime',
      wordList: 'wordList',
    };
  }

  static types(): { [key: string]: any } {
    return {
      endTime: 'number',
      sentence: 'string',
      startTime: 'number',
      wordList: { 'type': 'array', 'itemType': QueryMinutesTextResponseBodyParagraphListSentenceListWordList },
    };
  }

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

export class QueryMinutesTextResponseBodyParagraphList extends $tea.Model {
  endTime?: number;
  nickName?: string;
  paragraph?: string;
  paragraphId?: number;
  recordId?: number;
  sentenceList?: QueryMinutesTextResponseBodyParagraphListSentenceList[];
  startTime?: number;
  unionId?: string;
  static names(): { [key: string]: string } {
    return {
      endTime: 'endTime',
      nickName: 'nickName',
      paragraph: 'paragraph',
      paragraphId: 'paragraphId',
      recordId: 'recordId',
      sentenceList: 'sentenceList',
      startTime: 'startTime',
      unionId: 'unionId',
    };
  }

  static types(): { [key: string]: any } {
    return {
      endTime: 'number',
      nickName: 'string',
      paragraph: 'string',
      paragraphId: 'number',
      recordId: 'number',
      sentenceList: { 'type': 'array', 'itemType': QueryMinutesTextResponseBodyParagraphListSentenceList },
      startTime: 'number',
      unionId: 'string',
    };
  }

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

export class QueryScheduleConfMinutesResponseBodyMinutesDetails extends $tea.Model {
  bizType?: number;
  creatorNick?: string;
  creatorUnionId?: string;
  durationMicros?: number;
  isDeleted?: number;
  size?: number;
  startTime?: number;
  status?: number;
  taskUuid?: string;
  title?: string;
  static names(): { [key: string]: string } {
    return {
      bizType: 'bizType',
      creatorNick: 'creatorNick',
      creatorUnionId: 'creatorUnionId',
      durationMicros: 'durationMicros',
      isDeleted: 'isDeleted',
      size: 'size',
      startTime: 'startTime',
      status: 'status',
      taskUuid: 'taskUuid',
      title: 'title',
    };
  }

  static types(): { [key: string]: any } {
    return {
      bizType: 'number',
      creatorNick: 'string',
      creatorUnionId: 'string',
      durationMicros: 'number',
      isDeleted: 'number',
      size: 'number',
      startTime: 'number',
      status: 'number',
      taskUuid: 'string',
      title: 'string',
    };
  }

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

export class QueryUploadVideoPlayInfoResponseBodyPlayInfo extends $tea.Model {
  duration?: number;
  playUrl?: string;
  size?: number;
  status?: string;
  static names(): { [key: string]: string } {
    return {
      duration: 'duration',
      playUrl: 'playUrl',
      size: 'size',
      status: 'status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      duration: 'number',
      playUrl: 'string',
      size: 'number',
      status: 'string',
    };
  }

  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";
    }

  }


  /**
   * 批量获取闪记详情
   * 
   * @param request - BatchGetMinutesDetailsRequest
   * @param headers - BatchGetMinutesDetailsHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns BatchGetMinutesDetailsResponse
   */
  async batchGetMinutesDetailsWithOptions(request: BatchGetMinutesDetailsRequest, headers: BatchGetMinutesDetailsHeaders, runtime: $Util.RuntimeOptions): Promise<BatchGetMinutesDetailsResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.unionId)) {
      query["unionId"] = request.unionId;
    }

    let body : {[key: string ]: any} = { };
    if (!Util.isUnset(request.taskUuids)) {
      body["taskUuids"] = request.taskUuids;
    }

    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: "BatchGetMinutesDetails",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/details/query`,
      method: "POST",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<BatchGetMinutesDetailsResponse>(await this.execute(params, req, runtime), new BatchGetMinutesDetailsResponse({}));
  }

  /**
   * 批量获取闪记详情
   * 
   * @param request - BatchGetMinutesDetailsRequest
   * @returns BatchGetMinutesDetailsResponse
   */
  async batchGetMinutesDetails(request: BatchGetMinutesDetailsRequest): Promise<BatchGetMinutesDetailsResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new BatchGetMinutesDetailsHeaders({ });
    return await this.batchGetMinutesDetailsWithOptions(request, headers, runtime);
  }

  /**
   * 删除闪记
   * 
   * @param request - DeleteMinutesRequest
   * @param headers - DeleteMinutesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns DeleteMinutesResponse
   */
  async deleteMinutesWithOptions(taskUuid: string, request: DeleteMinutesRequest, headers: DeleteMinutesHeaders, runtime: $Util.RuntimeOptions): Promise<DeleteMinutesResponse> {
    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: "DeleteMinutes",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/tasks/${taskUuid}`,
      method: "DELETE",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<DeleteMinutesResponse>(await this.execute(params, req, runtime), new DeleteMinutesResponse({}));
  }

  /**
   * 删除闪记
   * 
   * @param request - DeleteMinutesRequest
   * @returns DeleteMinutesResponse
   */
  async deleteMinutes(taskUuid: string, request: DeleteMinutesRequest): Promise<DeleteMinutesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new DeleteMinutesHeaders({ });
    return await this.deleteMinutesWithOptions(taskUuid, request, headers, runtime);
  }

  /**
   * 查询闪记摘要
   * 
   * @param request - OpenQueryMinutesSummaryRequest
   * @param headers - OpenQueryMinutesSummaryHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns OpenQueryMinutesSummaryResponse
   */
  async openQueryMinutesSummaryWithOptions(request: OpenQueryMinutesSummaryRequest, headers: OpenQueryMinutesSummaryHeaders, runtime: $Util.RuntimeOptions): Promise<OpenQueryMinutesSummaryResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.taskUuid)) {
      query["taskUuid"] = request.taskUuid;
    }

    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: "OpenQueryMinutesSummary",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/queryMinutesSummary`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<OpenQueryMinutesSummaryResponse>(await this.execute(params, req, runtime), new OpenQueryMinutesSummaryResponse({}));
  }

  /**
   * 查询闪记摘要
   * 
   * @param request - OpenQueryMinutesSummaryRequest
   * @returns OpenQueryMinutesSummaryResponse
   */
  async openQueryMinutesSummary(request: OpenQueryMinutesSummaryRequest): Promise<OpenQueryMinutesSummaryResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new OpenQueryMinutesSummaryHeaders({ });
    return await this.openQueryMinutesSummaryWithOptions(request, headers, runtime);
  }

  /**
   * 查询闪会、文档等来源的闪记列表
   * 
   * @param request - QueryBizMinutesRequest
   * @param headers - QueryBizMinutesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryBizMinutesResponse
   */
  async queryBizMinutesWithOptions(request: QueryBizMinutesRequest, headers: QueryBizMinutesHeaders, runtime: $Util.RuntimeOptions): Promise<QueryBizMinutesResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.bizId)) {
      query["bizId"] = request.bizId;
    }

    if (!Util.isUnset(request.bizType)) {
      query["bizType"] = request.bizType;
    }

    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: "QueryBizMinutes",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/queryBizMinutes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryBizMinutesResponse>(await this.execute(params, req, runtime), new QueryBizMinutesResponse({}));
  }

  /**
   * 查询闪会、文档等来源的闪记列表
   * 
   * @param request - QueryBizMinutesRequest
   * @returns QueryBizMinutesResponse
   */
  async queryBizMinutes(request: QueryBizMinutesRequest): Promise<QueryBizMinutesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryBizMinutesHeaders({ });
    return await this.queryBizMinutesWithOptions(request, headers, runtime);
  }

  /**
   * 查询自己创建的闪记列表
   * 
   * @param request - QueryCreateMinutesListRequest
   * @param headers - QueryCreateMinutesListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryCreateMinutesListResponse
   */
  async queryCreateMinutesListWithOptions(request: QueryCreateMinutesListRequest, headers: QueryCreateMinutesListHeaders, runtime: $Util.RuntimeOptions): Promise<QueryCreateMinutesListResponse> {
    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.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: "QueryCreateMinutesList",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/createLists`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryCreateMinutesListResponse>(await this.execute(params, req, runtime), new QueryCreateMinutesListResponse({}));
  }

  /**
   * 查询自己创建的闪记列表
   * 
   * @param request - QueryCreateMinutesListRequest
   * @returns QueryCreateMinutesListResponse
   */
  async queryCreateMinutesList(request: QueryCreateMinutesListRequest): Promise<QueryCreateMinutesListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryCreateMinutesListHeaders({ });
    return await this.queryCreateMinutesListWithOptions(request, headers, runtime);
  }

  /**
   * 查询闪记媒体播放信息
   * 
   * @param request - QueryMinutesPlayInfoRequest
   * @param headers - QueryMinutesPlayInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryMinutesPlayInfoResponse
   */
  async queryMinutesPlayInfoWithOptions(taskUuid: string, request: QueryMinutesPlayInfoRequest, headers: QueryMinutesPlayInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QueryMinutesPlayInfoResponse> {
    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: "QueryMinutesPlayInfo",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/tasks/${taskUuid}/playInfos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryMinutesPlayInfoResponse>(await this.execute(params, req, runtime), new QueryMinutesPlayInfoResponse({}));
  }

  /**
   * 查询闪记媒体播放信息
   * 
   * @param request - QueryMinutesPlayInfoRequest
   * @returns QueryMinutesPlayInfoResponse
   */
  async queryMinutesPlayInfo(taskUuid: string, request: QueryMinutesPlayInfoRequest): Promise<QueryMinutesPlayInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryMinutesPlayInfoHeaders({ });
    return await this.queryMinutesPlayInfoWithOptions(taskUuid, request, headers, runtime);
  }

  /**
   * 获取与我共享闪记列表
   * 
   * @param request - QueryMinutesShareListRequest
   * @param headers - QueryMinutesShareListHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryMinutesShareListResponse
   */
  async queryMinutesShareListWithOptions(request: QueryMinutesShareListRequest, headers: QueryMinutesShareListHeaders, runtime: $Util.RuntimeOptions): Promise<QueryMinutesShareListResponse> {
    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.scene)) {
      query["scene"] = request.scene;
    }

    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: "QueryMinutesShareList",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/shareLists`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryMinutesShareListResponse>(await this.execute(params, req, runtime), new QueryMinutesShareListResponse({}));
  }

  /**
   * 获取与我共享闪记列表
   * 
   * @param request - QueryMinutesShareListRequest
   * @returns QueryMinutesShareListResponse
   */
  async queryMinutesShareList(request: QueryMinutesShareListRequest): Promise<QueryMinutesShareListResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryMinutesShareListHeaders({ });
    return await this.queryMinutesShareListWithOptions(request, headers, runtime);
  }

  /**
   * 查询闪记状态
   * 
   * @param request - QueryMinutesStatusRequest
   * @param headers - QueryMinutesStatusHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryMinutesStatusResponse
   */
  async queryMinutesStatusWithOptions(taskUuid: string, request: QueryMinutesStatusRequest, headers: QueryMinutesStatusHeaders, runtime: $Util.RuntimeOptions): Promise<QueryMinutesStatusResponse> {
    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: "QueryMinutesStatus",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/${taskUuid}/taskStatus`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryMinutesStatusResponse>(await this.execute(params, req, runtime), new QueryMinutesStatusResponse({}));
  }

  /**
   * 查询闪记状态
   * 
   * @param request - QueryMinutesStatusRequest
   * @returns QueryMinutesStatusResponse
   */
  async queryMinutesStatus(taskUuid: string, request: QueryMinutesStatusRequest): Promise<QueryMinutesStatusResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryMinutesStatusHeaders({ });
    return await this.queryMinutesStatusWithOptions(taskUuid, request, headers, runtime);
  }

  /**
   * 查询闪记转写文本内容
   * 
   * @param request - QueryMinutesTextRequest
   * @param headers - QueryMinutesTextHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryMinutesTextResponse
   */
  async queryMinutesTextWithOptions(taskUuid: string, request: QueryMinutesTextRequest, headers: QueryMinutesTextHeaders, runtime: $Util.RuntimeOptions): Promise<QueryMinutesTextResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.direction)) {
      query["direction"] = request.direction;
    }

    if (!Util.isUnset(request.maxResults)) {
      query["maxResults"] = request.maxResults;
    }

    if (!Util.isUnset(request.nextToken)) {
      query["nextToken"] = request.nextToken;
    }

    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: "QueryMinutesText",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/${taskUuid}/textInfos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryMinutesTextResponse>(await this.execute(params, req, runtime), new QueryMinutesTextResponse({}));
  }

  /**
   * 查询闪记转写文本内容
   * 
   * @param request - QueryMinutesTextRequest
   * @returns QueryMinutesTextResponse
   */
  async queryMinutesText(taskUuid: string, request: QueryMinutesTextRequest): Promise<QueryMinutesTextResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryMinutesTextHeaders({ });
    return await this.queryMinutesTextWithOptions(taskUuid, request, headers, runtime);
  }

  /**
   * 查询预约会议闪记列表
   * 
   * @param request - QueryScheduleConfMinutesRequest
   * @param headers - QueryScheduleConfMinutesHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryScheduleConfMinutesResponse
   */
  async queryScheduleConfMinutesWithOptions(scheduleConferenceId: string, request: QueryScheduleConfMinutesRequest, headers: QueryScheduleConfMinutesHeaders, runtime: $Util.RuntimeOptions): Promise<QueryScheduleConfMinutesResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.eventId)) {
      query["eventId"] = request.eventId;
    }

    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: "QueryScheduleConfMinutes",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/scheduleConference/${scheduleConferenceId}/minutes`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryScheduleConfMinutesResponse>(await this.execute(params, req, runtime), new QueryScheduleConfMinutesResponse({}));
  }

  /**
   * 查询预约会议闪记列表
   * 
   * @param request - QueryScheduleConfMinutesRequest
   * @returns QueryScheduleConfMinutesResponse
   */
  async queryScheduleConfMinutes(scheduleConferenceId: string, request: QueryScheduleConfMinutesRequest): Promise<QueryScheduleConfMinutesResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryScheduleConfMinutesHeaders({ });
    return await this.queryScheduleConfMinutesWithOptions(scheduleConferenceId, request, headers, runtime);
  }

  /**
   * 查询上传视频播放信息
   * 
   * @param request - QueryUploadVideoPlayInfoRequest
   * @param headers - QueryUploadVideoPlayInfoHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns QueryUploadVideoPlayInfoResponse
   */
  async queryUploadVideoPlayInfoWithOptions(videoId: string, request: QueryUploadVideoPlayInfoRequest, headers: QueryUploadVideoPlayInfoHeaders, runtime: $Util.RuntimeOptions): Promise<QueryUploadVideoPlayInfoResponse> {
    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: "QueryUploadVideoPlayInfo",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/uploadVideos/${videoId}/playInfos`,
      method: "GET",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<QueryUploadVideoPlayInfoResponse>(await this.execute(params, req, runtime), new QueryUploadVideoPlayInfoResponse({}));
  }

  /**
   * 查询上传视频播放信息
   * 
   * @param request - QueryUploadVideoPlayInfoRequest
   * @returns QueryUploadVideoPlayInfoResponse
   */
  async queryUploadVideoPlayInfo(videoId: string, request: QueryUploadVideoPlayInfoRequest): Promise<QueryUploadVideoPlayInfoResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new QueryUploadVideoPlayInfoHeaders({ });
    return await this.queryUploadVideoPlayInfoWithOptions(videoId, request, headers, runtime);
  }

  /**
   * 更新闪记标题
   * 
   * @param request - UpdateMinutesTitleRequest
   * @param headers - UpdateMinutesTitleHeaders
   * @param runtime - runtime options for this request RuntimeOptions
   * @returns UpdateMinutesTitleResponse
   */
  async updateMinutesTitleWithOptions(taskUuid: string, request: UpdateMinutesTitleRequest, headers: UpdateMinutesTitleHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateMinutesTitleResponse> {
    Util.validateModel(request);
    let query : {[key: string ]: any} = { };
    if (!Util.isUnset(request.title)) {
      query["title"] = request.title;
    }

    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: "UpdateMinutesTitle",
      version: "minutes_1.0",
      protocol: "HTTP",
      pathname: `/v1.0/minutes/flashMinutes/tasks/${taskUuid}/titles`,
      method: "PUT",
      authType: "AK",
      style: "ROA",
      reqBodyType: "none",
      bodyType: "json",
    });
    return $tea.cast<UpdateMinutesTitleResponse>(await this.execute(params, req, runtime), new UpdateMinutesTitleResponse({}));
  }

  /**
   * 更新闪记标题
   * 
   * @param request - UpdateMinutesTitleRequest
   * @returns UpdateMinutesTitleResponse
   */
  async updateMinutesTitle(taskUuid: string, request: UpdateMinutesTitleRequest): Promise<UpdateMinutesTitleResponse> {
    let runtime = new $Util.RuntimeOptions({ });
    let headers = new UpdateMinutesTitleHeaders({ });
    return await this.updateMinutesTitleWithOptions(taskUuid, request, headers, runtime);
  }

}
