// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20181119

import (
    "context"
    "errors"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/profile"
)

const APIVersion = "2018-11-19"

type Client struct {
    common.Client
}

// Deprecated
func NewClientWithSecretId(secretId, secretKey, region string) (client *Client, err error) {
    cpf := profile.NewClientProfile()
    client = &Client{}
    client.Init(region).WithSecretId(secretId, secretKey).WithProfile(cpf)
    return
}

func NewClient(credential common.CredentialIface, region string, clientProfile *profile.ClientProfile) (client *Client, err error) {
    client = &Client{}
    client.Init(region).
        WithCredential(credential).
        WithProfile(clientProfile)
    return
}


func NewApplyCardVerificationExternalRequest() (request *ApplyCardVerificationExternalRequest) {
    request = &ApplyCardVerificationExternalRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "ApplyCardVerificationExternal")
    
    
    return
}

func NewApplyCardVerificationExternalResponse() (response *ApplyCardVerificationExternalResponse) {
    response = &ApplyCardVerificationExternalResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// ApplyCardVerificationExternal
// This API provides general OCR recognition for overseas identity documents.
//
// 
//
// The following table lists the supported countries or regions, document types, and whether the back side is required:
//
// 
//
// <table>
//
// <thead>
//
// <tr>
//
// <td style="width:200px">Nationality</td>
//
// <td style="width:200px">CardType</td>
//
// <td style="width:200px">Whether the Back Side is Required</td>
//
// </tr>
//
// </thead>
//
// <tbody>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Passport</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Residence Permit</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Indonesia</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Indonesia</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Hong Kong, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Thailand</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Thailand</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Malaysia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Malaysia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Philippines</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Philippines</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Japan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Japan</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Macau, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Taiwan, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// </tbody>
//
// </table>
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDFILECONTENTSIZE = "InvalidParameterValue.InvalidFileContentSize"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCEUNAVAILABLE_IMAGEDOWNLOADERROR = "ResourceUnavailable.ImageDownloadError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) ApplyCardVerificationExternal(request *ApplyCardVerificationExternalRequest) (response *ApplyCardVerificationExternalResponse, err error) {
    return c.ApplyCardVerificationExternalWithContext(context.Background(), request)
}

// ApplyCardVerificationExternal
// This API provides general OCR recognition for overseas identity documents.
//
// 
//
// The following table lists the supported countries or regions, document types, and whether the back side is required:
//
// 
//
// <table>
//
// <thead>
//
// <tr>
//
// <td style="width:200px">Nationality</td>
//
// <td style="width:200px">CardType</td>
//
// <td style="width:200px">Whether the Back Side is Required</td>
//
// </tr>
//
// </thead>
//
// <tbody>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Argentina</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Australia</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Cambodia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Passport</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Canada</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Chile</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Germany</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Mexico</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Myanmar</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>New Zealand</td>
//
// <td>Residence Permit</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Russia</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Passport</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Residence Permit</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Indonesia</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Indonesia</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Hong Kong, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Thailand</td>
//
// <td>National ID Card</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Thailand</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Malaysia</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Malaysia</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Singapore</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Philippines</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Philippines</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Japan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Japan</td>
//
// <td>Driver's License</td>
//
// <td>No</td>
//
// </tr>
//
// <tr>
//
// <td>Macau, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Taiwan, China</td>
//
// <td>Identity Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Bangladesh</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Nigeria</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>National ID Card</td>
//
// <td>Yes</td>
//
// </tr>
//
// <tr>
//
// <td>Pakistan</td>
//
// <td>Driver's License</td>
//
// <td>Yes</td>
//
// </tr>
//
// </tbody>
//
// </table>
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDFILECONTENTSIZE = "InvalidParameterValue.InvalidFileContentSize"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCEUNAVAILABLE_IMAGEDOWNLOADERROR = "ResourceUnavailable.ImageDownloadError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) ApplyCardVerificationExternalWithContext(ctx context.Context, request *ApplyCardVerificationExternalRequest) (response *ApplyCardVerificationExternalResponse, err error) {
    if request == nil {
        request = NewApplyCardVerificationExternalRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "ApplyCardVerificationExternal")
    
    if c.GetCredential() == nil {
        return nil, errors.New("ApplyCardVerificationExternal require credential")
    }

    request.SetContext(ctx)
    
    response = NewApplyCardVerificationExternalResponse()
    err = c.Send(request, response)
    return
}

func NewExtractDocMultiRequest() (request *ExtractDocMultiRequest) {
    request = &ExtractDocMultiRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "ExtractDocMulti")
    
    
    return
}

func NewExtractDocMultiResponse() (response *ExtractDocMultiResponse) {
    response = &ExtractDocMultiResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// ExtractDocMulti
// This API supports identifying and extracting field information in structured scenarios such as complex scenarios and multiple formats. Key scenarios include: finance, health care, transportation, travel, insurance. Click [experience now](https://ocrdemo.cloud.tencent.com/).
//
// 
//
// This API is used to set the alias SmartStructuralPro.
//
// 
//
// The default API request rate limit is 5 requests per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) ExtractDocMulti(request *ExtractDocMultiRequest) (response *ExtractDocMultiResponse, err error) {
    return c.ExtractDocMultiWithContext(context.Background(), request)
}

// ExtractDocMulti
// This API supports identifying and extracting field information in structured scenarios such as complex scenarios and multiple formats. Key scenarios include: finance, health care, transportation, travel, insurance. Click [experience now](https://ocrdemo.cloud.tencent.com/).
//
// 
//
// This API is used to set the alias SmartStructuralPro.
//
// 
//
// The default API request rate limit is 5 requests per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) ExtractDocMultiWithContext(ctx context.Context, request *ExtractDocMultiRequest) (response *ExtractDocMultiResponse, err error) {
    if request == nil {
        request = NewExtractDocMultiRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "ExtractDocMulti")
    
    if c.GetCredential() == nil {
        return nil, errors.New("ExtractDocMulti require credential")
    }

    request.SetContext(ctx)
    
    response = NewExtractDocMultiResponse()
    err = c.Send(request, response)
    return
}

func NewGeneralAccurateOCRRequest() (request *GeneralAccurateOCRRequest) {
    request = &GeneralAccurateOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "GeneralAccurateOCR")
    
    
    return
}

func NewGeneralAccurateOCRResponse() (response *GeneralAccurateOCRResponse) {
    response = &GeneralAccurateOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// GeneralAccurateOCR
// This API is used to detect and recognize characters in an image. It can recognize Chinese, English, Chinese-English, digits, and special symbols and return the text box positions and characters.
//
// 
//
// It is suitable for scenarios with a lot of characters in complex layouts and requiring high recognition accuracy, such as examination papers, online images, signboards, and legal documents.
//
// 
//
// Strengths: compared with general print recognition, it provides higher-precision character recognition services. Its accuracy and recall rate are higher in difficult scenarios such as a large number of characters, long strings of digits, small characters, blurry characters, and tilted text.
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_ENGINERECOGNIZETIMEOUT = "FailedOperation.EngineRecognizeTimeout"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOTEXT = "FailedOperation.ImageNoText"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) GeneralAccurateOCR(request *GeneralAccurateOCRRequest) (response *GeneralAccurateOCRResponse, err error) {
    return c.GeneralAccurateOCRWithContext(context.Background(), request)
}

// GeneralAccurateOCR
// This API is used to detect and recognize characters in an image. It can recognize Chinese, English, Chinese-English, digits, and special symbols and return the text box positions and characters.
//
// 
//
// It is suitable for scenarios with a lot of characters in complex layouts and requiring high recognition accuracy, such as examination papers, online images, signboards, and legal documents.
//
// 
//
// Strengths: compared with general print recognition, it provides higher-precision character recognition services. Its accuracy and recall rate are higher in difficult scenarios such as a large number of characters, long strings of digits, small characters, blurry characters, and tilted text.
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_ENGINERECOGNIZETIMEOUT = "FailedOperation.EngineRecognizeTimeout"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOTEXT = "FailedOperation.ImageNoText"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) GeneralAccurateOCRWithContext(ctx context.Context, request *GeneralAccurateOCRRequest) (response *GeneralAccurateOCRResponse, err error) {
    if request == nil {
        request = NewGeneralAccurateOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "GeneralAccurateOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("GeneralAccurateOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewGeneralAccurateOCRResponse()
    err = c.Send(request, response)
    return
}

func NewGeneralBasicOCRRequest() (request *GeneralBasicOCRRequest) {
    request = &GeneralBasicOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "GeneralBasicOCR")
    
    
    return
}

func NewGeneralBasicOCRResponse() (response *GeneralBasicOCRResponse) {
    response = &GeneralBasicOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// GeneralBasicOCR
// This API is used to detect and recognize characters in an image in the following 20 languages: Chinese, English, Japanese, Korean, Spanish, French, German, Portuguese, Vietnamese, Malay, Russian, Italian, Dutch, Swedish, Finnish, Danish, Norwegian, Hungarian, Thai, and Arabic. Mixed characters in English and each supported language can be recognized together.
//
// 
//
// It can recognize printed text in paper documents, online images, ads, signboards, menus, video titles, profile photos, etc.
//
// 
//
// Strengths: it can automatically recognize the text language, return the text box coordinate information, and automatically rotate tilted text to the upright direction.
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_ENGINERECOGNIZETIMEOUT = "FailedOperation.EngineRecognizeTimeout"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOTEXT = "FailedOperation.ImageNoText"
//  FAILEDOPERATION_LANGUAGENOTSUPPORT = "FailedOperation.LanguageNotSupport"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) GeneralBasicOCR(request *GeneralBasicOCRRequest) (response *GeneralBasicOCRResponse, err error) {
    return c.GeneralBasicOCRWithContext(context.Background(), request)
}

// GeneralBasicOCR
// This API is used to detect and recognize characters in an image in the following 20 languages: Chinese, English, Japanese, Korean, Spanish, French, German, Portuguese, Vietnamese, Malay, Russian, Italian, Dutch, Swedish, Finnish, Danish, Norwegian, Hungarian, Thai, and Arabic. Mixed characters in English and each supported language can be recognized together.
//
// 
//
// It can recognize printed text in paper documents, online images, ads, signboards, menus, video titles, profile photos, etc.
//
// 
//
// Strengths: it can automatically recognize the text language, return the text box coordinate information, and automatically rotate tilted text to the upright direction.
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_ENGINERECOGNIZETIMEOUT = "FailedOperation.EngineRecognizeTimeout"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOTEXT = "FailedOperation.ImageNoText"
//  FAILEDOPERATION_LANGUAGENOTSUPPORT = "FailedOperation.LanguageNotSupport"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) GeneralBasicOCRWithContext(ctx context.Context, request *GeneralBasicOCRRequest) (response *GeneralBasicOCRResponse, err error) {
    if request == nil {
        request = NewGeneralBasicOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "GeneralBasicOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("GeneralBasicOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewGeneralBasicOCRResponse()
    err = c.Send(request, response)
    return
}

func NewGetCardVerificationExternalResultRequest() (request *GetCardVerificationExternalResultRequest) {
    request = &GetCardVerificationExternalResultRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "GetCardVerificationExternalResult")
    
    
    return
}

func NewGetCardVerificationExternalResultResponse() (response *GetCardVerificationExternalResultResponse) {
    response = &GetCardVerificationExternalResultResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// GetCardVerificationExternalResult
// This API is used to obtain document recognition results.
//
// error code that may be returned:
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) GetCardVerificationExternalResult(request *GetCardVerificationExternalResultRequest) (response *GetCardVerificationExternalResultResponse, err error) {
    return c.GetCardVerificationExternalResultWithContext(context.Background(), request)
}

// GetCardVerificationExternalResult
// This API is used to obtain document recognition results.
//
// error code that may be returned:
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) GetCardVerificationExternalResultWithContext(ctx context.Context, request *GetCardVerificationExternalResultRequest) (response *GetCardVerificationExternalResultResponse, err error) {
    if request == nil {
        request = NewGetCardVerificationExternalResultRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "GetCardVerificationExternalResult")
    
    if c.GetCredential() == nil {
        return nil, errors.New("GetCardVerificationExternalResult require credential")
    }

    request.SetContext(ctx)
    
    response = NewGetCardVerificationExternalResultResponse()
    err = c.Send(request, response)
    return
}

func NewHKIDCardOCRRequest() (request *HKIDCardOCRRequest) {
    request = &HKIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "HKIDCardOCR")
    
    
    return
}

func NewHKIDCardOCRResponse() (response *HKIDCardOCRResponse) {
    response = &HKIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// HKIDCardOCR
// This API is used to recognize key fields on the photo side of a Hong Kong (China) identity card, including name in Chinese, name in English, telecode for name, date of birth, gender, document symbol, date of the first issue, date of the last receipt, identity card number, and permanent residency attribute. 
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_NOHKIDCARD = "FailedOperation.NoHKIDCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) HKIDCardOCR(request *HKIDCardOCRRequest) (response *HKIDCardOCRResponse, err error) {
    return c.HKIDCardOCRWithContext(context.Background(), request)
}

// HKIDCardOCR
// This API is used to recognize key fields on the photo side of a Hong Kong (China) identity card, including name in Chinese, name in English, telecode for name, date of birth, gender, document symbol, date of the first issue, date of the last receipt, identity card number, and permanent residency attribute. 
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_NOHKIDCARD = "FailedOperation.NoHKIDCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) HKIDCardOCRWithContext(ctx context.Context, request *HKIDCardOCRRequest) (response *HKIDCardOCRResponse, err error) {
    if request == nil {
        request = NewHKIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "HKIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("HKIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewHKIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewMLIDCardOCRRequest() (request *MLIDCardOCRRequest) {
    request = &MLIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "MLIDCardOCR")
    
    
    return
}

func NewMLIDCardOCRResponse() (response *MLIDCardOCRResponse) {
    response = &MLIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// MLIDCardOCR
// This API is used to recognize a Malaysian identity card, including identity card number, name, gender, and address. It is also used to crop identity photos and give alarms for photographed or photocopied certificates.
//
// 
//
// This API is not fully available for the time being. For more information, contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_INVALIDPOSTALCODELENGTH = "FailedOperation.InvalidPostalCodeLength"
//  FAILEDOPERATION_NOMASIDCARD = "FailedOperation.NoMASIDCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MLIDCardOCR(request *MLIDCardOCRRequest) (response *MLIDCardOCRResponse, err error) {
    return c.MLIDCardOCRWithContext(context.Background(), request)
}

// MLIDCardOCR
// This API is used to recognize a Malaysian identity card, including identity card number, name, gender, and address. It is also used to crop identity photos and give alarms for photographed or photocopied certificates.
//
// 
//
// This API is not fully available for the time being. For more information, contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_INVALIDPOSTALCODELENGTH = "FailedOperation.InvalidPostalCodeLength"
//  FAILEDOPERATION_NOMASIDCARD = "FailedOperation.NoMASIDCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MLIDCardOCRWithContext(ctx context.Context, request *MLIDCardOCRRequest) (response *MLIDCardOCRResponse, err error) {
    if request == nil {
        request = NewMLIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "MLIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("MLIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewMLIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewMLIDPassportOCRRequest() (request *MLIDPassportOCRRequest) {
    request = &MLIDPassportOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "MLIDPassportOCR")
    
    
    return
}

func NewMLIDPassportOCRResponse() (response *MLIDPassportOCRResponse) {
    response = &MLIDPassportOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// MLIDPassportOCR
// This API is used to recognize a passport issued in Hong Kong/Macao/Taiwan (China) or other countries/regions. Recognizable fields include passport ID, name, date of birth, gender, expiration date, issuing country/region, and nationality. It has the features of cropping identity photos and alarming for photographed or photocopied documents.
//
// This interface supports regional scope: countries with machine-readable passports
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_FIELDEXCEPTION = "FailedOperation.FieldException"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_INCONSISTENCYBETWEENMRZANDVRZ = "FailedOperation.InconsistencyBetweenMRZAndVRZ"
//  FAILEDOPERATION_NOPASSPORT = "FailedOperation.NoPassport"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MLIDPassportOCR(request *MLIDPassportOCRRequest) (response *MLIDPassportOCRResponse, err error) {
    return c.MLIDPassportOCRWithContext(context.Background(), request)
}

// MLIDPassportOCR
// This API is used to recognize a passport issued in Hong Kong/Macao/Taiwan (China) or other countries/regions. Recognizable fields include passport ID, name, date of birth, gender, expiration date, issuing country/region, and nationality. It has the features of cropping identity photos and alarming for photographed or photocopied documents.
//
// This interface supports regional scope: countries with machine-readable passports
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_FIELDEXCEPTION = "FailedOperation.FieldException"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_INCONSISTENCYBETWEENMRZANDVRZ = "FailedOperation.InconsistencyBetweenMRZAndVRZ"
//  FAILEDOPERATION_NOPASSPORT = "FailedOperation.NoPassport"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MLIDPassportOCRWithContext(ctx context.Context, request *MLIDPassportOCRRequest) (response *MLIDPassportOCRResponse, err error) {
    if request == nil {
        request = NewMLIDPassportOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "MLIDPassportOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("MLIDPassportOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewMLIDPassportOCRResponse()
    err = c.Send(request, response)
    return
}

func NewMainlandPermitOCRRequest() (request *MainlandPermitOCRRequest) {
    request = &MainlandPermitOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "MainlandPermitOCR")
    
    
    return
}

func NewMainlandPermitOCRResponse() (response *MainlandPermitOCRResponse) {
    response = &MainlandPermitOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// MainlandPermitOCR
// This API is used to recognize all fields on the front of a mainland travel permit for Hong Kong, Macao, or Taiwan residents: name in Chinese, name in English, gender, date of birth, issuing authority, validity period, document number, place of issuance, number of issues, and document type.
//
// 
//
// A maximum of 20 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MainlandPermitOCR(request *MainlandPermitOCRRequest) (response *MainlandPermitOCRResponse, err error) {
    return c.MainlandPermitOCRWithContext(context.Background(), request)
}

// MainlandPermitOCR
// This API is used to recognize all fields on the front of a mainland travel permit for Hong Kong, Macao, or Taiwan residents: name in Chinese, name in English, gender, date of birth, issuing authority, validity period, document number, place of issuance, number of issues, and document type.
//
// 
//
// A maximum of 20 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) MainlandPermitOCRWithContext(ctx context.Context, request *MainlandPermitOCRRequest) (response *MainlandPermitOCRResponse, err error) {
    if request == nil {
        request = NewMainlandPermitOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "MainlandPermitOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("MainlandPermitOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewMainlandPermitOCRResponse()
    err = c.Send(request, response)
    return
}

func NewPODAuditAIRequest() (request *PODAuditAIRequest) {
    request = &PODAuditAIRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "PODAuditAI")
    
    
    return
}

func NewPODAuditAIResponse() (response *PODAuditAIResponse) {
    response = &PODAuditAIResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// PODAuditAI
// The POD intelligent review deeply integrates multimodal large model image understanding technology, targeting the logistics last-mile delivery scenario to provide high-precision POD compliance audit service. The system auto-recognizes ticket imperfections and risks of non-compliance, helping businesses achieve standardized control in the delivery process and effectively avoid customer complaints and disputes caused by non-compliant credentials.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_LLMSERVICEFAILED = "FailedOperation.LLMServiceFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWFILETYPEERROR = "FailedOperation.UnKnowFileTypeError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) PODAuditAI(request *PODAuditAIRequest) (response *PODAuditAIResponse, err error) {
    return c.PODAuditAIWithContext(context.Background(), request)
}

// PODAuditAI
// The POD intelligent review deeply integrates multimodal large model image understanding technology, targeting the logistics last-mile delivery scenario to provide high-precision POD compliance audit service. The system auto-recognizes ticket imperfections and risks of non-compliance, helping businesses achieve standardized control in the delivery process and effectively avoid customer complaints and disputes caused by non-compliant credentials.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_LLMSERVICEFAILED = "FailedOperation.LLMServiceFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWFILETYPEERROR = "FailedOperation.UnKnowFileTypeError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) PODAuditAIWithContext(ctx context.Context, request *PODAuditAIRequest) (response *PODAuditAIResponse, err error) {
    if request == nil {
        request = NewPODAuditAIRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "PODAuditAI")
    
    if c.GetCredential() == nil {
        return nil, errors.New("PODAuditAI require credential")
    }

    request.SetContext(ctx)
    
    response = NewPODAuditAIResponse()
    err = c.Send(request, response)
    return
}

func NewPermitOCRRequest() (request *PermitOCRRequest) {
    request = &PermitOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "PermitOCR")
    
    
    return
}

func NewPermitOCRResponse() (response *PermitOCRResponse) {
    response = &PermitOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// PermitOCR
// This API is used to recognize the fields on an exit/entry permit (card) for traveling to and from Hong Kong, Macao, or Taiwan, including place of issuance, issuing authority, validity period, gender, date of birth, name in English, name in Chinese, and document number.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) PermitOCR(request *PermitOCRRequest) (response *PermitOCRResponse, err error) {
    return c.PermitOCRWithContext(context.Background(), request)
}

// PermitOCR
// This API is used to recognize the fields on an exit/entry permit (card) for traveling to and from Hong Kong, Macao, or Taiwan, including place of issuance, issuing authority, validity period, gender, date of birth, name in English, name in Chinese, and document number.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) PermitOCRWithContext(ctx context.Context, request *PermitOCRRequest) (response *PermitOCRResponse, err error) {
    if request == nil {
        request = NewPermitOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "PermitOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("PermitOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewPermitOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeBrazilCommonOCRRequest() (request *RecognizeBrazilCommonOCRRequest) {
    request = &RecognizeBrazilCommonOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeBrazilCommonOCR")
    
    
    return
}

func NewRecognizeBrazilCommonOCRResponse() (response *RecognizeBrazilCommonOCRResponse) {
    response = &RecognizeBrazilCommonOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeBrazilCommonOCR
// This API is used to identify Brazil common documents.
//
// 
//
// This API is used to set the default request rate limit to 5 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilCommonOCR(request *RecognizeBrazilCommonOCRRequest) (response *RecognizeBrazilCommonOCRResponse, err error) {
    return c.RecognizeBrazilCommonOCRWithContext(context.Background(), request)
}

// RecognizeBrazilCommonOCR
// This API is used to identify Brazil common documents.
//
// 
//
// This API is used to set the default request rate limit to 5 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilCommonOCRWithContext(ctx context.Context, request *RecognizeBrazilCommonOCRRequest) (response *RecognizeBrazilCommonOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeBrazilCommonOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeBrazilCommonOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeBrazilCommonOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeBrazilCommonOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeBrazilDriverLicenseOCRRequest() (request *RecognizeBrazilDriverLicenseOCRRequest) {
    request = &RecognizeBrazilDriverLicenseOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeBrazilDriverLicenseOCR")
    
    
    return
}

func NewRecognizeBrazilDriverLicenseOCRResponse() (response *RecognizeBrazilDriverLicenseOCRResponse) {
    response = &RecognizeBrazilDriverLicenseOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeBrazilDriverLicenseOCR
// This interface supports identification of the front and back of Brazilian driver's license. The identification fields include name, driver's license category, number, validity period, etc.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) RecognizeBrazilDriverLicenseOCR(request *RecognizeBrazilDriverLicenseOCRRequest) (response *RecognizeBrazilDriverLicenseOCRResponse, err error) {
    return c.RecognizeBrazilDriverLicenseOCRWithContext(context.Background(), request)
}

// RecognizeBrazilDriverLicenseOCR
// This interface supports identification of the front and back of Brazilian driver's license. The identification fields include name, driver's license category, number, validity period, etc.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) RecognizeBrazilDriverLicenseOCRWithContext(ctx context.Context, request *RecognizeBrazilDriverLicenseOCRRequest) (response *RecognizeBrazilDriverLicenseOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeBrazilDriverLicenseOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeBrazilDriverLicenseOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeBrazilDriverLicenseOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeBrazilDriverLicenseOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeBrazilIDCardOCRRequest() (request *RecognizeBrazilIDCardOCRRequest) {
    request = &RecognizeBrazilIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeBrazilIDCardOCR")
    
    
    return
}

func NewRecognizeBrazilIDCardOCRResponse() (response *RecognizeBrazilIDCardOCRResponse) {
    response = &RecognizeBrazilIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeBrazilIDCardOCR
// This interface supports identification of the front and back of Brazilian ID license. The identification fields include name, driver's license category, number, validity period, etc.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilIDCardOCR(request *RecognizeBrazilIDCardOCRRequest) (response *RecognizeBrazilIDCardOCRResponse, err error) {
    return c.RecognizeBrazilIDCardOCRWithContext(context.Background(), request)
}

// RecognizeBrazilIDCardOCR
// This interface supports identification of the front and back of Brazilian ID license. The identification fields include name, driver's license category, number, validity period, etc.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilIDCardOCRWithContext(ctx context.Context, request *RecognizeBrazilIDCardOCRRequest) (response *RecognizeBrazilIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeBrazilIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeBrazilIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeBrazilIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeBrazilIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeBrazilRNEOCRRequest() (request *RecognizeBrazilRNEOCRRequest) {
    request = &RecognizeBrazilRNEOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeBrazilRNEOCR")
    
    
    return
}

func NewRecognizeBrazilRNEOCRResponse() (response *RecognizeBrazilRNEOCRResponse) {
    response = &RecognizeBrazilRNEOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeBrazilRNEOCR
// Brazil RNE document recognition Default interface request frequency limit: 5 times/second
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilRNEOCR(request *RecognizeBrazilRNEOCRRequest) (response *RecognizeBrazilRNEOCRResponse, err error) {
    return c.RecognizeBrazilRNEOCRWithContext(context.Background(), request)
}

// RecognizeBrazilRNEOCR
// Brazil RNE document recognition Default interface request frequency limit: 5 times/second
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilRNEOCRWithContext(ctx context.Context, request *RecognizeBrazilRNEOCRRequest) (response *RecognizeBrazilRNEOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeBrazilRNEOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeBrazilRNEOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeBrazilRNEOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeBrazilRNEOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeBrazilRNMOCRRequest() (request *RecognizeBrazilRNMOCRRequest) {
    request = &RecognizeBrazilRNMOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeBrazilRNMOCR")
    
    
    return
}

func NewRecognizeBrazilRNMOCRResponse() (response *RecognizeBrazilRNMOCRResponse) {
    response = &RecognizeBrazilRNMOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeBrazilRNMOCR
// This interface supports identification of the front and back of Brazilian RNM license. The default interface request frequency limit is 5 times per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilRNMOCR(request *RecognizeBrazilRNMOCRRequest) (response *RecognizeBrazilRNMOCRResponse, err error) {
    return c.RecognizeBrazilRNMOCRWithContext(context.Background(), request)
}

// RecognizeBrazilRNMOCR
// This interface supports identification of the front and back of Brazilian RNM license. The default interface request frequency limit is 5 times per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeBrazilRNMOCRWithContext(ctx context.Context, request *RecognizeBrazilRNMOCRRequest) (response *RecognizeBrazilRNMOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeBrazilRNMOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeBrazilRNMOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeBrazilRNMOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeBrazilRNMOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeDetectCardCoordsRequest() (request *RecognizeDetectCardCoordsRequest) {
    request = &RecognizeDetectCardCoordsRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeDetectCardCoords")
    
    
    return
}

func NewRecognizeDetectCardCoordsResponse() (response *RecognizeDetectCardCoordsResponse) {
    response = &RecognizeDetectCardCoordsResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeDetectCardCoords
// This API is used to recognize the coordinates of four corners of cards.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeDetectCardCoords(request *RecognizeDetectCardCoordsRequest) (response *RecognizeDetectCardCoordsResponse, err error) {
    return c.RecognizeDetectCardCoordsWithContext(context.Background(), request)
}

// RecognizeDetectCardCoords
// This API is used to recognize the coordinates of four corners of cards.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeDetectCardCoordsWithContext(ctx context.Context, request *RecognizeDetectCardCoordsRequest) (response *RecognizeDetectCardCoordsResponse, err error) {
    if request == nil {
        request = NewRecognizeDetectCardCoordsRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeDetectCardCoords")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeDetectCardCoords require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeDetectCardCoordsResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeIndonesiaIDCardOCRRequest() (request *RecognizeIndonesiaIDCardOCRRequest) {
    request = &RecognizeIndonesiaIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeIndonesiaIDCardOCR")
    
    
    return
}

func NewRecognizeIndonesiaIDCardOCRResponse() (response *RecognizeIndonesiaIDCardOCRResponse) {
    response = &RecognizeIndonesiaIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeIndonesiaIDCardOCR
// Indonesian identity card recognition
//
// 
//
// Default API request rate limit: 5 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeIndonesiaIDCardOCR(request *RecognizeIndonesiaIDCardOCRRequest) (response *RecognizeIndonesiaIDCardOCRResponse, err error) {
    return c.RecognizeIndonesiaIDCardOCRWithContext(context.Background(), request)
}

// RecognizeIndonesiaIDCardOCR
// Indonesian identity card recognition
//
// 
//
// Default API request rate limit: 5 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeIndonesiaIDCardOCRWithContext(ctx context.Context, request *RecognizeIndonesiaIDCardOCRRequest) (response *RecognizeIndonesiaIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeIndonesiaIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeIndonesiaIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeIndonesiaIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeIndonesiaIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeMacaoIDCardOCRRequest() (request *RecognizeMacaoIDCardOCRRequest) {
    request = &RecognizeMacaoIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeMacaoIDCardOCR")
    
    
    return
}

func NewRecognizeMacaoIDCardOCRResponse() (response *RecognizeMacaoIDCardOCRResponse) {
    response = &RecognizeMacaoIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeMacaoIDCardOCR
// This API is used to recognize key fields on the photo side of a Macao (China) identity card, including name in Chinese, name in English, telecode for name, date of birth, gender, document symbol, date of the first issue, date of the last receipt, identity card number, and permanent residency attribute. 
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_CONFIGFORMATERROR = "InvalidParameter.ConfigFormatError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
func (c *Client) RecognizeMacaoIDCardOCR(request *RecognizeMacaoIDCardOCRRequest) (response *RecognizeMacaoIDCardOCRResponse, err error) {
    return c.RecognizeMacaoIDCardOCRWithContext(context.Background(), request)
}

// RecognizeMacaoIDCardOCR
// This API is used to recognize key fields on the photo side of a Macao (China) identity card, including name in Chinese, name in English, telecode for name, date of birth, gender, document symbol, date of the first issue, date of the last receipt, identity card number, and permanent residency attribute. 
//
// 
//
// This API is not fully available for the time being. For more information, please contact your [Tencent Cloud sales rep](https://intl.cloud.tencent.com/contact-sales).
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_CONFIGFORMATERROR = "InvalidParameter.ConfigFormatError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
func (c *Client) RecognizeMacaoIDCardOCRWithContext(ctx context.Context, request *RecognizeMacaoIDCardOCRRequest) (response *RecognizeMacaoIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeMacaoIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeMacaoIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeMacaoIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeMacaoIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeMainlandIDCardOCRRequest() (request *RecognizeMainlandIDCardOCRRequest) {
    request = &RecognizeMainlandIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeMainlandIDCardOCR")
    
    
    return
}

func NewRecognizeMainlandIDCardOCRResponse() (response *RecognizeMainlandIDCardOCRResponse) {
    response = &RecognizeMainlandIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeMainlandIDCardOCR
// This interface recognizes all fields on both sides of the Mainland China Resident Identity Card (second-generation), including name, gender, ethnicity, date of birth, address, ID number, issuing authority, and validity period, with an accuracy of over 99%.
//
// 
//
// In addition, the interface provides additional features for various scenarios, such as ID card and portrait photo cropping, along with five alarm detections (see table below).<table style="width:650px"> <thead> <tr> <th width="150">Value-added ability</th> <th width="500">Ability items</th> </tr> </thead> <tbody> <tr> <td rowspan="9">Alarm function</td> </tr> <tr> <td>ID card photocopy warning</td> </tr> <tr> <td>ID card on-screen display warning</td> </tr> <tr> <td>Alarm for occlusion in the ID card frame</td> </tr> <tr> <td>ID card reflective warning</td> </tr> <tr> <td>Blurry picture warning</td> </tr> </tbody> </table> Default rate limit: 20 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_CARDSIDEERROR = "FailedOperation.CardSideError"
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IDCARDINFOILLEGAL = "FailedOperation.IdCardInfoIllegal"
//  FAILEDOPERATION_IDCARDTOOSMALL = "FailedOperation.IdCardTooSmall"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOIDCARD = "FailedOperation.ImageNoIdCard"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_MULTICARDERROR = "FailedOperation.MultiCardError"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_CONFIGFORMATERROR = "InvalidParameter.ConfigFormatError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeMainlandIDCardOCR(request *RecognizeMainlandIDCardOCRRequest) (response *RecognizeMainlandIDCardOCRResponse, err error) {
    return c.RecognizeMainlandIDCardOCRWithContext(context.Background(), request)
}

// RecognizeMainlandIDCardOCR
// This interface recognizes all fields on both sides of the Mainland China Resident Identity Card (second-generation), including name, gender, ethnicity, date of birth, address, ID number, issuing authority, and validity period, with an accuracy of over 99%.
//
// 
//
// In addition, the interface provides additional features for various scenarios, such as ID card and portrait photo cropping, along with five alarm detections (see table below).<table style="width:650px"> <thead> <tr> <th width="150">Value-added ability</th> <th width="500">Ability items</th> </tr> </thead> <tbody> <tr> <td rowspan="9">Alarm function</td> </tr> <tr> <td>ID card photocopy warning</td> </tr> <tr> <td>ID card on-screen display warning</td> </tr> <tr> <td>Alarm for occlusion in the ID card frame</td> </tr> <tr> <td>ID card reflective warning</td> </tr> <tr> <td>Blurry picture warning</td> </tr> </tbody> </table> Default rate limit: 20 requests/second.
//
// error code that may be returned:
//  FAILEDOPERATION_CARDSIDEERROR = "FailedOperation.CardSideError"
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IDCARDINFOILLEGAL = "FailedOperation.IdCardInfoIllegal"
//  FAILEDOPERATION_IDCARDTOOSMALL = "FailedOperation.IdCardTooSmall"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOIDCARD = "FailedOperation.ImageNoIdCard"
//  FAILEDOPERATION_IMAGESIZETOOLARGE = "FailedOperation.ImageSizeTooLarge"
//  FAILEDOPERATION_MULTICARDERROR = "FailedOperation.MultiCardError"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_CONFIGFORMATERROR = "InvalidParameter.ConfigFormatError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeMainlandIDCardOCRWithContext(ctx context.Context, request *RecognizeMainlandIDCardOCRRequest) (response *RecognizeMainlandIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeMainlandIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeMainlandIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeMainlandIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeMainlandIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeMexicoVTIDRequest() (request *RecognizeMexicoVTIDRequest) {
    request = &RecognizeMexicoVTIDRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeMexicoVTID")
    
    
    return
}

func NewRecognizeMexicoVTIDResponse() (response *RecognizeMexicoVTIDResponse) {
    response = &RecognizeMexicoVTIDResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeMexicoVTID
// This interface supports identification of the front and back of Mexican Voter ID Card. The default interface request frequency limit is 5 times per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeMexicoVTID(request *RecognizeMexicoVTIDRequest) (response *RecognizeMexicoVTIDResponse, err error) {
    return c.RecognizeMexicoVTIDWithContext(context.Background(), request)
}

// RecognizeMexicoVTID
// This interface supports identification of the front and back of Mexican Voter ID Card. The default interface request frequency limit is 5 times per second.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
func (c *Client) RecognizeMexicoVTIDWithContext(ctx context.Context, request *RecognizeMexicoVTIDRequest) (response *RecognizeMexicoVTIDResponse, err error) {
    if request == nil {
        request = NewRecognizeMexicoVTIDRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeMexicoVTID")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeMexicoVTID require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeMexicoVTIDResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizePhilippinesDrivingLicenseOCRRequest() (request *RecognizePhilippinesDrivingLicenseOCRRequest) {
    request = &RecognizePhilippinesDrivingLicenseOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizePhilippinesDrivingLicenseOCR")
    
    
    return
}

func NewRecognizePhilippinesDrivingLicenseOCRResponse() (response *RecognizePhilippinesDrivingLicenseOCRResponse) {
    response = &RecognizePhilippinesDrivingLicenseOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizePhilippinesDrivingLicenseOCR
// This API is used to recognize a Philippine driver's license.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesDrivingLicenseOCR(request *RecognizePhilippinesDrivingLicenseOCRRequest) (response *RecognizePhilippinesDrivingLicenseOCRResponse, err error) {
    return c.RecognizePhilippinesDrivingLicenseOCRWithContext(context.Background(), request)
}

// RecognizePhilippinesDrivingLicenseOCR
// This API is used to recognize a Philippine driver's license.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesDrivingLicenseOCRWithContext(ctx context.Context, request *RecognizePhilippinesDrivingLicenseOCRRequest) (response *RecognizePhilippinesDrivingLicenseOCRResponse, err error) {
    if request == nil {
        request = NewRecognizePhilippinesDrivingLicenseOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizePhilippinesDrivingLicenseOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizePhilippinesDrivingLicenseOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizePhilippinesDrivingLicenseOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizePhilippinesSssIDOCRRequest() (request *RecognizePhilippinesSssIDOCRRequest) {
    request = &RecognizePhilippinesSssIDOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizePhilippinesSssIDOCR")
    
    
    return
}

func NewRecognizePhilippinesSssIDOCRResponse() (response *RecognizePhilippinesSssIDOCRResponse) {
    response = &RecognizePhilippinesSssIDOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizePhilippinesSssIDOCR
// This API is used to recognize a Philippine SSSID/UMID card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesSssIDOCR(request *RecognizePhilippinesSssIDOCRRequest) (response *RecognizePhilippinesSssIDOCRResponse, err error) {
    return c.RecognizePhilippinesSssIDOCRWithContext(context.Background(), request)
}

// RecognizePhilippinesSssIDOCR
// This API is used to recognize a Philippine SSSID/UMID card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesSssIDOCRWithContext(ctx context.Context, request *RecognizePhilippinesSssIDOCRRequest) (response *RecognizePhilippinesSssIDOCRResponse, err error) {
    if request == nil {
        request = NewRecognizePhilippinesSssIDOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizePhilippinesSssIDOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizePhilippinesSssIDOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizePhilippinesSssIDOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizePhilippinesTinIDOCRRequest() (request *RecognizePhilippinesTinIDOCRRequest) {
    request = &RecognizePhilippinesTinIDOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizePhilippinesTinIDOCR")
    
    
    return
}

func NewRecognizePhilippinesTinIDOCRResponse() (response *RecognizePhilippinesTinIDOCRResponse) {
    response = &RecognizePhilippinesTinIDOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizePhilippinesTinIDOCR
// This API is used to recognize a Philippine TIN ID card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesTinIDOCR(request *RecognizePhilippinesTinIDOCRRequest) (response *RecognizePhilippinesTinIDOCRResponse, err error) {
    return c.RecognizePhilippinesTinIDOCRWithContext(context.Background(), request)
}

// RecognizePhilippinesTinIDOCR
// This API is used to recognize a Philippine TIN ID card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesTinIDOCRWithContext(ctx context.Context, request *RecognizePhilippinesTinIDOCRRequest) (response *RecognizePhilippinesTinIDOCRResponse, err error) {
    if request == nil {
        request = NewRecognizePhilippinesTinIDOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizePhilippinesTinIDOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizePhilippinesTinIDOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizePhilippinesTinIDOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizePhilippinesUMIDOCRRequest() (request *RecognizePhilippinesUMIDOCRRequest) {
    request = &RecognizePhilippinesUMIDOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizePhilippinesUMIDOCR")
    
    
    return
}

func NewRecognizePhilippinesUMIDOCRResponse() (response *RecognizePhilippinesUMIDOCRResponse) {
    response = &RecognizePhilippinesUMIDOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizePhilippinesUMIDOCR
// This API is used to recognize a Philippine Unified Multi-Purpose ID (UMID) card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesUMIDOCR(request *RecognizePhilippinesUMIDOCRRequest) (response *RecognizePhilippinesUMIDOCRResponse, err error) {
    return c.RecognizePhilippinesUMIDOCRWithContext(context.Background(), request)
}

// RecognizePhilippinesUMIDOCR
// This API is used to recognize a Philippine Unified Multi-Purpose ID (UMID) card.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesUMIDOCRWithContext(ctx context.Context, request *RecognizePhilippinesUMIDOCRRequest) (response *RecognizePhilippinesUMIDOCRResponse, err error) {
    if request == nil {
        request = NewRecognizePhilippinesUMIDOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizePhilippinesUMIDOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizePhilippinesUMIDOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizePhilippinesUMIDOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizePhilippinesVoteIDOCRRequest() (request *RecognizePhilippinesVoteIDOCRRequest) {
    request = &RecognizePhilippinesVoteIDOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizePhilippinesVoteIDOCR")
    
    
    return
}

func NewRecognizePhilippinesVoteIDOCRResponse() (response *RecognizePhilippinesVoteIDOCRResponse) {
    response = &RecognizePhilippinesVoteIDOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizePhilippinesVoteIDOCR
// This API is used to recognize a Philippine voters ID card. It can recognize fields such as first name, family name, date of birth, civil status, citizenship, address, precinct, and voter's identification number (VIN).
//
// 
//
// The API request rate is limited to 20 requests/sec by default.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesVoteIDOCR(request *RecognizePhilippinesVoteIDOCRRequest) (response *RecognizePhilippinesVoteIDOCRResponse, err error) {
    return c.RecognizePhilippinesVoteIDOCRWithContext(context.Background(), request)
}

// RecognizePhilippinesVoteIDOCR
// This API is used to recognize a Philippine voters ID card. It can recognize fields such as first name, family name, date of birth, civil status, citizenship, address, precinct, and voter's identification number (VIN).
//
// 
//
// The API request rate is limited to 20 requests/sec by default.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizePhilippinesVoteIDOCRWithContext(ctx context.Context, request *RecognizePhilippinesVoteIDOCRRequest) (response *RecognizePhilippinesVoteIDOCRResponse, err error) {
    if request == nil {
        request = NewRecognizePhilippinesVoteIDOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizePhilippinesVoteIDOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizePhilippinesVoteIDOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizePhilippinesVoteIDOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeSingaporeIDCardOCRRequest() (request *RecognizeSingaporeIDCardOCRRequest) {
    request = &RecognizeSingaporeIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeSingaporeIDCardOCR")
    
    
    return
}

func NewRecognizeSingaporeIDCardOCRResponse() (response *RecognizeSingaporeIDCardOCRResponse) {
    response = &RecognizeSingaporeIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeSingaporeIDCardOCR
// This interface supports the identification of all fields on the front side of ID card for Singapore residents.The identification accuracy reaches more than 99%.In addition, this interface also supports a variety of value-added capabilities to meet the needs of different scenarios. Such as the cropping function of ID card photos and portrait photos, and also has 5 alarm functions.
//
// As shown in the table below. <table style="width:650px"> <thead> <tr> <th width="150">Value-added ability</th> <th width="500">Ability items</th> </tr> </thead> <tbody> <tr> <td rowspan="9">Alarm function</td> </tr> <tr> <td>ID card copy warning</td> </tr> <tr> <td>ID card copy warning</td> </tr> <tr> <td>Alarm for occlusion in the ID card frame</td> </tr> <tr> <td>ID card reflective warning</td> </tr> <tr> <td>Blurry picture warning</td> </tr> </tbody> </table> Default interface request frequency limit: 20 times/second
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeSingaporeIDCardOCR(request *RecognizeSingaporeIDCardOCRRequest) (response *RecognizeSingaporeIDCardOCRResponse, err error) {
    return c.RecognizeSingaporeIDCardOCRWithContext(context.Background(), request)
}

// RecognizeSingaporeIDCardOCR
// This interface supports the identification of all fields on the front side of ID card for Singapore residents.The identification accuracy reaches more than 99%.In addition, this interface also supports a variety of value-added capabilities to meet the needs of different scenarios. Such as the cropping function of ID card photos and portrait photos, and also has 5 alarm functions.
//
// As shown in the table below. <table style="width:650px"> <thead> <tr> <th width="150">Value-added ability</th> <th width="500">Ability items</th> </tr> </thead> <tbody> <tr> <td rowspan="9">Alarm function</td> </tr> <tr> <td>ID card copy warning</td> </tr> <tr> <td>ID card copy warning</td> </tr> <tr> <td>Alarm for occlusion in the ID card frame</td> </tr> <tr> <td>ID card reflective warning</td> </tr> <tr> <td>Blurry picture warning</td> </tr> </tbody> </table> Default interface request frequency limit: 20 times/second
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETER_ENGINEIMAGEDECODEFAILED = "InvalidParameter.EngineImageDecodeFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeSingaporeIDCardOCRWithContext(ctx context.Context, request *RecognizeSingaporeIDCardOCRRequest) (response *RecognizeSingaporeIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeSingaporeIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeSingaporeIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeSingaporeIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeSingaporeIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeThaiIDCardOCRRequest() (request *RecognizeThaiIDCardOCRRequest) {
    request = &RecognizeThaiIDCardOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeThaiIDCardOCR")
    
    
    return
}

func NewRecognizeThaiIDCardOCRResponse() (response *RecognizeThaiIDCardOCRResponse) {
    response = &RecognizeThaiIDCardOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeThaiIDCardOCR
// This API is used to recognize the fields on a Thai identity card, including name in Thai, name in English, address, date of birth, identification number, date of issue, and date of expiry.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeThaiIDCardOCR(request *RecognizeThaiIDCardOCRRequest) (response *RecognizeThaiIDCardOCRResponse, err error) {
    return c.RecognizeThaiIDCardOCRWithContext(context.Background(), request)
}

// RecognizeThaiIDCardOCR
// This API is used to recognize the fields on a Thai identity card, including name in Thai, name in English, address, date of birth, identification number, date of issue, and date of expiry.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEBLUR = "FailedOperation.ImageBlur"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  FAILEDOPERATION_WARNINGSERVICEFAILED = "FailedOperation.WarningServiceFailed"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) RecognizeThaiIDCardOCRWithContext(ctx context.Context, request *RecognizeThaiIDCardOCRRequest) (response *RecognizeThaiIDCardOCRResponse, err error) {
    if request == nil {
        request = NewRecognizeThaiIDCardOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeThaiIDCardOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeThaiIDCardOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeThaiIDCardOCRResponse()
    err = c.Send(request, response)
    return
}

func NewRecognizeThaiPinkCardRequest() (request *RecognizeThaiPinkCardRequest) {
    request = &RecognizeThaiPinkCardRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "RecognizeThaiPinkCard")
    
    
    return
}

func NewRecognizeThaiPinkCardResponse() (response *RecognizeThaiPinkCardResponse) {
    response = &RecognizeThaiPinkCardResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// RecognizeThaiPinkCard
// This API is used to recognize the fields on a Thai identity card, including name in Thai, name in English, address, date of birth, identification number, date of issue, and date of expiry.
//
// Currently, this API is not generally available. For more information, please [contact your sales rep](https://intl.cloud.tencent.com/zh/contact-us).
//
// 
//
// A maximum of 5 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) RecognizeThaiPinkCard(request *RecognizeThaiPinkCardRequest) (response *RecognizeThaiPinkCardResponse, err error) {
    return c.RecognizeThaiPinkCardWithContext(context.Background(), request)
}

// RecognizeThaiPinkCard
// This API is used to recognize the fields on a Thai identity card, including name in Thai, name in English, address, date of birth, identification number, date of issue, and date of expiry.
//
// Currently, this API is not generally available. For more information, please [contact your sales rep](https://intl.cloud.tencent.com/zh/contact-us).
//
// 
//
// A maximum of 5 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_IMAGENOSPECIFIEDCARD = "FailedOperation.ImageNoSpecifiedCard"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
//  UNKNOWNPARAMETER = "UnknownParameter"
func (c *Client) RecognizeThaiPinkCardWithContext(ctx context.Context, request *RecognizeThaiPinkCardRequest) (response *RecognizeThaiPinkCardResponse, err error) {
    if request == nil {
        request = NewRecognizeThaiPinkCardRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "RecognizeThaiPinkCard")
    
    if c.GetCredential() == nil {
        return nil, errors.New("RecognizeThaiPinkCard require credential")
    }

    request.SetContext(ctx)
    
    response = NewRecognizeThaiPinkCardResponse()
    err = c.Send(request, response)
    return
}

func NewSmartStructuralOCRV2Request() (request *SmartStructuralOCRV2Request) {
    request = &SmartStructuralOCRV2Request{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "SmartStructuralOCRV2")
    
    
    return
}

func NewSmartStructuralOCRV2Response() (response *SmartStructuralOCRV2Response) {
    response = &SmartStructuralOCRV2Response{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// SmartStructuralOCRV2
// This API is used to recognize fields from cards, documents, bills, forms, contracts, and other structured information. It is flexible and efficient to use, without any configuration required. This API is suitable for recognizing structured information.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) SmartStructuralOCRV2(request *SmartStructuralOCRV2Request) (response *SmartStructuralOCRV2Response, err error) {
    return c.SmartStructuralOCRV2WithContext(context.Background(), request)
}

// SmartStructuralOCRV2
// This API is used to recognize fields from cards, documents, bills, forms, contracts, and other structured information. It is flexible and efficient to use, without any configuration required. This API is suitable for recognizing structured information.
//
// 
//
// A maximum of 10 requests can be initiated per second for this API.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) SmartStructuralOCRV2WithContext(ctx context.Context, request *SmartStructuralOCRV2Request) (response *SmartStructuralOCRV2Response, err error) {
    if request == nil {
        request = NewSmartStructuralOCRV2Request()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "SmartStructuralOCRV2")
    
    if c.GetCredential() == nil {
        return nil, errors.New("SmartStructuralOCRV2 require credential")
    }

    request.SetContext(ctx)
    
    response = NewSmartStructuralOCRV2Response()
    err = c.Send(request, response)
    return
}

func NewVinOCRRequest() (request *VinOCRRequest) {
    request = &VinOCRRequest{
        BaseRequest: &tchttp.BaseRequest{},
    }
    
    request.Init().WithApiInfo("ocr", APIVersion, "VinOCR")
    
    
    return
}

func NewVinOCRResponse() (response *VinOCRResponse) {
    response = &VinOCRResponse{
        BaseResponse: &tchttp.BaseResponse{},
    } 
    return

}

// VinOCR
// This API is used to recognize the vehicle identification number (VIN) in an image.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) VinOCR(request *VinOCRRequest) (response *VinOCRResponse, err error) {
    return c.VinOCRWithContext(context.Background(), request)
}

// VinOCR
// This API is used to recognize the vehicle identification number (VIN) in an image.
//
// error code that may be returned:
//  FAILEDOPERATION_DOWNLOADERROR = "FailedOperation.DownLoadError"
//  FAILEDOPERATION_EMPTYIMAGEERROR = "FailedOperation.EmptyImageError"
//  FAILEDOPERATION_IMAGEDECODEFAILED = "FailedOperation.ImageDecodeFailed"
//  FAILEDOPERATION_OCRFAILED = "FailedOperation.OcrFailed"
//  FAILEDOPERATION_UNKNOWERROR = "FailedOperation.UnKnowError"
//  FAILEDOPERATION_UNOPENERROR = "FailedOperation.UnOpenError"
//  INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUELIMIT = "InvalidParameterValue.InvalidParameterValueLimit"
//  LIMITEXCEEDED_TOOLARGEFILEERROR = "LimitExceeded.TooLargeFileError"
//  RESOURCEUNAVAILABLE_INARREARS = "ResourceUnavailable.InArrears"
//  RESOURCEUNAVAILABLE_RESOURCEPACKAGERUNOUT = "ResourceUnavailable.ResourcePackageRunOut"
//  RESOURCESSOLDOUT_CHARGESTATUSEXCEPTION = "ResourcesSoldOut.ChargeStatusException"
func (c *Client) VinOCRWithContext(ctx context.Context, request *VinOCRRequest) (response *VinOCRResponse, err error) {
    if request == nil {
        request = NewVinOCRRequest()
    }
    c.InitBaseRequest(&request.BaseRequest, "ocr", APIVersion, "VinOCR")
    
    if c.GetCredential() == nil {
        return nil, errors.New("VinOCR require credential")
    }

    request.SetContext(ctx)
    
    response = NewVinOCRResponse()
    err = c.Send(request, response)
    return
}
