import {z} from 'zod'
export type GetApiUsersIdRetrieveAvatarArgs = {id: number, limit?: number | undefined, offset?: number | undefined, order_by?: string | undefined, dir?: ('asc' | 'desc') | undefined, return_object?: ('limited' | 'shallow' | 'none') | undefined, filter?: string | undefined};
export type GetApiUsersIdRetrieveAvatarOptions = {baseUrl?: string | undefined, OAuth2AccessCode?: string | undefined, fetch?: typeof fetch | undefined};
export const userSimple = z.object({"avatar-thumb-url": z.string().optional(), "created-at": z.string().optional(), email: z.string(), "employee-number": z.string().optional(), firstname: z.string(), fullname: z.string().optional(), id: z.number().int().optional(), lastname: z.string(), login: z.string(), "salesforce-id": z.string(), "updated-at": z.string().optional()});
export const currency = z.object({code: z.string(), decimals: z.number().int().optional(), enabled: z.boolean().optional(), id: z.number().int().optional(), name: z.string(), symbol: z.string().optional()});
export const businessGroup = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const country = z.object({code: z.string(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "updated-at": z.string().optional()});
export const purpose = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), kind: z.string(), name: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const address: z.ZodType
= z.object({active: z.boolean().optional(), attention: z.string().optional(), "business-group-name": z.string().optional(), city: z.string(), "content-groups": z.array(businessGroup).optional(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "local-tax-number": z.string(), "location-code": z.string().optional(), name: z.string().optional(), "postal-code": z.string(), purposes: z.array(purpose).optional(), state: z.string().optional(), "state-iso-code": z.string().optional(), street1: z.string(), street2: z.string().optional(), street3: z.string().optional(), street4: z.string().optional(), "tax-registrations": z.array(z.lazy(() => address)).optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "vat-country": country.optional(), "vat-number": z.string().optional()});
export const phoneNumber = z.object({"area-code": z.string().optional(), "country-code": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), extension: z.string().optional(), id: z.number().int().optional(), number: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const contact = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), email: z.string().optional(), id: z.number().int().optional(), "name-additional": z.string().optional(), "name-family": z.string().optional(), "name-fullname": z.string().optional(), "name-given": z.string().optional(), "name-prefix": z.string().optional(), "name-suffix": z.string().optional(), notes: z.string().optional(), "phone-fax": phoneNumber.optional(), "phone-mobile": phoneNumber.optional(), "phone-work": phoneNumber.optional(), photo: z.string().optional(), purposes: z.array(purpose).optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const accountType = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, "dynamic-flag": z.boolean().optional(), id: z.number().int().optional(), "legal-entity-name": z.string().optional(), name: z.string(), "primary-address": address.optional(), "primary-contact": contact.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const accountGroup = z.object({"account-group-type": z.number().int(), "account-type": accountType, "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), name: z.string(), "segment-10-col": z.string().optional(), "segment-10-op": z.string().optional(), "segment-10-val": z.string().optional(), "segment-11-col": z.string().optional(), "segment-11-op": z.string().optional(), "segment-11-val": z.string().optional(), "segment-12-col": z.string().optional(), "segment-12-op": z.string().optional(), "segment-12-val": z.string().optional(), "segment-13-col": z.string().optional(), "segment-13-op": z.string().optional(), "segment-13-val": z.string().optional(), "segment-14-col": z.string().optional(), "segment-14-op": z.string().optional(), "segment-14-val": z.string().optional(), "segment-15-col": z.string().optional(), "segment-15-op": z.string().optional(), "segment-15-val": z.string().optional(), "segment-16-col": z.string().optional(), "segment-16-op": z.string().optional(), "segment-16-val": z.string().optional(), "segment-17-col": z.string().optional(), "segment-17-op": z.string().optional(), "segment-17-val": z.string().optional(), "segment-18-col": z.string().optional(), "segment-18-op": z.string().optional(), "segment-18-val": z.string().optional(), "segment-19-col": z.string().optional(), "segment-19-op": z.string().optional(), "segment-19-val": z.string().optional(), "segment-1-col": z.string().optional(), "segment-1-op": z.string().optional(), "segment-1-val": z.string().optional(), "segment-20-col": z.string().optional(), "segment-20-op": z.string().optional(), "segment-20-val": z.string().optional(), "segment-2-col": z.string().optional(), "segment-2-op": z.string().optional(), "segment-2-val": z.string().optional(), "segment-3-col": z.string().optional(), "segment-3-op": z.string().optional(), "segment-3-val": z.string().optional(), "segment-4-col": z.string().optional(), "segment-4-op": z.string().optional(), "segment-4-val": z.string().optional(), "segment-5-col": z.string().optional(), "segment-5-op": z.string().optional(), "segment-5-val": z.string().optional(), "segment-6-col": z.string().optional(), "segment-6-op": z.string().optional(), "segment-6-val": z.string().optional(), "segment-7-col": z.string().optional(), "segment-7-op": z.string().optional(), "segment-7-val": z.string().optional(), "segment-8-col": z.string().optional(), "segment-8-op": z.string().optional(), "segment-8-val": z.string().optional(), "segment-9-col": z.string().optional(), "segment-9-op": z.string().optional(), "segment-9-val": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const userGroup: z.ZodType = z.object({active: z.boolean().optional(), "avatar-thumb-url": z.string().optional(), "can-approve": z.boolean().optional(), "content-groups": z.array(businessGroup).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "mention-name": z.string().optional(), name: z.string(), open: z.boolean().optional(), owner: z.lazy(() => userGroup.optional()), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), users: z.array(userSimple).optional()});
export const approvalLimit = z.object({amount: z.number(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, id: z.number().int().optional(), name: z.string(), subject: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const account = z.object({"account-type": accountType, "account-type-id": z.number().int().optional(), active: z.boolean().optional(), code: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), name: z.string().optional(), "segment-1": z.string().optional(), "segment-10": z.string().optional(), "segment-11": z.string().optional(), "segment-12": z.string().optional(), "segment-13": z.string().optional(), "segment-14": z.string().optional(), "segment-15": z.string().optional(), "segment-16": z.string().optional(), "segment-17": z.string().optional(), "segment-18": z.string().optional(), "segment-19": z.string().optional(), "segment-2": z.string().optional(), "segment-20": z.string().optional(), "segment-3": z.string().optional(), "segment-4": z.string().optional(), "segment-5": z.string().optional(), "segment-6": z.string().optional(), "segment-7": z.string().optional(), "segment-8": z.string().optional(), "segment-9": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const department = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), name: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const warehouseLocation = z.object({active: z.boolean().optional(), aisle: z.string(), bin: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), label: z.string().optional(), level: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "warehouse-id": z.number().int().optional(), "warehouse-name": z.string().optional()});
export const warehouseType = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string(), id: z.number().int().optional(), name: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const warehouse = z.object({"active-flag": z.boolean().optional(), address: address, "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, description: z.string(), id: z.number().int().optional(), name: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "warehouse-locations": z.array(warehouseLocation).optional(), "warehouse-type": warehouseType});
export const inventoryOrganization = z.object({"created-at": z.string().optional(), currency: currency, "fulfillment-type": z.enum(["manual", "automatic"]), id: z.number().int().optional(), "updated-at": z.string().optional(), warehouses: z.array(warehouse).optional()});
export const billToAddress = z.object({active: z.boolean().optional(), attention: z.string().optional(), "business-group-name": z.string().optional(), city: z.string(), "content-groups": z.array(businessGroup).optional(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "local-tax-number": z.string(), "location-code": z.string().optional(), name: z.string().optional(), "postal-code": z.string(), purposes: z.array(purpose).optional(), state: z.string().optional(), "state-iso-code": z.string().optional(), street1: z.string(), street2: z.string().optional(), street3: z.string().optional(), street4: z.string().optional(), "tax-registrations": z.array(address).optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "vat-country": country.optional(), "vat-number": z.string().optional()});
export const legalEntityAddress = z.object({active: z.boolean().optional(), attention: z.string().optional(), "business-group-name": z.string().optional(), city: z.string(), "content-groups": z.array(businessGroup).optional(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "local-tax-number": z.string(), "location-code": z.string().optional(), name: z.string().optional(), "postal-code": z.string(), purposes: z.array(purpose).optional(), state: z.string().optional(), "state-iso-code": z.string().optional(), street1: z.string(), street2: z.string().optional(), street3: z.string().optional(), street4: z.string().optional(), "tax-registrations": z.array(address).optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "vat-country": country.optional(), "vat-number": z.string().optional()});
export const legalEntity: z.ZodType = z.object({abbreviation: z.string(), "accounting-method": z.enum(["ifrs", "ifrs_9", "us_gaap"]).optional(), active: z.boolean().optional(), "bill-to-address": billToAddress.optional(), "bill-to-addresses": z.array(billToAddress).optional(), "corporate-sector": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, description: z.string().optional(), "external-identification-company-code": z.string().optional(), "external-identification-creditor-id": z.string().optional(), "external-identification-lei": z.string().optional(), "external-identification-name-matching": z.string().optional(), "external-identification-name-trading": z.string().optional(), "external-identification-swift": z.string().optional(), id: z.number().int().optional(), "legal-entity-address": legalEntityAddress.optional(), "legal-entity-addresses": z.array(legalEntityAddress).optional(), name: z.string(), parent: z.lazy(() => legalEntity.optional()), "swift-code": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "use-fx-rates-reciprocal": z.boolean().optional()});
export const pcard = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), cvv: z.string().optional(), expiry: z.string(), id: z.number().int().optional(), name: z.string(), nickname: z.string().optional(), number: z.string(), shared: z.boolean().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const role = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), omnipotent: z.boolean().optional(), "system-role": z.boolean().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()});
export const user = z.object({"account-groups": z.array(accountGroup).optional(), "account-security-type": z.number().int().optional(), active: z.boolean().optional(), "active?": z.boolean().optional(), "aic-user": z.boolean().optional(), "aic-user?": z.boolean().optional(), "allow-employee-payment-account-creation": z.boolean().optional(), "allow-user-to-upload-invoice-from-mobile": z.boolean().optional(), "allowed-invoice-inboxes": z.string().optional(), "analytics-user": z.boolean().optional(), "analytics-user?": z.boolean().optional(), "api-user": z.boolean().optional(), "api-user?": z.boolean().optional(), "approval-groups": z.array(userGroup).optional(), "approval-limit": approvalLimit.optional(), "authentication-method": z.string().optional(), "avatar-thumb-url": z.string().optional(), "business-function": z.string().optional(), "business-group-security-type": z.number().int().optional(), "can-expense-for": userSimple.optional(), "ccw-user": z.boolean().optional(), "ccw-user?": z.boolean().optional(), "clm-advanced-user": z.boolean().optional(), "clm-advanced-user?": z.boolean().optional(), "content-groups": z.array(businessGroup).optional(), "contract-approval-limit": approvalLimit.optional(), "contract-self-approval-limit": approvalLimit.optional(), "contracts-user": z.boolean().optional(), "contracts-user?": z.boolean().optional(), "country-of-residence": country.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "default-account": account.optional(), "default-account-type": accountType.optional(), "default-address": address.optional(), "default-currency": currency.optional(), "default-locale": z.string().optional(), department: department.optional(), "eligible-for-virtual-cards": z.boolean().optional(), email: z.string(), "employee-number": z.string().optional(), "employee-payment-channel": z.string().optional(), "escalation-threshold": approvalLimit.optional(), "expense-approval-limit": approvalLimit.optional(), "expense-self-approval-limit": approvalLimit.optional(), "expense-user": z.boolean().optional(), "expense-user?": z.boolean().optional(), "expenses-delegated-to": userSimple.optional(), firstname: z.string(), fullname: z.string().optional(), "generate-password-and-notify": z.enum(["Yes", "No"]).optional(), id: z.number().int().optional(), "inventory-organizations": z.array(inventoryOrganization).optional(), "inventory-user": z.boolean().optional(), "inventory-user?": z.boolean().optional(), "invoice-approval-limit": approvalLimit.optional(), "invoice-self-approval-limit": approvalLimit.optional(), "invoicing-user": z.boolean().optional(), "invoicing-user?": z.boolean().optional(), lastname: z.string(), "legal-entity": legalEntity.optional(), login: z.string(), manager: userSimple.optional(), "mention-name": z.string().optional(), middlename: z.string().optional(), "msp-user": z.boolean().optional(), password: z.string().optional(), pcard: pcard.optional(), "phone-mobile": phoneNumber.optional(), "phone-work": phoneNumber.optional(), "purchasing-user": z.boolean().optional(), "purchasing-user?": z.boolean().optional(), "requisition-approval-limit": approvalLimit.optional(), "requisition-self-approval-limit": approvalLimit.optional(), "risk-assess-user": z.boolean().optional(), roles: z.array(role).optional(), "salesforce-enabled": z.boolean().optional(), "salesforce-id": z.string(), "self-approval-limit": approvalLimit.optional(), "seniority-level": z.string().optional(), "sourcing-user": z.boolean().optional(), "sourcing-user?": z.boolean().optional(), "spend-guard-user": z.boolean().optional(), "spend-guard-user?": z.boolean().optional(), "sso-identifier": z.string().optional(), "supplier-id": z.number().int().optional(), "supplier-user": z.boolean().optional(), "supply-chain-user": z.boolean().optional(), "supply-chain-user?": z.boolean().optional(), "support-user": z.boolean().optional(), "travel-user": z.boolean().optional(), "travel-user?": z.boolean().optional(), "treasury-user": z.boolean().optional(), "treasury-user?": z.boolean().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "user-groups": z.array(userGroup).optional(), "work-confirmation-approval-limit": approvalLimit.optional(), "working-warehouses": z.array(warehouse).optional()});
export const validateResponse = async