// This file is auto-generated, don't edit it
import * as $dara from '@darabonba/typescript';


export class QuerySmsAuthorizationLetterResponseBodyData extends $dara.Model {
  /**
   * @remarks
   * The authorizing party.
   * 
   * @example
   * 菜鸟网络科技有限公司
   */
  authorization?: string;
  /**
   * @remarks
   * The validity period of the letter of authorization. Format: YYYY-MM-DD~YYYY-MM-DD.
   * 
   * @example
   * 2023-01-01~2026-01-01
   */
  authorizationLetterExpDate?: string;
  /**
   * @remarks
   * The letter of authorization ID.
   * 
   * @example
   * 10000******
   */
  authorizationLetterId?: number;
  /**
   * @remarks
   * The name of the letter of authorization.
   * 
   * @example
   * 菜鸟公司授权书
   */
  authorizationLetterName?: string;
  /**
   * @remarks
   * The URL of the letter of authorization file.
   */
  authorizationLetterPic?: string;
  /**
   * @remarks
   * The unified social credit code of the authorizing party.
   * 
   * @example
   * 9****************A
   */
  organizationCode?: string;
  /**
   * @remarks
   * The authorized party.
   * 
   * @example
   * 支付宝（中国）网络技术有限公司
   */
  proxyAuthorization?: string;
  /**
   * @remarks
   * The authorized signature scope. If multiple signatures are included, the signatures are separated by Chinese enumeration commas (、).
   * 
   * @example
   * 菜鸟网络、菜鸟驿站、菜鸟裹裹
   */
  signScope?: string;
  /**
   * @remarks
   * The status of the letter of authorization, which is related to the review status of the signature. Valid values:
   * - **INT**: Pending review. The letter of authorization has been created. After you submit a signature application, it enters the review process.
   * - **PASSED**: Review passed. When a signature in the authorized signature scope of the letter of authorization passes the review, the status of the letter of authorization changes to PASSED.
   * 
   * @example
   * PASSED
   */
  state?: string;
  /**
   * @remarks
   * The availability status of the letter of authorization, which is related to the validity period of the letter of authorization. Valid values:
   * 
   * - **VALID**: Available. The letter of authorization is within the validity period.
   * - **INVALID**: Unavailable. The letter of authorization has expired.
   * 
   * @example
   * VALID
   */
  status?: string;
  static names(): { [key: string]: string } {
    return {
      authorization: 'Authorization',
      authorizationLetterExpDate: 'AuthorizationLetterExpDate',
      authorizationLetterId: 'AuthorizationLetterId',
      authorizationLetterName: 'AuthorizationLetterName',
      authorizationLetterPic: 'AuthorizationLetterPic',
      organizationCode: 'OrganizationCode',
      proxyAuthorization: 'ProxyAuthorization',
      signScope: 'SignScope',
      state: 'State',
      status: 'Status',
    };
  }

  static types(): { [key: string]: any } {
    return {
      authorization: 'string',
      authorizationLetterExpDate: 'string',
      authorizationLetterId: 'number',
      authorizationLetterName: 'string',
      authorizationLetterPic: 'string',
      organizationCode: 'string',
      proxyAuthorization: 'string',
      signScope: 'string',
      state: 'string',
      status: 'string',
    };
  }

  validate() {
    super.validate();
  }

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

export class QuerySmsAuthorizationLetterResponseBody extends $dara.Model {
  /**
   * @remarks
   * The details of the access denial. This parameter is returned only when the RAM check fails.
   * 
   * @example
   * 无
   */
  accessDeniedDetail?: string;
  /**
   * @remarks
   * The status code of the request.
   * 
   * - The value OK indicates that the request was successful.
   * - For other error codes, see the error code list in this topic or [API error codes](https://help.aliyun.com/document_detail/101346.html).
   * 
   * @example
   * OK
   */
  code?: string;
  /**
   * @remarks
   * The information of the letters of authorization.
   */
  data?: QuerySmsAuthorizationLetterResponseBodyData[];
  /**
   * @remarks
   * The description of the status code.
   * 
   * @example
   * OK
   */
  message?: string;
  /**
   * @remarks
   * The ID of the request, which is a unique identifier generated by Alibaba Cloud for the request and can be used to troubleshoot and locate issues.
   * 
   * @example
   * 25D5AFDE-8EBC-132E-8909-1FDC071D
   */
  requestId?: string;
  /**
   * @remarks
   * Indicates whether the API call was successful. Valid values:
   * 
   * - **true**: The call was successful.
   * - **false**: The call failed.
   * 
   * @example
   * true
   */
  success?: boolean;
  static names(): { [key: string]: string } {
    return {
      accessDeniedDetail: 'AccessDeniedDetail',
      code: 'Code',
      data: 'Data',
      message: 'Message',
      requestId: 'RequestId',
      success: 'Success',
    };
  }

  static types(): { [key: string]: any } {
    return {
      accessDeniedDetail: 'string',
      code: 'string',
      data: { 'type': 'array', 'itemType': QuerySmsAuthorizationLetterResponseBodyData },
      message: 'string',
      requestId: 'string',
      success: 'boolean',
    };
  }

  validate() {
    if(Array.isArray(this.data)) {
      $dara.Model.validateArray(this.data);
    }
    super.validate();
  }

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

