/* Generated: 28/02/2020 11:28:37 PM */
// Requires: jQuery
// Requires: Models

DataAction.Edc.Services.Model.Metadata = [
  {
    name: 'DataAction.Edc.Services.Model.Veda.IdentityVerificationDvs',
    meta: {
      fields: [
        { name: 'ServiceName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MemberCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BranchCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ConfigurationName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Username', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Password', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsBirthCertificateDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateDateOfPrint', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'BirthCertificateDateOfPrintSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredFamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredGivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredOtherName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegistrationDate', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'BirthCertificateRegistrationNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegistrationState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressUnitNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressSuburb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressPostcode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressCountry', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsPreviousAddressEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressUnitNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressSuburb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressPostcode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressCountry', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsDrivingLicenseDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseStateCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsMedicareDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareReferenceNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardColour', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'MedicareMiddleNameOnCard', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsPassportDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PassportCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'PassportDateOfExpirySpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PassportMotherMaidenFamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportVisaDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'FamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OtherGivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DateOfBirth', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'DateOfBirthSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Gender', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GenderSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'EmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AlternativeEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'HomePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'WorkPhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MobilePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmployerPhoneNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'MedicareCardColour', errormessage: '' },
        { type: 'regex', subtype: 'name', field: 'MedicareMiddleNameOnCard', errormessage: 'InvalidName', regex: '^[a-zA-Z\\- \']*$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.InternationalTransfer.QuoteRequest',
    meta: {
      fields: [
        { name: 'ToCurrencyCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'UseForeignCurrencyAsBase', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'IsValidated', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'IsIndicativeQuote', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ToCurrencyCode', errormessage: 'ToCurrencyCodeIsRequired' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.InternationalTransfer.ImmediateInternationalTransaction',
    meta: {
      fields: [
        { name: 'Timestamp', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'ExchangeRate', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Reference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ForeignAmount', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'AudAmount', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'ToCurrencyCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'TransferFee', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Account', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AccountDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PurposeOfPayment', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryAccountName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryAddressLine1', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryAddressLine2', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryCity', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryStateProvince', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryPostCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BeneficiaryCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialBankName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialBankAccountOrIban', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialRoutingCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialSwiftCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialBankAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialCity', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialStateProvince', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialPostCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialPhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FinancialBeneficiaryTaxId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RequireRoutingAndSwiftCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RequireBeneficiaryTaxId', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'RequirePhone', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'LabelBankAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LabelBankRoutingCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RequireBankRoutingCode', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'RequirePurposeOfPayment', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'foreignamount', field: 'ForeignAmount', errormessage: 'InvalidForeignAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,4})?$)' },
        { type: 'required', subtype: '', field: 'ForeignAmount', errormessage: '' },
        { type: 'required', subtype: '', field: 'AudAmount', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'AudAmount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'ToCurrencyCode', errormessage: '' },
        { type: 'required', subtype: '', field: 'Account', errormessage: '' },
        { type: 'regex', subtype: 'accountnumber', field: 'Account', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'PurposeOfPayment', errormessage: '34', stringlength: '34' },
        { type: 'requiredif', subtype: '', field: 'PurposeOfPayment', errormessage: 'PurposeOfPaymentIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'BeneficiaryAccountName', errormessage: '35', stringlength: '35' },
        { type: 'required', subtype: '', field: 'BeneficiaryAccountName', errormessage: 'BeneficiaryAccountNameIsRequired' },
        { type: 'required', subtype: '', field: 'BeneficiaryAddressLine1', errormessage: 'BeneficiaryAddressLine1IsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'BeneficiaryAddressLine1', errormessage: '35', stringlength: '35' },
        { type: 'stringlength', subtype: 'stringlength', field: 'BeneficiaryCity', errormessage: '35', stringlength: '35' },
        { type: 'required', subtype: '', field: 'BeneficiaryCity', errormessage: 'BeneficiaryCityIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'BeneficiaryStateProvince', errormessage: '20', stringlength: '20' },
        { type: 'stringlength', subtype: 'stringlength', field: 'BeneficiaryPostCode', errormessage: '20', stringlength: '20' },
        { type: 'required', subtype: '', field: 'BeneficiaryCountryCode', errormessage: 'BeneficiaryCountryCodeIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialBankName', errormessage: '35', stringlength: '35' },
        { type: 'required', subtype: '', field: 'FinancialBankName', errormessage: 'FinancialBankNameIsRequired' },
        { type: 'required', subtype: '', field: 'FinancialBankAccountOrIban', errormessage: 'FinancialBankAccountOrIbanIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialBankAccountOrIban', errormessage: '34', stringlength: '34' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialRoutingCode', errormessage: '29', stringlength: '29' },
        { type: 'requiredif', subtype: '', field: 'FinancialRoutingCode', errormessage: 'FinancialRoutingCodeIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialSwiftCode', errormessage: '11', stringlength: '11' },
        { type: 'requiredif', subtype: '', field: 'FinancialSwiftCode', errormessage: 'FinancialSwiftCodeIsRequired' },
        { type: 'required', subtype: '', field: 'FinancialBankAddress', errormessage: 'FinancialBankAddressIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialBankAddress', errormessage: '35', stringlength: '35' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialCity', errormessage: '35', stringlength: '35' },
        { type: 'required', subtype: '', field: 'FinancialCity', errormessage: 'FinancialCityIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialStateProvince', errormessage: '20', stringlength: '20' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialPostCode', errormessage: '20', stringlength: '20' },
        { type: 'required', subtype: '', field: 'FinancialCountryCode', errormessage: 'FinancialCountryCodeIsRequired' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FinancialPhoneNumber', errormessage: '34', stringlength: '34' },
        { type: 'regex', subtype: 'regularexpression', field: 'Factor2Code', errormessage: '', regex: '^[0-9]+$' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.User.ChangePasswordRequest',
    meta: {
      fields: [
        { name: 'OldPassword', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NewPassword', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'OldPassword', errormessage: '' },
        { type: 'required', subtype: '', field: 'NewPassword', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.User.UserPreference',
    meta: {
      fields: [
        { name: 'CU_NUM', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MN', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LrgFont', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BalTranHist', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DisableExternalTransfers', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ReceiptEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ReceiptTxnTypes', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreferredDebitAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmailInternationalTransfer', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.History.TransactionDetailSearch',
    meta: {
      fields: [
        { name: 'AccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'TransactionType', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'BeginDate', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'EndDate', type: 'datetime', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'AccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Transfer.ImmediateMembershipTransaction',
    meta: {
      fields: [
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LodgementReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'SendReceipt', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'FromAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'FromAccount', errormessage: 'FromAccountIsRequired' },
        { type: 'required', subtype: '', field: 'ToAccount', errormessage: 'ToAccountIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'ToAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Transfer.InstitutionSurnameSearch',
    meta: {
      fields: [
        { name: 'AccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Surname', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'AccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'AccountNumber', errormessage: 'AccountNumberIsRequired' },
        { type: 'required', subtype: '', field: 'Surname', errormessage: 'SurnameIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Transfer.ImmediateInstitutionTransaction',
    meta: {
      fields: [
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LodgementReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToAccountSurname', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'SaveToFavourites', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SaveAsValidated', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SendReceipt', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PayeeEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'FromAccount', errormessage: 'FromAccountIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'FromAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'ToAccount', errormessage: 'ToAccountIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'ToAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'ToAccountSurname', errormessage: 'ToAccountSurnameIsRequired' },
        { type: 'required', subtype: '', field: 'Id', errormessage: 'IdIsRequired' },
        { type: 'required', subtype: '', field: 'SaveToFavourites', errormessage: 'SaveToFavouritesIsRequired' },
        { type: 'required', subtype: '', field: 'SaveAsValidated', errormessage: 'SaveAsValidatedIsRequired' },
        { type: 'required', subtype: '', field: 'SendReceipt', errormessage: 'SendReceiptIsRequired' },
        { type: 'regex', subtype: 'email', field: 'PayeeEmailAddress', errormessage: 'InvalidEmail', regex: '^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,3}))$' },
        { type: 'regex', subtype: 'factor2code', field: 'Factor2Code', errormessage: 'InvalidFactor2Code', regex: '^[0-9]*$' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.SavedTransactions.InstitutionPayeeSearch',
    meta: {
      fields: [
        { name: 'PayeeAccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LodgementReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'PayeeAccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Transfer.ImmediateExternalTransaction',
    meta: {
      fields: [
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LodgementReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToBsb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToBsbName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PayeeAccountTitle', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'SaveToFavourites', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SaveAsValidated', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SendReceipt', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PayeeEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'FromAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'FromAccount', errormessage: 'FromAccountIsRequired' },
        { type: 'required', subtype: '', field: 'ToAccount', errormessage: 'ToAccountIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'ToAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'ToBsb', errormessage: 'ToBsbIsRequired' },
        { type: 'regex', subtype: 'bsbnumber', field: 'ToBsb', errormessage: 'InvalidBSBNumber', regex: '^[0-9]{6}$' },
        { type: 'required', subtype: '', field: 'PayeeAccountTitle', errormessage: 'PayeeAccountTitleIsRequired' },
        { type: 'required', subtype: '', field: 'Id', errormessage: 'IdIsRequired' },
        { type: 'required', subtype: '', field: 'SaveToFavourites', errormessage: 'SaveToFavouritesIsRequired' },
        { type: 'required', subtype: '', field: 'SaveAsValidated', errormessage: 'SaveAsValidatedIsRequired' },
        { type: 'required', subtype: '', field: 'SendReceipt', errormessage: 'SendReceiptIsRequired' },
        { type: 'regex', subtype: 'email', field: 'PayeeEmailAddress', errormessage: 'InvalidEmail', regex: '^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,3}))$' },
        { type: 'regex', subtype: 'factor2code', field: 'Factor2Code', errormessage: 'InvalidFactor2Code', regex: '^[0-9]*$' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.SavedTransactions.ExternalPayeeSearch',
    meta: {
      fields: [
        { name: 'Bsb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PayeeAccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PayeeAccountTitle', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LodgementReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OnlySecureSMSValidated', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'bsbnumber', field: 'Bsb', errormessage: 'InvalidBSBNumber', regex: '^[0-9]{6}$' },
        { type: 'regex', subtype: 'accountnumber', field: 'PayeeAccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Staff.CreateStaffChannelLogRequest',
    meta: {
      fields: [
        { name: 'UserId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicationType', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicationId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicationStatus', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Reason', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Device.Device',
    meta: {
      fields: [
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RegistrationDate', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'Name', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Enabled', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'ReportedLost', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'AllowNotification', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'ChangePin', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'FailedLogins', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ProviderUnregistered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'ProviderUnregisteredTime', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'Factor2OnRegistration', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'LastUsedDate', type: 'datetime', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'DeviceId', errormessage: 'DeviceIdRequired' },
        { type: 'regex', subtype: 'devicename', field: 'Name', errormessage: 'InvalidDeviceName', regex: '^[a-zA-Z0-9 ,\'\\-\\.\\(\\)\\[\\]_]*$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Device.ChangeNotificationIdRequest',
    meta: {
      fields: [
        { name: 'OldNotificationId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NewNotificationId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'NewNotificationId', errormessage: '' },
        { type: 'required', subtype: '', field: 'DeviceId', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Device.DeviceRegistration',
    meta: {
      fields: [
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UserId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Password', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Pin', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DeviceName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AuthenticationId', type: 'number', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'DeviceId', errormessage: '' },
        { type: 'required', subtype: '', field: 'UserId', errormessage: '' },
        { type: 'regex', subtype: 'membernumber', field: 'UserId', errormessage: 'InvalidMemberNumber', regex: '^[0-9]{1,20}$' },
        { type: 'required', subtype: '', field: 'Password', errormessage: '' },
        { type: 'required', subtype: '', field: 'Pin', errormessage: '' },
        { type: 'regex', subtype: 'devicename', field: 'DeviceName', errormessage: 'InvalidDeviceName', regex: '^[a-zA-Z0-9 ,\'\\-\\.\\(\\)\\[\\]_]*$' },
        { type: 'required', subtype: '', field: 'DeviceName', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Device.ChangePinRequest',
    meta: {
      fields: [
        { name: 'OldPin', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NewPin', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'OldPin', errormessage: '' },
        { type: 'required', subtype: '', field: 'NewPin', errormessage: '' },
        { type: 'required', subtype: '', field: 'DeviceId', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.LoanStatusRequest',
    meta: {
      fields: [
        { name: 'Domain', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OrganisationId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DualBrandedOrganisationId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CaiOrganisation', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CaiServiceId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CaiServiceIdForAuthentication', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BranchNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanObject',
    meta: {
      fields: [
        { name: 'LoanApplication', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'LoginDetails', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'IgnoreIdCheckOnSave', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'StaffChannelLog', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanApplication',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LoginId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'Guid', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LoanType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Description', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LoanObject', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Enabled', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Submitted', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'DateAdded', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'DateModified', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'OverseasTaxObligationsFlag', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'OverseasTaxObligationsReference', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentStage', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'LoanType', errormessage: '' },
        { type: 'required', subtype: '', field: 'LoanObject', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoginDetails',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'EncryptedPassword', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Email', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Password', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DateAdded', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'DateLastLoggedIn', type: 'datetime', datatype: 'Custom', nullable: false },
        { name: 'ChangePassword', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'Email', errormessage: '' },
        { type: 'required', subtype: '', field: 'Password', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Staff.StaffChannelLog',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'UserId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'UserName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ApplicationType', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicationId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Reason', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Created', type: 'datetime', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanSession',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LoginId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'Email', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Guid', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Receipt', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Saved', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.StaffLoginRequest',
    meta: {
      fields: [
        { name: 'ApplicationId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Token', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'guid', field: 'Token', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' },
        { type: 'required', subtype: '', field: 'Token', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanData',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'LoanConfig', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'LoanDetail', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Applicants', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Employments', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Incomes', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Deductions', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Dependants', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Assets', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Liabilities', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Expenses', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'OtherAddresses', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'References', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantConfirmations', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Questions', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Answers', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'CompletionDetail', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'IdentityVerifications', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Relationships', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'LoanDetail', errormessage: '' },
        { type: 'required', subtype: '', field: 'Applicants', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.KeyValuePair',
    meta: {
      fields: [
        { name: 'Key', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Value', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'Key', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanConfig',
    meta: {
      fields: [
        { name: 'InterestRate', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxCurrentLoans', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxCreditCards', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxExpenses', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxAssets', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxDependants', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MinLoanTerm', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxLoanTerm', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LoanTermInterval', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'MaxApplicants', type: 'number', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'range', subtype: 'intnonnegative', field: 'MaxCurrentLoans', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxCreditCards', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxExpenses', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxAssets', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxDependants', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MinLoanTerm', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxLoanTerm', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'LoanTermInterval', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'MaxApplicants', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoanDetail',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'CurrentStage', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ProductId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'PurposeId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ProductRateId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'PurposeCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LoanNum', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ProductDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ProductLabel', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PurposeDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OtherPurpose', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LoanAmt', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LoanTermYears', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LoanTermMonths', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RepaymentFrequency', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'Balance', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FoundPurchase', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'NewVehicle', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PurchasePrice', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'PlanToSpend', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FurtherDetails', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'id', field: 'ProductId', errormessage: 'InvalidId', regex: '^[1-9][0-9]*$' },
        { type: 'required', subtype: '', field: 'ProductId', errormessage: '' },
        { type: 'regex', subtype: 'id', field: 'PurposeId', errormessage: 'InvalidId', regex: '^[1-9][0-9]*$' },
        { type: 'required', subtype: '', field: 'PurposeId', errormessage: '' },
        { type: 'regex', subtype: 'id', field: 'ProductRateId', errormessage: 'InvalidId', regex: '^[1-9][0-9]*$' },
        { type: 'regex', subtype: 'iddecimal', field: 'LoanNum', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ProductDescription', errormessage: '' },
        { type: 'required', subtype: '', field: 'PurposeDescription', errormessage: '' },
        { type: 'required', subtype: '', field: 'OtherPurpose', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'LoanAmt', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'LoanAmt', errormessage: '' },
        { type: 'range', subtype: 'range', field: 'LoanTermYears', errormessage: '0 and 50', minimum: '0', maximum: '50' },
        { type: 'range', subtype: 'intnonnegative', field: 'LoanTermYears', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'range', field: 'LoanTermMonths', errormessage: '0 and 360', minimum: '0', maximum: '360' },
        { type: 'range', subtype: 'intnonnegative', field: 'LoanTermMonths', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'required', subtype: '', field: 'RepaymentFrequency', errormessage: '' },
        { type: 'required', subtype: '', field: 'Balance', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'Balance', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'range', subtype: 'range', field: 'Balance', errormessage: '$0 and $1000000', minimum: '0', maximum: '1000000' },
        { type: 'required', subtype: '', field: 'PurchasePrice', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'PurchasePrice', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'regex', subtype: 'amount', field: 'PlanToSpend', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'PlanToSpend', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Applicant',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RimNo', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NewPassword', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CbsPassword', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Title', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FirstName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MiddleName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LastName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Name', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DateOfBirth', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'LicenceNo', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'HaveDLN', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'HaveMDLNAME', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'GenderDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MaritalStatusDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ResidentialAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedResidentialAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'MailingAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedMailingAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ResidentialYears', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ResidentialMonths', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'LivingArrangements', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NumberOfResidences', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'HomePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'WorkPhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MobileNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Email', type: 'string', datatype: 'EmailAddress', nullable: false },
        { name: 'AppId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Income', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Frequency', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Dependants', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Nomination', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'Id', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'regex', subtype: 'rim', field: 'RimNo', errormessage: 'InvalidRim', regex: '^[0-9]{1,20}$' },
        { type: 'required', subtype: '', field: 'Title', errormessage: '' },
        { type: 'regex', subtype: 'name', field: 'FirstName', errormessage: 'InvalidName', regex: '^[a-zA-Z\\- \']*$' },
        { type: 'required', subtype: '', field: 'FirstName', errormessage: '' },
        { type: 'stringlength', subtype: 'stringlength', field: 'FirstName', errormessage: '60', stringlength: '60' },
        { type: 'regex', subtype: 'name', field: 'MiddleName', errormessage: 'InvalidName', regex: '^[a-zA-Z\\- \']*$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'MiddleName', errormessage: '', stringlength: '255' },
        { type: 'required', subtype: '', field: 'LastName', errormessage: '' },
        { type: 'regex', subtype: 'name', field: 'LastName', errormessage: 'InvalidName', regex: '^[a-zA-Z\\- \']*$' },
        { type: 'required', subtype: '', field: 'DateOfBirth', errormessage: '' },
        { type: 'required', subtype: '', field: 'GenderDesc', errormessage: '' },
        { type: 'required', subtype: '', field: 'MaritalStatusDesc', errormessage: '' },
        { type: 'regex', subtype: 'address', field: 'ResidentialAddress', errormessage: 'InvalidAddress', regex: '' },
        { type: 'regex', subtype: 'address', field: 'MailingAddress', errormessage: 'InvalidAddress', regex: '' },
        { type: 'range', subtype: 'range', field: 'ResidentialYears', errormessage: '0 and 100', minimum: '0', maximum: '100' },
        { type: 'required', subtype: '', field: 'ResidentialYears', errormessage: '' },
        { type: 'required', subtype: '', field: 'ResidentialMonths', errormessage: '' },
        { type: 'range', subtype: 'range', field: 'ResidentialMonths', errormessage: '0 and 11', minimum: '0', maximum: '11' },
        { type: 'required', subtype: '', field: 'LivingArrangements', errormessage: '' },
        { type: 'range', subtype: 'intnonnegative', field: 'NumberOfResidences', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'regex', subtype: 'phonenumber', field: 'HomePhoneNumber', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'regex', subtype: 'phonenumber', field: 'WorkPhoneNumber', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'regex', subtype: 'phonenumber', field: 'MobileNumber', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'required', subtype: '', field: 'Email', errormessage: '' },
        { type: 'regex', subtype: 'email', field: 'Email', errormessage: 'InvalidEmail', regex: '^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,3}))$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'Email', errormessage: '200', stringlength: '200' },
        { type: 'required', subtype: '', field: 'AppId', errormessage: '' },
        { type: 'regex', subtype: 'id', field: 'AppId', errormessage: 'InvalidId', regex: '^[1-9][0-9]*$' },
        { type: 'regex', subtype: 'zeroamount', field: 'Income', errormessage: 'InvalidAmount', regex: '(?!^[.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'Income', errormessage: '' },
        { type: 'required', subtype: '', field: 'Frequency', errormessage: '' },
        { type: 'required', subtype: '', field: 'Dependants', errormessage: '' },
        { type: 'range', subtype: 'intnonnegative', field: 'Dependants', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'required', subtype: '', field: 'Nomination', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Employment',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'StatusDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'StatusDesc2', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'TimeWorked', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OccupationDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Profession', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmployerName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmployerAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedEmployerAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'BusinessType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Years', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Months', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Start', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'End', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'Another', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SourceIncome', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousEmployment', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'TimeWorked', errormessage: '' },
        { type: 'required', subtype: '', field: 'OccupationDesc', errormessage: '' },
        { type: 'required', subtype: '', field: 'Profession', errormessage: '' },
        { type: 'required', subtype: '', field: 'EmployerName', errormessage: '' },
        { type: 'required', subtype: '', field: 'BusinessType', errormessage: '' },
        { type: 'required', subtype: '', field: 'Years', errormessage: '' },
        { type: 'range', subtype: 'intnonnegative', field: 'Years', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'range', field: 'Years', errormessage: '0 and 100', minimum: '0', maximum: '100' },
        { type: 'range', subtype: 'range', field: 'Months', errormessage: '0 and 12', minimum: '0', maximum: '12' },
        { type: 'range', subtype: 'intnonnegative', field: 'Months', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'required', subtype: '', field: 'Months', errormessage: '' },
        { type: 'required', subtype: '', field: 'SourceIncome', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Income',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'IncomeTypeDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GrossAmount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'NetAmount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FrequencyDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Description', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PropertyAddress', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'IncomeTypeDesc', errormessage: '' },
        { type: 'range', subtype: 'range', field: 'GrossAmount', errormessage: '$1 and $1000000', minimum: '0', maximum: '1000000' },
        { type: 'range', subtype: 'range', field: 'NetAmount', errormessage: '$1 and $1000000', minimum: '0', maximum: '1000000' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Deduction',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'IncomeTypeDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Description', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GrossAmount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FrequencyDesc', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'IncomeTypeDesc', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'GrossAmount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'range', subtype: 'range', field: 'GrossAmount', errormessage: '$1 and $1000000', minimum: '1', maximum: '1000000' },
        { type: 'required', subtype: '', field: 'GrossAmount', errormessage: '' },
        { type: 'required', subtype: '', field: 'FrequencyDesc', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Dependant',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Age', type: 'number', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'range', subtype: 'age', field: 'Age', errormessage: '0 and 140', minimum: '0', maximum: '140' },
        { type: 'required', subtype: '', field: 'Age', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Asset',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Type', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MarketValue', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Address', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Value', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'VehicleYear', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'VehicleMake', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'VehicleModel', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'InstitutionName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'InsuranceProvider', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Details', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MakeModel', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Savings', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'OtherSavings', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Shares', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'HomeContents', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AssetId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Security', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Locked', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Enabled', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PropertyType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AccountType', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'Type', errormessage: '' },
        { type: 'regex', subtype: 'year', field: 'VehicleYear', errormessage: 'InvalidYear', regex: '^[0-9]{4}$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'VehicleModel', errormessage: '30', stringlength: '30' },
        { type: 'stringlength', subtype: 'stringlength', field: 'InsuranceProvider', errormessage: '', stringlength: '50' },
        { type: 'stringlength', subtype: 'stringlength', field: 'Details', errormessage: '', stringlength: '50' },
        { type: 'regex', subtype: 'amount', field: 'Savings', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'regex', subtype: 'amount', field: 'OtherSavings', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'regex', subtype: 'amount', field: 'Shares', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'AssetId', errormessage: '' },
        { type: 'regex', subtype: 'iddecimal', field: 'AssetId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Liability',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'LiabilityId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'TypeDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LiabilityType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Balance', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FrequencyDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'InstitutionName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PayeeDetails', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PayOut', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CreditLimit', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Description', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Payment', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Fixed', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Enabled', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'LiabilityId', errormessage: '' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'TypeDesc', errormessage: '' },
        { type: 'required', subtype: '', field: 'LiabilityType', errormessage: '' },
        { type: 'required', subtype: '', field: 'Balance', errormessage: '' },
        { type: 'required', subtype: '', field: 'FrequencyDesc', errormessage: '' },
        { type: 'required', subtype: '', field: 'PayOut', errormessage: '' },
        { type: 'required', subtype: '', field: 'CreditLimit', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'CreditLimit', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'regex', subtype: 'amount', field: 'Payment', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'Payment', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Expense',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Enabled', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'ExpenseId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Description', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'TypeDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ExpenseDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FrequencyDesc', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Share', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'NumberOfLease', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'NumberOfChildren', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'CeaseFlag', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CeaseDate', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'PaidTo', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ExpenseId', errormessage: '' },
        { type: 'regex', subtype: 'id', field: 'ExpenseId', errormessage: 'InvalidId', regex: '^[1-9][0-9]*$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'TypeDesc', errormessage: '' },
        { type: 'stringlength', subtype: 'stringlength', field: 'ExpenseDescription', errormessage: '50', stringlength: '50' },
        { type: 'required', subtype: '', field: 'FrequencyDesc', errormessage: '' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: '' },
        { type: 'regex', subtype: 'amount', field: 'Share', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'range', subtype: 'intnonnegative', field: 'NumberOfLease', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' },
        { type: 'range', subtype: 'intnonnegative', field: 'NumberOfChildren', errormessage: 'InvalidNonNegative', minimum: '0', maximum: '2147483647' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.OtherAddress',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Type', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Address', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'StartDate', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'EndDate', type: 'datetime', datatype: 'Custom', nullable: true }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'Type', errormessage: '' },
        { type: 'required', subtype: '', field: 'Address', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Reference',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Name', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Address', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'FormattedAddress', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'Contact', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Type', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Relationship', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'iddecimal', field: 'ApplicantId', errormessage: 'InvalidId', regex: '^[-1-9][0-9]{0,37}$' },
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'Name', errormessage: '' },
        { type: 'regex', subtype: 'name', field: 'Name', errormessage: 'InvalidName', regex: '^[a-zA-Z\\- \']*$' },
        { type: 'required', subtype: '', field: 'Address', errormessage: '' },
        { type: 'required', subtype: '', field: 'Contact', errormessage: '' },
        { type: 'regex', subtype: 'phonenumber', field: 'Contact', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'required', subtype: '', field: 'Type', errormessage: '' },
        { type: 'required', subtype: '', field: 'Relationship', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.ApplicantConfirmation',
    meta: {
      fields: [
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'PrivacyConsent', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PrivacyLMIConsent', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'GeneralConsent', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'ConsumerCreditInsurance', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.ApplicationQuestion',
    meta: {
      fields: [
        { name: 'QuestionId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'QuestionText', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AnswerType', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.ApplicantAnswer',
    meta: {
      fields: [
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'QuestionId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Answer', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ApplicantId', errormessage: '' },
        { type: 'required', subtype: '', field: 'QuestionId', errormessage: '' },
        { type: 'required', subtype: '', field: 'Answer', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.CompletionDetail',
    meta: {
      fields: [
        { name: 'ContactOnSpecificTime', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ContactTime', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ContactMethod', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ContactPhone', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ContactEmail', type: 'string', datatype: 'EmailAddress', nullable: false },
        { name: 'Comments', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'ContactOnSpecificTime', errormessage: '' },
        { type: 'stringlength', subtype: 'stringlength', field: 'ContactTime', errormessage: '60', stringlength: '60' },
        { type: 'required', subtype: '', field: 'ContactMethod', errormessage: '' },
        { type: 'stringlength', subtype: 'stringlength', field: 'ContactPhone', errormessage: '14', stringlength: '14' },
        { type: 'regex', subtype: 'phonenumber', field: 'ContactPhone', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'ContactEmail', errormessage: '200', stringlength: '200' },
        { type: 'regex', subtype: 'email', field: 'ContactEmail', errormessage: 'InvalidEmail', regex: '^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,3}))$' },
        { type: 'stringlength', subtype: 'stringlength', field: 'Comments', errormessage: '500', stringlength: '500' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Veda.IdentityVerificationObject',
    meta: {
      fields: [
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Consented', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'KeyValues', type: 'object', datatype: 'Custom', nullable: false },
        { name: 'IdentityVerificationAttempts', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.Relationship',
    meta: {
      fields: [
        { name: 'ApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'WithApplicantId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RelationshipType', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.ChangePassword',
    meta: {
      fields: [
        { name: 'Email', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OldPassword', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NewPassword', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.Public.LoansOfficerApplication',
    meta: {
      fields: [
        { name: 'BorrowerName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ContactNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AvailableTime', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreferredContact', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LoanApplication', type: 'object', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.P2P.NewPersonToPersonTransaction',
    meta: {
      fields: [
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'TransferMethod', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RecipientDestination', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'SenderName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Message', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'FromAccount', errormessage: 'FromAccountIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'FromAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'RecipientDestination', errormessage: 'RecipientDestinationIsRequired' },
        { type: 'required', subtype: '', field: 'SenderName', errormessage: 'SenderNameIsRequired' },
        { type: 'required', subtype: '', field: 'Message', errormessage: 'MessageIsRequired' },
        { type: 'regex', subtype: 'regularexpression', field: 'Factor2Code', errormessage: '', regex: '^[0-9]+$' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.P2P.CancelClaimRequest',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.P2P.ClaimRequest',
    meta: {
      fields: [
        { name: 'TransferMethod', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RecipientDestination', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PaymentCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RecipientBSB', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ExternalBSBName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RecipientAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'RecipientAccountTitle', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'RecipientDestination', errormessage: '' },
        { type: 'regex', subtype: 'bsbnumber', field: 'RecipientBSB', errormessage: 'InvalidBSBNumber', regex: '^[0-9]{6}$' },
        { type: 'required', subtype: '', field: 'RecipientBSB', errormessage: '' },
        { type: 'required', subtype: '', field: 'RecipientAccount', errormessage: '' },
        { type: 'regex', subtype: 'accountnumber', field: 'RecipientAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.User.ECorrespondence',
    meta: {
      fields: [
        { name: 'enabled', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'HomeEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BusinessEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmailType', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'SelectedEmail', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'regularexpression', field: 'Factor2Code', errormessage: '', regex: '^[0-9]+$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Loans.ProductQuestionFilter',
    meta: {
      fields: [
        { name: 'productId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'channelId', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Veda.IdentityVerification',
    meta: {
      fields: [
        { name: 'ServiceName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MemberCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BranchCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ConfigurationName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Username', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Password', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsBirthCertificateDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateDateOfPrint', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'BirthCertificateDateOfPrintSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredFamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredGivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegisteredOtherName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegistrationDate', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'BirthCertificateRegistrationNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BirthCertificateRegistrationState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressUnitNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressStreetName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressSuburb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressPostcode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CurrentAddressCountry', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsPreviousAddressEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressUnitNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressStreetName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressSuburb', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressState', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressPostcode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PreviousAddressCountry', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsDrivingLicenseDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'DrivingLicenseDateOfExpirySpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseStateCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DrivingLicenseCardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsMedicareDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareReferenceNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'IsPassportDetailsEntered', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PassportCountryCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportCountryOfBirth', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'PassportDateOfExpirySpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'PassportFamilyNameAtBirth', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportFamilyNameAtCitizenship', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportFirstGivenNameAtCitizenship', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportOtherGivenNameAtCitizenship', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportMotherMaidenFamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportPlaceOfBirth', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PassportVisaDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'FamilyName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OtherGivenName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'DateOfBirth', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'DateOfBirthSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Gender', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'GenderSpecified', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'EmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AlternativeEmailAddress', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'HomePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'WorkPhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MobilePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'EmployerPhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardColour', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MedicareCardDateOfExpiry', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'MedicareMiddleNameOnCard', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'DrivingLicenseDateOfExpiry', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.MemberRegistrationRequest',
    meta: {
      fields: [
        { name: 'MobilePhoneNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ChargeAccountTypeId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'ChargeAccountNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'phonenumber', field: 'MobilePhoneNumber', errormessage: 'InvalidPhoneNumber', regex: '^\\D*0(\\D*\\d){9}\\D*$|^[0-9]{8,13}$|^[0-9]{1,5}[*]{1,8}[0-9]{1,7}$' },
        { type: 'required', subtype: '', field: 'MobilePhoneNumber', errormessage: 'MobilePhoneNumberIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.DirectCreditAlert',
    meta: {
      fields: [
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.DirectDebitAlert',
    meta: {
      fields: [
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.AccountBalanceAlert',
    meta: {
      fields: [
        { name: 'AccountTypeId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'AccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'LowBalanceAmount', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'HighBalanceAmount', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'AccountTypeId', errormessage: 'AccountTypeIdIsRequired' },
        { type: 'required', subtype: '', field: 'AccountNumber', errormessage: 'AccountNumberIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'AccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'regex', subtype: 'amount', field: 'LowBalanceAmount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'LowBalanceAmount', errormessage: 'LowBalanceAmountIsRequired' },
        { type: 'required', subtype: '', field: 'HighBalanceAmount', errormessage: 'HighBalanceAmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'HighBalanceAmount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.ScheduleBalanceAdviceAlert',
    meta: {
      fields: [
        { name: 'AccountTypeId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'AccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'NextDateTime', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'Term', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Period', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'AccountTypeId', errormessage: 'AccountTypeIdIsRequired' },
        { type: 'required', subtype: '', field: 'AccountNumber', errormessage: 'AccountNumberIsRequired' },
        { type: 'regex', subtype: 'accountnumber', field: 'AccountNumber', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'NextDateTime', errormessage: 'NextDateTimeIsRequired' },
        { type: 'required', subtype: '', field: 'Term', errormessage: 'TermIsRequired' },
        { type: 'required', subtype: '', field: 'Period', errormessage: 'PeriodIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.PayWaveOrPayPassAlert',
    meta: {
      fields: [
        { name: 'CardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CardId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'CardNumber', errormessage: 'CardNumberIsRequired' },
        { type: 'required', subtype: '', field: 'CardId', errormessage: 'CardIdIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.AtmWithdrawalAlert',
    meta: {
      fields: [
        { name: 'CardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CardId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'CardNumber', errormessage: 'CardNumberIsRequired' },
        { type: 'required', subtype: '', field: 'CardId', errormessage: 'CardIdIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.CreditCardAlert',
    meta: {
      fields: [
        { name: 'CardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CardId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'CardNumber', errormessage: 'CardNumberIsRequired' },
        { type: 'required', subtype: '', field: 'CardId', errormessage: 'CardIdIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.EFTPOSAlert',
    meta: {
      fields: [
        { name: 'CardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CardId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'CardNumber', errormessage: 'CardNumberIsRequired' },
        { type: 'required', subtype: '', field: 'CardId', errormessage: 'CardIdIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.ThresholdAlert',
    meta: {
      fields: [
        { name: 'AlertTransactionType', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'AccountType', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'AccountNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'NextDateTime', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'Term', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Period', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'CardNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'CardId', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'AlertTransactionType', errormessage: 'AlertTransactionTypeIsRequired' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'Term', errormessage: 'TermIsRequired' },
        { type: 'required', subtype: '', field: 'Period', errormessage: 'PeriodIsRequired' },
        { type: 'required', subtype: '', field: 'CardNumber', errormessage: 'CardNumberIsRequired' },
        { type: 'required', subtype: '', field: 'CardId', errormessage: 'CardIdIsRequired' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.RegistrationConfirmAlert',
    meta: {
      fields: [
        { name: 'RegistrationId', type: 'number', datatype: 'Custom', nullable: true },
        { name: 'SupplierNumber', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Alerts.MemberSettings',
    meta: {
      fields: [
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Email', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'SmsAlert', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'EmailAlert', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'StartTime', type: 'datetime', datatype: 'Custom', nullable: true },
        { name: 'EndTime', type: 'datetime', datatype: 'Custom', nullable: true }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Security.Factor2ChallengeRequest',
    meta: {
      fields: [
        { name: 'Function', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ToAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BSB', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Payee', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'ReceiveECorrespondence', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'EmailType', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'SelectedEmail', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'Function', errormessage: 'Factor2Function is required.' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'Amount is required.' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Security.Factor2ChallengeRequestFromLogin',
    meta: {
      fields: [
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UserId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Password', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'UserId', errormessage: '' },
        { type: 'required', subtype: '', field: 'Password', errormessage: '' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Security.ChallengeResponseRequest',
    meta: {
      fields: [
        { name: 'Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Function', type: 'number', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Transfer.ImmediateBpayTransaction',
    meta: {
      fields: [
        { name: 'FromAccount', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Amount', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BillerCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BillerCrn', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BillerName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Id', type: 'number', datatype: 'Custom', nullable: false },
        { name: 'SaveToFavourites', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SaveAsValidated', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'SendReceipt', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'UniqueReferenceCode', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'accountnumber', field: 'FromAccount', errormessage: 'InvalidAccountNumber', regex: '^[0-9]{5,20}$' },
        { type: 'required', subtype: '', field: 'FromAccount', errormessage: 'FromAccountIsRequired' },
        { type: 'regex', subtype: 'amount', field: 'Amount', errormessage: 'InvalidAmount', regex: '(?!^[0|.]*$)(^([0-9]|[1-9][0-9]{1,8})(\\.[0-9]{1,2})?$)' },
        { type: 'required', subtype: '', field: 'Amount', errormessage: 'AmountIsRequired' },
        { type: 'required', subtype: '', field: 'BillerCode', errormessage: 'BillerCodeIsRequired' },
        { type: 'regex', subtype: 'billercode', field: 'BillerCode', errormessage: 'InvalidBillerCode', regex: '^[0-9]{0,10}$' },
        { type: 'regex', subtype: 'crn', field: 'BillerCrn', errormessage: 'InvalidCrn', regex: '^[0-9]{0,20}$' },
        { type: 'required', subtype: '', field: 'BillerCrn', errormessage: 'CrnIsRequired' },
        { type: 'required', subtype: '', field: 'Id', errormessage: 'IdIsRequired' },
        { type: 'required', subtype: '', field: 'SaveToFavourites', errormessage: 'SaveToFavouritesIsRequired' },
        { type: 'required', subtype: '', field: 'SaveAsValidated', errormessage: 'SaveAsValidatedIsRequired' },
        { type: 'required', subtype: '', field: 'SendReceipt', errormessage: 'SendReceiptIsRequired' },
        { type: 'regex', subtype: 'factor2code', field: 'Factor2Code', errormessage: 'InvalidFactor2Code', regex: '^[0-9]*$' },
        { type: 'regex', subtype: 'guid', field: 'UniqueReferenceCode', errormessage: 'InvalidGuid', regex: '^[a-zA-Z\\-0-9()\\{\\}]{32,40}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.SavedTransactions.BpayPaymentSearch',
    meta: {
      fields: [
        { name: 'BillerCode', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BillerName', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'BillerCrn', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OptionalDescription', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'OnlySecureSMSValidated', type: 'boolean', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'regex', subtype: 'billercode', field: 'BillerCode', errormessage: 'InvalidBillerCode', regex: '^[0-9]{0,10}$' },
        { type: 'regex', subtype: 'crn', field: 'BillerCrn', errormessage: 'InvalidCrn', regex: '^[0-9]{0,20}$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Security.AuthenticationToken',
    meta: {
      fields: [
        { name: 'IsDeviceAndPin', type: 'boolean', datatype: 'Custom', nullable: false },
        { name: 'DeviceId', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'MemberNumber', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'PasswordOrPin', type: 'string', datatype: 'Custom', nullable: false },
        { name: 'Factor2Code', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
        { type: 'required', subtype: '', field: 'DeviceId', errormessage: 'DeviceIdIsRequired' },
        { type: 'regex', subtype: 'membernumber', field: 'MemberNumber', errormessage: 'InvalidMemberNumber', regex: '^[0-9]{1,20}$' },
        { type: 'required', subtype: '', field: 'PasswordOrPin', errormessage: 'PasswordOrPinIsRequired' },
        { type: 'regex', subtype: 'factor2code', field: 'Factor2Code', errormessage: 'InvalidFactor2Code', regex: '^[0-9]*$' }
      ]
    }
  },
  {
    name: 'DataAction.Edc.Services.Model.Session.SessionKeepAlive',
    meta: {
      fields: [
        { name: 'TargetUrl', type: 'string', datatype: 'Custom', nullable: false }
      ],
      validations: [
      ]
    }
  }
];
