import {z} from 'zod' export type GetApiInventoryAdjustmentsArgs = {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 GetApiInventoryAdjustmentsOptions = {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 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 period = z.object({"account-type": accountType.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "end-date": z.string(), id: z.number().int().optional(), "is-open": z.boolean().optional(), name: z.string(), "segment-1": z.boolean().optional(), "segment-10": z.boolean().optional(), "segment-11": z.boolean().optional(), "segment-12": z.boolean().optional(), "segment-13": z.boolean().optional(), "segment-14": z.boolean().optional(), "segment-15": z.boolean().optional(), "segment-16": z.boolean().optional(), "segment-17": z.boolean().optional(), "segment-18": z.boolean().optional(), "segment-19": z.boolean().optional(), "segment-2": z.boolean().optional(), "segment-20": z.boolean().optional(), "segment-3": z.boolean().optional(), "segment-4": z.boolean().optional(), "segment-5": z.boolean().optional(), "segment-6": z.boolean().optional(), "segment-7": z.boolean().optional(), "segment-8": z.boolean().optional(), "segment-9": z.boolean().optional(), "start-date": z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const inventoryTxnAllocation = z.object({account: account, amount: z.number().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), pct: z.number(), period: period.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const invoiceLineAllocation = z.object({account: account, amount: z.number().optional(), "billing-note": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "handling-distribution-total": z.number().optional(), id: z.number().int().optional(), "misc-distribution-total": z.number().optional(), pct: z.number(), period: period.optional(), "shipping-distribution-total": z.number().optional(), "tax-distribution-total": z.number().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const uom = z.object({active: z.boolean().optional(), "allowable-precision": z.number().int(), code: z.string(), "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 bulkPrice = z.object({"conversion-denominator": z.number().optional(), "conversion-numerator": z.number().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), price: z.number().optional(), qty: z.number().optional(), uom: uom, "updated-at": z.string().optional()}); export const commodity: z.ZodType = z.object({active: z.boolean().optional(), category: z.enum(["goods", "services"]).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), deductibility: z.enum(["fully_deductible", "partially_deductible", "not_deductible"]).optional(), id: z.number().int().optional(), "imported-from-taxonomy": z.boolean().optional(), name: z.string(), parent: z.lazy(() => commodity.optional()), preferred: z.enum(["Yes", "No", "Automatic", "Always", "Never"]).optional(), subcategory: z.enum(["raw_materials", "investment_goods", "services_exceptions"]).optional(), "translated-name": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const contractClassification = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "updated-at": z.string().optional()}); export const contractClauseTypeField = z.object({assignable: z.number().int().optional(), "created-at": z.string().optional(), "credit-support-obligations": z.number().int().optional(), "discounted-pricing": z.number().int().optional(), exclusivity: z.number().int().optional(), "force-majeure": z.number().int().optional(), id: z.number().int().optional(), indemnification: z.number().int().optional(), "information-security-requirements": z.number().int().optional(), "insurance-obligations": z.number().int().optional(), "intellectual-property-ownership": z.number().int().optional(), "most-favored-nation": z.number().int().optional(), "non-disclosure": z.number().int().optional(), "price-adjustment": z.number().int().optional(), "privacy-obligations": z.number().int().optional(), "product-standards": z.number().int().optional(), "publicity-rights": z.number().int().optional(), remedies: z.number().int().optional(), "restrictive-covenants": z.number().int().optional(), "service-levels": z.number().int().optional(), "suspension-for-convenience": z.number().int().optional(), "termination-for-bankruptcy": z.number().int().optional(), "termination-for-breach": z.number().int().optional(), "termination-for-cause": z.number().int().optional(), "termination-for-change-of-control": z.number().int().optional(), "termination-for-convenience": z.number().int().optional(), "termination-for-force-majeure": z.number().int().optional(), "updated-at": z.string().optional(), "use-of-subcontractors": z.number().int().optional()}); export const contractClauseReference = z.object({"clause-classification": z.number().int(), "clause-content-checksum": z.string(), "clause-description": z.string().optional(), "clause-effective-from": z.string().optional(), "clause-effective-to": z.string().optional(), "clause-is-modified": z.number().int().optional(), "clause-key": z.number().int(), "clause-name": z.string(), "clause-referrer-location": z.string().optional(), "clause-risk-score": z.number().int().optional(), "clause-status": z.enum(["published", "inactive"]).optional(), "clause-system-used": z.string().optional(), "contract-clause-id": z.number().int().optional(), "contract-document-id": z.number().int().optional(), "created-at": z.string().optional(), "current-content-checksum": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractClause = z.object({"clause-type-id": z.number().int().optional(), "clause-type-name": z.string().optional(), "contract-clause-reference": contractClauseReference.optional(), "contract-id": z.number().int().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractDetail = z.object({commodity: commodity.optional(), "contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "notice-methods": z.string().optional(), "updated-at": z.string().optional()}); export const countrySubdivision = z.object({"country-id": z.number().int().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "updated-at": z.string().optional()}); export const contractDispute = z.object({"alternative-dispute-resolution": z.number().int().optional(), "contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), "governing-law-country": country.optional(), "governing-law-subdivision": countrySubdivision.optional(), id: z.number().int().optional(), "jurisdiction-country": country.optional(), "jurisdiction-exclusivity": z.number().int().optional(), "jurisdiction-subdivision": countrySubdivision.optional(), "updated-at": z.string().optional()}); export const businessEntityAccountOwner = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), email: z.string().optional(), fullname: z.string().optional(), id: z.number().int().optional(), purposes: z.array(purpose).optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "user-id": z.number().int()}); export const businessEntityAlternateName = z.object({"business-entity-id": z.number().int().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "updated-at": z.string().optional()}); export const businessEntityExternalReference = z.object({"business-entity-id": z.number().int().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), type: z.string().optional(), "updated-at": z.string().optional(), value: z.string().optional()}); export const businessEntityRelationship = z.object({"business-entity-id": z.number().int().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "related-business-entity-id": z.number().int().optional(), "relationship-type": z.literal("parent_child"), status: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const businessEntityAddress = 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 taxRegistration = z.object({active: z.boolean().optional(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), "fiscal-representative": z.unknown(), id: z.number().int().optional(), local: z.boolean().optional(), number: z.string(), "owner-id": z.number().int().optional(), "owner-type": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const businessEntity = z.object({addresses: z.array(address).optional(), "business-entity-account-owners": z.array(businessEntityAccountOwner).optional(), "business-entity-alternate-names": z.array(businessEntityAlternateName).optional(), "business-entity-external-references": z.array(businessEntityExternalReference).optional(), "business-entity-relationships": z.array(businessEntityRelationship).optional(), "country-of-origin": country.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "display-name": z.string().optional(), "formation-type": z.enum(["Organization", "Person"]).optional(), id: z.number().int().optional(), name: z.string(), "primary-address": businessEntityAddress.optional(), "primary-contact": contact.optional(), status: z.string().optional(), "tax-registrations": z.array(taxRegistration).optional(), type: z.enum(["LegalBusinessEntity", "OrganizationalBusinessEntity"]).optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const contractPartyContact = z.object({"created-at": z.string().optional(), email: z.string().optional(), fullname: z.string().optional(), id: z.number().int().optional(), phone: z.string().optional(), "signatory-action": z.number().int().optional(), "signatory-date": z.string().optional(), "updated-at": z.string().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 contractParty = z.object({"bill-to-address": address.optional(), "business-entity": businessEntity, "business-name": z.string().optional(), "clma-id": z.number().int().optional(), "contact-name": z.string().optional(), "contact-title": z.string().optional(), "contract-party-contacts": z.array(contractPartyContact).optional(), "counterparty-role": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), email: z.string().optional(), "entity-name": z.string(), id: z.number().int().optional(), "legal-entity": legalEntity.optional(), "mail-to-address": address.optional(), "party-alias": z.string().optional(), "party-directionality": z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const contractPartiesFieldContainer = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractPerformance = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractPriceAndPayment = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractRelationshipAndReporting = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractRisk = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractTermination = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const contractTerm = z.object({"contract-term-type": z.enum(["PerOrderContractTerm", "TotalQtyContractTerm", "TotalAmtContractTerm", "PriceRangeContractTerm"]).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), name: z.string(), "tier-10-disc-pct": z.number().optional(), "tier-10-upper-bound": z.number().optional(), "tier-11-disc-pct": z.number().optional(), "tier-11-upper-bound": z.number().optional(), "tier-12-disc-pct": z.number().optional(), "tier-12-upper-bound": z.number().optional(), "tier-13-disc-pct": z.number().optional(), "tier-13-upper-bound": z.number().optional(), "tier-14-disc-pct": z.number().optional(), "tier-14-upper-bound": z.number().optional(), "tier-15-disc-pct": z.number().optional(), "tier-15-upper-bound": z.number().optional(), "tier-16-disc-pct": z.number().optional(), "tier-16-upper-bound": z.number().optional(), "tier-17-disc-pct": z.number().optional(), "tier-17-upper-bound": z.number().optional(), "tier-18-disc-pct": z.number().optional(), "tier-18-upper-bound": z.number().optional(), "tier-19-disc-pct": z.number().optional(), "tier-19-upper-bound": z.number().optional(), "tier-1-disc-pct": z.number().optional(), "tier-1-upper-bound": z.number(), "tier-20-disc-pct": z.number().optional(), "tier-20-upper-bound": z.number().optional(), "tier-2-disc-pct": z.number().optional(), "tier-2-upper-bound": z.number().optional(), "tier-3-disc-pct": z.number().optional(), "tier-3-upper-bound": z.number().optional(), "tier-4-disc-pct": z.number().optional(), "tier-4-upper-bound": z.number().optional(), "tier-5-disc-pct": z.number().optional(), "tier-5-upper-bound": z.number().optional(), "tier-6-disc-pct": z.number().optional(), "tier-6-upper-bound": z.number().optional(), "tier-7-disc-pct": z.number().optional(), "tier-7-upper-bound": z.number().optional(), "tier-8-disc-pct": z.number().optional(), "tier-8-upper-bound": z.number().optional(), "tier-9-disc-pct": z.number().optional(), "tier-9-upper-bound": z.number().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "use-pct-discounts": z.boolean().optional()}); export const contractTermsAndRenewal = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const coupaContractType = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "updated-at": z.string().optional()}); export const contractType = z.object({active: z.boolean().optional(), "contract-classifications": z.array(contractClassification).optional(), "coupa-contract-type": coupaContractType, "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 approvalReason = z.object({}); export const approval: z.ZodType = z.object({"approvable-id": z.number().int().optional(), "approvable-type": z.string().optional(), "approval-chain-id": z.number().int().optional(), "approval-date": z.string().optional(), "approved-by": userSimple.optional(), approver: z.unknown(), "approver-id": z.number().int().optional(), "approver-type": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), delegate: z.unknown(), "delegate-id": z.string().optional(), delegates: z.array(z.lazy(() => approval)).optional(), holdable: z.boolean().optional(), id: z.number().int().optional(), note: z.string().optional(), "parallel-group-name": z.string().optional(), position: z.number().int().optional(), reasons: z.array(approvalReason).optional(), status: z.string().optional(), type: 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 diversitySubcategory = z.object({active: z.boolean().optional(), category: z.string().optional(), code: z.string(), "created-at": z.string().optional(), designation: z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const diversityCategory = z.object({active: z.boolean().optional(), category: z.string().optional(), code: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "diversity-subcategories": z.array(diversitySubcategory).optional(), id: z.number().int().optional(), "parent-category": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const esignProviderAccount = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), name: z.string(), provider: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const intellectualPropertyAndData = z.object({"contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "non-disclosure-copying-restriction": z.number().int().optional(), "permitted-disclosees-advisers": z.boolean().optional(), "permitted-disclosees-contractors": z.boolean().optional(), "permitted-disclosees-directors-officers": z.boolean().optional(), "permitted-disclosees-employees": z.boolean().optional(), "updated-at": z.string().optional()}); export const objectLine = z.object({"object-id": z.number().int().optional(), "object-line-configuration-custom-field-1": z.string().optional(), "object-line-configuration-custom-field-10": z.string().optional(), "object-line-configuration-custom-field-11": z.string().optional(), "object-line-configuration-custom-field-12": z.string().optional(), "object-line-configuration-custom-field-13": z.string().optional(), "object-line-configuration-custom-field-14": z.string().optional(), "object-line-configuration-custom-field-15": z.string().optional(), "object-line-configuration-custom-field-16": z.string().optional(), "object-line-configuration-custom-field-17": z.string().optional(), "object-line-configuration-custom-field-18": z.string().optional(), "object-line-configuration-custom-field-19": z.string().optional(), "object-line-configuration-custom-field-2": z.string().optional(), "object-line-configuration-custom-field-20": z.string().optional(), "object-line-configuration-custom-field-21": z.string().optional(), "object-line-configuration-custom-field-22": z.string().optional(), "object-line-configuration-custom-field-23": z.string().optional(), "object-line-configuration-custom-field-24": z.string().optional(), "object-line-configuration-custom-field-25": z.string().optional(), "object-line-configuration-custom-field-26": z.string().optional(), "object-line-configuration-custom-field-27": z.string().optional(), "object-line-configuration-custom-field-28": z.string().optional(), "object-line-configuration-custom-field-29": z.string().optional(), "object-line-configuration-custom-field-3": z.string().optional(), "object-line-configuration-custom-field-30": z.string().optional(), "object-line-configuration-custom-field-4": z.string().optional(), "object-line-configuration-custom-field-5": z.string().optional(), "object-line-configuration-custom-field-6": z.string().optional(), "object-line-configuration-custom-field-7": z.string().optional(), "object-line-configuration-custom-field-8": z.string().optional(), "object-line-configuration-custom-field-9": z.string().optional(), "object-line-configuration-id": z.number().int().optional(), "object-type": z.string().optional()}); export const paymentTerm = z.object({active: z.boolean().optional(), "active?": z.string().optional(), code: z.string(), "content-groups": z.array(businessGroup).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "days-for-discount-payment": z.number().int(), "days-for-net-payment": z.number().int(), description: z.string().optional(), "discount-cutoff-day": z.number().int().optional(), "discount-due-day": z.number().int(), "discount-due-month": z.number().int(), "discount-rate": z.number().optional(), id: z.number().int().optional(), "net-cutoff-day": z.number().int().optional(), "net-due-day": z.number().int(), "net-due-month": z.number().int(), type: z.enum(["DaysAfterNetPaymentTerm", "SpecificDayPaymentTerm", "BaseEomToDaysPaymentTerm", "DaysToBaseEomPaymentTerm"]), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const raRiskRequestScore = z.object({"cra-score-risk-type": z.number().int(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "ra-risk-request-id": z.number().int().optional(), "risk-score": z.number().optional(), "risk-value": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const raRiskRequest = z.object({active: z.boolean().optional(), "cra-risk-id": z.string().optional(), "cra-risk-type": z.number().int().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "ra-risk-request-scores": z.array(raRiskRequestScore).optional(), state: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const rateCardLine = z.object({active: z.boolean().optional(), code: z.string().optional(), commodity: commodity.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, "custom-field-1": z.string().optional(), "custom-field-10": z.string().optional(), "custom-field-11": z.string().optional(), "custom-field-12": z.string().optional(), "custom-field-13": z.string().optional(), "custom-field-14": z.string().optional(), "custom-field-15": z.string().optional(), "custom-field-16": z.string().optional(), "custom-field-17": z.string().optional(), "custom-field-18": z.string().optional(), "custom-field-19": z.string().optional(), "custom-field-2": z.string().optional(), "custom-field-20": z.string().optional(), "custom-field-3": z.string().optional(), "custom-field-4": z.string().optional(), "custom-field-5": z.string().optional(), "custom-field-6": z.string().optional(), "custom-field-7": z.string().optional(), "custom-field-8": z.string().optional(), "custom-field-9": z.string().optional(), id: z.number().int().optional(), name: z.string(), price: z.number(), "rate-card-id": z.number().int().optional(), "rate-card-line-type": z.number().int(), "rate-card-type": z.number().int(), uom: uom, "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const rateCard = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "rate-card-lines": z.array(rateCardLine).optional(), "rateable-type": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const reasonInsight = z.object({code: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string(), id: z.number().int().optional(), "reason-type": z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const reasonInsightEvent = z.object({comment: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "eventable-id": z.number().int().optional(), "eventable-type": z.string().optional(), id: z.number().int().optional(), "reason-insight": reasonInsight, "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "user-avatar-url": z.string().optional(), "user-full-name": z.string().optional()}); export const orderWindow = z.object({"created-at": z.string().optional(), day0: z.string().optional(), day1: z.string().optional(), day2: z.string().optional(), day3: z.string().optional(), day4: z.string().optional(), day5: z.string().optional(), day6: z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional()}); export const shippingTerm = z.object({active: z.boolean().optional(), "active?": z.string().optional(), code: z.string(), "content-groups": z.array(businessGroup).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const customerSupportContact = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), email: z.string().optional(), fullname: z.string().optional(), id: z.number().int().optional(), purposes: z.array(purpose).optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), user: userSimple.optional(), "user-id": z.number().int()}); export const diversityCertificationAgency = z.object({code: z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), "region-type": z.string().optional(), "updated-at": z.string().optional()}); export const simDiversityCertificateArtifact = z.object({agency: diversityCertificationAgency.optional(), "agency-id": z.number().int().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), "effective-date": z.string().optional(), "expiry-date": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const diversityAssociation = z.object({country: country.optional(), "country-id": z.number().int(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "diversity-category": diversityCategory.optional(), "diversity-category-id": z.number().int(), "diversity-subcategory": diversitySubcategory.optional(), "diversity-subcategory-id": z.number().int(), id: z.number().int().optional(), "sim-diversity-certificate-artifacts": z.array(simDiversityCertificateArtifact).optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const enterprise = z.object({"active-flag": z.boolean().optional(), code: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string(), "system-flag": z.boolean().optional(), "tax-coding-enabled": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "vendor-remit-to-required": z.string().optional()}); export const integration = z.object({"business-object": z.string(), code: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), direction: z.enum(["to_coupa", "from_coupa"]), "end-system": z.string(), "end-system-type": z.enum(["payroll", "erp", "hr", "third_party_partner", "third_party_vendor", "other", "internal"]), id: z.number().int().optional(), "integration-type": z.enum(["flat_file", "api", "corporate_credit_card_file", "json", "xml", "original_format"]).optional(), name: z.string(), standard: z.boolean().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const integrationContact: z.ZodType = z.object({"contact-alert-type": z.enum(["Technical", "Functional", "Both"]), contactable: z.lazy(() => integrationContact.optional()), "contactable-id": z.number().int(), "contactable-type": z.enum(["User", "UserGroup", "ApprovalGroup", "Supplier", "SupplierUser"]), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), integration: integration.optional(), "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 invoiceEmail = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), email: z.string(), id: z.number().int().optional(), "send-notification": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const onlineStore = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), login: z.string().optional(), password: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), url: z.string()}); export const supplierAddress = 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 remitToAddress = z.object({active: z.boolean().optional(), city: z.string(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), "external-src-name": z.string().optional(), "external-src-ref": z.string().optional(), id: z.number().int().optional(), "local-tax-number": z.string(), name: z.string().optional(), "postal-code": z.string(), "remit-to-code": z.string(), 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(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "vat-country": country.optional(), "vat-number": z.string().optional()}); export const tag = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string(), "system-tag": z.boolean().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const tagging = z.object({active: z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), tag: tag.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const taxRateType = z.object({active: z.boolean().optional(), country: country.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), "effective-date": z.string().optional(), "expiration-date": z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const taxRate = z.object({active: z.boolean().optional(), country: country.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "customer-accounting": z.boolean().optional(), description: z.string().optional(), "effective-date": z.string().optional(), exempt: z.boolean().optional(), "expiration-date": z.string().optional(), id: z.number().int().optional(), "out-of-scope": z.boolean().optional(), percentage: z.number(), "reverse-charge": z.boolean().optional(), "tax-description": z.string().optional(), "tax-rate-type": taxRateType.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const taxCode = z.object({active: z.boolean().optional(), code: z.string(), country: country, "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), "effective-date": z.string().optional(), id: z.number().int().optional(), percentage: z.number(), "tax-rate": taxRate.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const supplier: z.ZodType = z.object({"account-number": z.string().optional(), "account-types": z.array(accountType).optional(), "allow-change-requests": z.boolean().optional(), "allow-cn-no-backing-doc-from-connect": z.boolean().optional(), "allow-csp-access-without-two-factor": z.boolean().optional(), "allow-cxml-invoicing": z.boolean().optional(), "allow-inv-choose-billing-account": z.boolean().optional(), "allow-inv-from-connect": z.boolean().optional(), "allow-inv-no-backing-doc-from-connect": z.boolean().optional(), "allow-inv-unbacked-lines-from-connect": z.boolean().optional(), "allow-order-confirmation-item-substitutions": z.boolean().optional(), "business-entity-id": z.number().int().optional(), "buyer-hold": z.boolean().optional(), commodity: commodity.optional(), "confirm-by-hrs": z.number().optional(), contacts: z.array(contact).optional(), "content-groups": z.array(businessGroup).optional(), "corporate-url": z.string().optional(), "coupa-connect-secret": z.string().optional(), "coupa-pay-financing-only": z.boolean().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "customer-support-contacts": z.array(customerSupportContact).optional(), "cxml-domain": z.string().optional(), "cxml-http-password": z.string().optional(), "cxml-http-username": z.string().optional(), "cxml-identity": z.string().optional(), "cxml-invoice-buyer-domain": z.string().optional(), "cxml-invoice-buyer-identity": z.string().optional(), "cxml-invoice-secret": z.string().optional(), "cxml-invoice-supplier-domain": z.string().optional(), "cxml-invoice-supplier-identity": z.string().optional(), "cxml-protocol": z.string().optional(), "cxml-secret": z.string().optional(), "cxml-ssl-version": z.string().optional(), "cxml-supplier-domain": z.string().optional(), "cxml-supplier-identity": z.string().optional(), "cxml-url": z.string().optional(), "dd-settings": z.string().optional(), "default-locale": z.string().optional(), "disable-cert-verify": z.boolean().optional(), "display-name": z.string().optional(), diversities: z.array(diversityAssociation).optional(), "diversity-categories": z.array(z.lazy(() => supplier)).optional(), "do-not-accelerate": z.boolean().optional(), duns: z.string().optional(), enterprise: enterprise, "hold-invoices-for-ap-review": z.boolean().optional(), id: z.number().int().optional(), "integration-contacts": integrationContact.optional(), "inventory-organization": inventoryOrganization.optional(), "invoice-emails": z.array(invoiceEmail).optional(), "invoice-matching-level": z.enum(["2-way", "3-way", "3-way-direct", "none"]).optional(), name: z.string(), number: z.string().optional(), "on-hold": z.boolean().optional(), "one-time-supplier": z.boolean().optional(), "online-store": onlineStore, "order-confirmation-level": z.number().int().optional(), parent: z.lazy(() => supplier.optional()), "payment-method": z.string(), "payment-term": paymentTerm.optional(), "payment-term-id": z.number().int().optional(), "payment-terms": z.array(paymentTerm).optional(), "po-change-method": z.enum(["cxml", "xml", "email", "prompt", "mark_as_sent", "buy_online"]).optional(), "po-email": z.string().optional(), "po-method": z.enum(["cxml", "xml", "email", "prompt", "mark_as_sent", "buy_online"]).optional(), "preferred-commodities": z.array(commodity).optional(), "primary-address": supplierAddress, "primary-contact": contact, "remit-to-addresses": z.array(remitToAddress).optional(), "remit-to-requirement": z.number().int().optional(), "restricted-account-types": z.array(accountType).optional(), "savings-pct": z.number().optional(), "scf-configs": z.string().optional(), "scope-three-emissions": z.boolean().optional(), "send-invoices-to-approvals": z.boolean().optional(), "shipping-term": shippingTerm.optional(), status: z.string().optional(), "storefront-url": z.string().optional(), "supplier-account-types": z.array(z.lazy(() => supplier)).optional(), "supplier-addresses": z.array(supplierAddress).optional(), "supplier-community-enablement": z.number().int().optional(), "supplier-sites": z.array(z.lazy(() => supplier)).optional(), taggings: z.array(tagging).optional(), "tax-code": taxCode.optional(), "tax-id": z.string().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), website: z.string().optional(), "whitelist-dd": z.boolean().optional()}); export const contract: z.ZodType = z.object({"amended-contract-type": z.string().optional(), "auto-extend-end-date-for-renewal": z.boolean().optional(), "clma-id": z.number().int().optional(), consent: z.enum(["", "notice", "consent", "not_required", "not_assignable"]).optional(), "content-groups": z.array(businessGroup), "contract-classification": contractClassification.optional(), "contract-clause-type-field": contractClauseTypeField.optional(), "contract-clauses": z.array(contractClause).optional(), "contract-detail": contractDetail.optional(), "contract-dispute": contractDispute.optional(), "contract-owner": userSimple.optional(), "contract-parties": z.array(contractParty).optional(), "contract-parties-field-container": contractPartiesFieldContainer.optional(), "contract-performance": contractPerformance.optional(), "contract-price-and-payment": contractPriceAndPayment.optional(), "contract-relationship-and-reporting": contractRelationshipAndReporting.optional(), "contract-risk": contractRisk.optional(), "contract-termination": contractTermination.optional(), "contract-terms": z.array(contractTerm).optional(), "contract-terms-and-renewal": contractTermsAndRenewal.optional(), "contract-type": contractType.optional(), "contract-type-custom-field-1": z.string().optional(), "contract-type-custom-field-10": z.string().optional(), "contract-type-custom-field-2": z.string().optional(), "contract-type-custom-field-3": z.string().optional(), "contract-type-custom-field-4": z.string().optional(), "contract-type-custom-field-5": z.string().optional(), "contract-type-custom-field-6": z.string().optional(), "contract-type-custom-field-7": z.string().optional(), "contract-type-custom-field-8": z.string().optional(), "contract-type-custom-field-9": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), "current-approval": approval.optional(), "current-parallel-approvals": z.array(approval).optional(), "default-account": account.optional(), department: department.optional(), description: z.string().optional(), "diversity-categories": z.array(diversityCategory).optional(), "end-date": z.string().optional(), "esign-provider-account": esignProviderAccount.optional(), "execution-date": z.string().optional(), "external-contract-id": z.string().optional(), "fill-with-counterparty": z.boolean().optional(), id: z.number().int().optional(), "intellectual-property-and-data": intellectualPropertyAndData.optional(), "is-default": z.boolean().optional(), "is-default?": z.boolean().optional(), "legal-agreement-url": z.string().optional(), "length-of-notice-unit": z.enum(["days", "months", "years"]).optional(), "length-of-notice-value": z.string().optional(), "master-contract": z.lazy(() => contract.optional()), "max-commit": z.number().optional(), "maximum-value": z.number().optional(), "min-commit": z.number().optional(), "minimum-value": z.number().optional(), name: z.string(), "no-of-renewals": z.number().int(), number: z.string(), "object-lines": z.array(objectLine).optional(), "order-window-tz": z.enum(["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Factory", "GB", "GB-Eire", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich", "HST", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROC", "ROK", "Singapore", "SystemV/AST4", "SystemV/AST4ADT", "SystemV/CST6", "SystemV/CST6CDT", "SystemV/EST5", "SystemV/EST5EDT", "SystemV/HST10", "SystemV/MST7", "SystemV/MST7MDT", "SystemV/PST8", "SystemV/PST8PDT", "SystemV/YST9", "SystemV/YST9YDT", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu", "International Date Line West", "American Samoa", "Midway Island", "Hawaii", "Alaska", "Pacific Time (US & Canada)", "Tijuana", "Arizona", "Chihuahua", "Mazatlan", "Mountain Time (US & Canada)", "Central America", "Central Time (US & Canada)", "Guadalajara", "Mexico City", "Monterrey", "Saskatchewan", "Bogota", "Eastern Time (US & Canada)", "Indiana (East)", "Lima", "Quito", "Atlantic Time (Canada)", "Caracas", "Georgetown", "La Paz", "Puerto Rico", "Santiago", "Newfoundland", "Brasilia", "Buenos Aires", "Greenland", "Montevideo", "Mid-Atlantic", "Azores", "Cape Verde Is.", "Edinburgh", "Lisbon", "London", "Monrovia", "Amsterdam", "Belgrade", "Berlin", "Bern", "Bratislava", "Brussels", "Budapest", "Casablanca", "Copenhagen", "Dublin", "Ljubljana", "Madrid", "Paris", "Prague", "Rome", "Sarajevo", "Skopje", "Stockholm", "Vienna", "Warsaw", "West Central Africa", "Zagreb", "Zurich", "Athens", "Bucharest", "Cairo", "Harare", "Helsinki", "Jerusalem", "Kaliningrad", "Kyiv", "Pretoria", "Riga", "Sofia", "Tallinn", "Vilnius", "Baghdad", "Istanbul", "Kuwait", "Minsk", "Moscow", "Nairobi", "Riyadh", "St. Petersburg", "Volgograd", "Tehran", "Abu Dhabi", "Baku", "Muscat", "Samara", "Tbilisi", "Yerevan", "Kabul", "Ekaterinburg", "Islamabad", "Karachi", "Tashkent", "Chennai", "Kolkata", "Mumbai", "New Delhi", "Sri Jayawardenepura", "Kathmandu", "Almaty", "Astana", "Dhaka", "Urumqi", "Rangoon", "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk", "Novosibirsk", "Beijing", "Chongqing", "Hong Kong", "Irkutsk", "Kuala Lumpur", "Perth", "Taipei", "Ulaanbaatar", "Osaka", "Sapporo", "Seoul", "Tokyo", "Yakutsk", "Adelaide", "Darwin", "Brisbane", "Canberra", "Guam", "Hobart", "Melbourne", "Port Moresby", "Sydney", "Vladivostok", "Magadan", "New Caledonia", "Solomon Is.", "Srednekolymsk", "Auckland", "Fiji", "Kamchatka", "Marshall Is.", "Wellington", "Chatham Is.", "Nuku'alofa", "Samoa", "Tokelau Is."]).optional(), parent: z.lazy(() => contract.optional()), "payment-term": paymentTerm.optional(), "po-message": z.string().optional(), preferred: z.boolean().optional(), "proxy-supplier-id": z.number().int().optional(), "published-date": z.string().optional(), "quote-response-id": z.number().int().optional(), "ra-risk-request": raRiskRequest.optional(), "rate-card": rateCard.optional(), "reason-insight-code": z.string().optional(), "reason-insight-comment": z.string().optional(), "reason-insight-events": z.array(reasonInsightEvent), "renewal-length-unit": z.enum(["days", "months", "years"]), "renewal-length-value": z.number().int(), "requisition-message": z.string().optional(), "savings-pct": z.number().optional(), schedule: orderWindow.optional(), "shipping-term": shippingTerm.optional(), source: z.string().optional(), "source-id": z.string().optional(), "source-type": z.string().optional(), "start-date": z.string().optional(), status: z.string(), "stop-spend-based-on-max-value": z.enum(["yes", "no"]).optional(), "strict-invoicing-rules": z.boolean().optional(), submitter: userSimple.optional(), supplier: supplier, "supplier-account": z.string().optional(), "supplier-invoiceable": z.boolean().optional(), "supplier-invoiceable?": z.boolean().optional(), taggings: z.array(tagging).optional(), tags: z.array(tag).optional(), "term-type": z.enum(["fixed", "auto_renew", "perpetual"]).optional(), terminated: z.boolean().optional(), "termination-notice": z.enum(["yes", "no"]).optional(), "termination-notice-length-unit": z.enum(["days", "months", "years"]).optional(), "termination-notice-length-value": z.number().int().optional(), terms: z.string().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "use-online-signing": z.boolean().optional(), "use-order-windows": z.boolean().optional(), "used-for-buying": z.boolean().optional(), version: z.number().int().optional(), "whose-paper": z.number().int().optional()}); export const invoiceFailedTolerance = z.object({"account-type-id": z.number().int().optional(), "breach-amount": z.string().optional(), "breach-detail-1": z.string().optional(), "breach-detail-2": z.string().optional(), "breach-detail-3": z.string().optional(), "breach-detail-4": z.string().optional(), "breach-limit": z.string().optional(), code: z.string(), "created-at": z.string().optional(), "failable-id": z.number().int().optional(), "failable-type": z.string().optional(), id: z.number().int().optional(), "resolution-strategy": z.string().optional(), resolved: z.boolean().optional(), "updated-at": z.string().optional()}); export const form = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), "form-type": z.string().optional(), id: z.number().int().optional(), name: z.string(), status: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const sustainabilityDetail = z.object({"created-at": z.string().optional(), id: z.number().int().optional(), level: z.number().int().optional(), title: z.string().optional(), "updated-at": z.string().optional(), url: z.string().optional()}); export const itemTaxDetail = z.object({cfop: z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), ncm: z.string().optional(), "updated-at": z.string().optional()}); export const item = z.object({active: z.boolean().optional(), "allow-partial-quantity": z.boolean().optional(), commodity: commodity.optional(), "connect-item-id": z.number().int().optional(), "consumption-quantity": z.number().int().optional(), "consumption-uom": uom.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string(), "dual-uom-allowed": z.boolean().optional(), "external-image-url": z.string().optional(), id: z.number().int().optional(), "image-url": z.string().optional(), "inventory-lot-expiration-type": z.string().optional(), "inventory-lot-tracking-enabled": z.boolean().optional(), "item-number": z.string().optional(), "item-type": z.string().optional(), "manufacturer-name": z.string(), "manufacturer-part-number": z.string().optional(), name: z.string(), "net-weight": z.number(), "net-weight-uom": uom.optional(), "pack-qty": z.number(), "pack-uom": uom.optional(), "pack-uom-id": z.number().int(), "pack-weight": z.number(), "receive-catch-weight": z.boolean().optional(), "receiving-form": form.optional(), "reorder-alerts": z.string().optional(), "reorder-point": z.number().optional(), "require-asset-tag": z.boolean().optional(), "require-inspection": z.boolean().optional(), "storage-quantity": z.number().int().optional(), "storage-uom": uom.optional(), "sustainability-detail": sustainabilityDetail.optional(), "tax-detail": itemTaxDetail.optional(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "use-pack-weight": z.boolean().optional()}); export const taxLine = z.object({amount: z.number().optional(), "amount-engine": z.number().optional(), base: z.number().optional(), basis: z.number().optional(), code: z.string().optional(), "code-engine": z.string().optional(), "code-id": z.number().int().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "kind-of-factor": z.string().optional(), "nature-of-tax": z.string().optional(), "product-tax-classification": z.string().optional(), rate: z.number().optional(), "rate-engine": z.number().optional(), "supplier-rate": z.number().optional(), "tax-code": taxCode.optional(), "tax-rate": taxRate.optional(), "tax-rate-type": taxRateType.optional(), "taxable-amount": z.number().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "withholding-amount": z.number().optional()}); export const withholdingTaxLine = z.object({amount: z.number().optional(), "amount-engine": z.number().optional(), base: z.number().optional(), basis: z.number().optional(), code: z.string().optional(), "code-engine": z.string().optional(), "code-id": z.number().int().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "kind-of-factor": z.string().optional(), "nature-of-tax": z.string().optional(), "product-tax-classification": z.string().optional(), rate: z.number().optional(), "rate-engine": z.number().optional(), "supplier-rate": z.number().optional(), "tax-code": taxCode.optional(), "tax-rate": taxRate.optional(), "tax-rate-type": taxRateType.optional(), "taxable-amount": z.number().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "withholding-amount": z.number().optional()}); export const invoiceLine = z.object({account: account.optional(), "account-allocations": z.array(invoiceLineAllocation).optional(), "accounting-total": z.number().optional(), "accounting-total-currency": currency.optional(), "adjustment-type": z.enum(["price", "quantity", "other"]).optional(), "billing-note": z.string().optional(), "bulk-price": bulkPrice.optional(), category: z.string().optional(), "classification-of-goods": z.string().optional(), commodity: commodity.optional(), "company-uom": z.string().optional(), contract: contract.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), "customs-declaration-number": z.string().optional(), deductibility: z.string().optional(), "delivery-note-number": z.string().optional(), description: z.string(), "discount-amount": z.number().optional(), "failed-tolerances": z.array(invoiceFailedTolerance).optional(), "fiscal-code": z.string().optional(), "handling-distribution-total": z.number().optional(), "hsn-sac-code": z.string().optional(), id: z.number().int().optional(), item: item.optional(), "item-barcode": z.string().optional(), "line-num": z.number().int().optional(), "line-type": z.string().optional(), "match-reference": z.string().optional(), "misc-distribution-total": z.number().optional(), "municipality-taxation-code": z.string().optional(), "net-weight": z.number().optional(), "order-header-num": z.string().optional(), "order-line-commodity": commodity.optional(), "order-line-custom-fields": z.string().optional(), "order-line-id": z.number().int().optional(), "order-line-num": z.string().optional(), "order-line-source-part-num": z.string().optional(), "original-date-of-supply": z.string().optional(), period: period.optional(), "po-number": z.string().optional(), price: z.number(), "price-per-uom": z.number().optional(), "property-tax-account": z.string().optional(), quantity: z.number().optional(), "shipping-distribution-total": z.number().optional(), "source-part-num": z.string().optional(), status: z.string().optional(), subcategory: z.string().optional(), "supp-aux-part-num": z.string().optional(), taggings: z.array(tagging).optional(), tags: z.array(tag).optional(), "tax-amount": z.string().optional(), "tax-amount-engine": z.string().optional(), "tax-code": taxCode.optional(), "tax-code-engine": z.string().optional(), "tax-description": z.string().optional(), "tax-distribution-total": z.number().optional(), "tax-lines": z.array(taxLine).optional(), "tax-location": z.string().optional(), "tax-rate": z.string().optional(), "tax-rate-engine": z.string().optional(), "tax-supply-date": z.string().optional(), total: z.number().optional(), type: z.string().optional(), unspsc: z.string().optional(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "weight-uom": uom.optional(), "withholding-tax-lines": z.array(withholdingTaxLine).optional()}); export const orderLineAllocation = z.object({account: account, amount: z.number().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), pct: z.number(), period: period.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const amountComponent = z.object({amount: z.number(), "amount-type": z.enum(["supplier_net_paid", "supplier_net_received", "supplier_fees", "msp_net_paid", "msp_net_received", "msp_fees", "vms_net_paid", "vms_net_received", "vms_fees"]), "created-at": z.string().optional(), currency: currency, id: z.number().int().optional(), "source-id": z.number().int().optional(), "source-type": z.string().optional(), "updated-at": z.string().optional()}); export const assetTag: z.ZodType = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "inventory-balance": z.lazy(() => assetTag.optional()), "inventory-balance-id": z.number().int().optional(), note: z.string().optional(), "order-line-id": z.number().int().optional(), owner: z.string().optional(), received: z.boolean().optional(), "requisition-line-id": z.number().int().optional(), "serial-number": z.string().optional(), tag: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const attachment = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), file: z.string().optional(), "file-content-type": z.string().optional(), "file-file-name": z.string().optional(), "file-file-size": z.string().optional(), "file-url": z.string().optional(), id: z.number().int().optional(), intent: z.string().optional(), "linked-to": z.string().optional(), text: z.string().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), url: z.string().optional()}); export const easyFormWidgetResponse = z.object({answer: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "easy-form-id": z.number().int().optional(), "easy-form-response-id": z.number().int().optional(), "easy-form-widget-id": z.number().int().optional(), "encrypted-answer": z.string().optional(), "field-name": z.string().optional(), id: z.number().int().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "widget-label": z.string().optional(), "widget-type": z.string().optional()}); export const easyFormResponse = z.object({approvals: z.array(approval).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "current-approval": approval.optional(), "current-parallel-approvals": z.array(approval).optional(), "easy-form-id": z.number().int(), "easy-form-widget-responses": z.array(easyFormWidgetResponse).optional(), id: z.number().int().optional(), name: z.string().optional(), "requested-by": userSimple.optional(), status: z.string().optional(), subject: z.unknown(), "submitted-at": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const jobCategory = z.object({active: z.boolean().optional(), code: z.string().optional(), "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 jobLevel = z.object({active: z.boolean().optional(), code: z.string().optional(), "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 jobTitle = z.object({active: z.boolean().optional(), code: z.string().optional(), "content-groups": z.array(businessGroup).optional(), "coupa-standard-job-title-taxonomy-id": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "job-category": jobCategory.optional(), "job-level": jobLevel.optional(), title: z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const jobTitleAssociation = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "job-title": jobTitle, "lineable-type": z.string().optional(), "no-of-workers": z.number().int(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "work-location": address}); export const extraLineAttributesOrderLineAttribute = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), "end-date": z.string().optional(), id: z.number().int().optional(), "job-title-associations": z.array(jobTitleAssociation).optional(), manager: userSimple.optional(), "rate-card": rateCard.optional(), "start-date": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "work-confirmer-email": z.string().optional()}); export const formResponse = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const flow = z.object({}); export const integrationRecordResponse = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), "response-code": z.string().optional(), "response-message": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const integrationError = z.object({"contact-alert-type": z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "creation-method": z.string().optional(), "document-id": z.number().int().optional(), "document-revision": z.number().int().optional(), "document-status": z.string().optional(), "document-type": z.enum(["ContingentWorkOrderHeader", "ExternalOrderHeader", "OrderHeader", "InventoryTransaction", "InvoiceHeader", "ExpenseReport", "RequisitionHeader", "Account", "Supplier", "User", "Address", "RemitToAddress", "Contract", "ExchangeRate", "Invoice", "Requisition", "Payment", "ApprovalChain", "LookupValue", "Item", "SupplierInformation", "Asn::Header", "AccountValidationRule", "Payables::External::Payable", "Charge", "Payables::Invoice", "Payables::Expense", "CoupaPay::Payment", "CoupaPay::Statement", "ReceiptRequest", "InventoryRequestHeader"]).optional(), "external-id": z.string().optional(), id: z.number().int().optional(), integration: integration.optional(), "integration-filename": z.string().optional(), "integration-run": z.lazy(() => integrationRun), "integration-run-id": z.number().int().optional(), resolved: z.boolean().optional(), responses: z.array(integrationRecordResponse).optional(), status: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const integrationRun: z.ZodType = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), "end-time": z.string().optional(), flow: flow.optional(), id: z.number().int().optional(), integration: integration, "integration-errors": z.array(integrationError).optional(), "records-processed": z.number().int().optional(), "start-time": z.string().optional(), status: z.string().optional(), "total-records": z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const integrationHistoryRecord = z.object({"contact-alert-type": z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "creation-method": z.string().optional(), "document-id": z.number().int(), "document-revision": z.number().int().optional(), "document-status": z.string().optional(), "document-type": z.enum(["ContingentWorkOrderHeader", "ExternalOrderHeader", "OrderHeader", "InventoryTransaction", "InvoiceHeader", "ExpenseReport", "RequisitionHeader", "Account", "Supplier", "User", "Address", "RemitToAddress", "Contract", "ExchangeRate", "Invoice", "Requisition", "Payment", "ApprovalChain", "LookupValue", "Item", "SupplierInformation", "Asn::Header", "AccountValidationRule", "Payables::External::Payable", "Charge", "Payables::Invoice", "Payables::Expense", "CoupaPay::Payment", "CoupaPay::Statement", "ReceiptRequest", "InventoryRequestHeader"]), "external-id": z.string().optional(), id: z.number().int().optional(), integration: integration.optional(), "integration-filename": z.string().optional(), "integration-run": integrationRun.optional(), "integration-run-id": z.number().int().optional(), resolved: z.boolean().optional(), responses: z.array(integrationRecordResponse).optional(), status: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const orderLineConfirmation: z.ZodType = z.object({action: z.string().optional(), "can-fulfill": z.number().int().optional(), "confirm-by-hrs": z.number().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: z.lazy(() => orderLineConfirmation.optional()), description: z.string(), id: z.number().int().optional(), "line-num": z.string().optional(), "manufacturer-name": z.string().optional(), "manufacturer-part-number": z.string().optional(), "order-line": z.lazy(() => orderLineConfirmation.optional()), price: z.number(), "promised-date": z.string().optional(), "promised-deliveries": z.number().int().optional(), quantity: z.number(), "reason-insight-events": z.array(reasonInsightEvent).optional(), "schedule-lines": z.array(z.lazy(() => orderLineConfirmation)).optional(), "source-part-num": z.string().optional(), status: z.string().optional(), "supp-aux-part-num": z.string().optional(), uom: z.lazy(() => orderLineConfirmation.optional()), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const orderHeaderConfirmation: z.ZodType = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), exported: z.boolean().optional(), "external-reference-number": z.string().optional(), id: z.number().int().optional(), "integration-message": z.string(), "last-exported-at": z.string().optional(), "order-header": z.lazy(() => orderHeaderConfirmation.optional()), "order-line-confirmations": z.array(orderLineConfirmation).optional(), "reason-insight-events": z.array(reasonInsightEvent).optional(), status: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.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 procurementRecurringRule = z.object({"accounting-amount-currency": currency.optional(), "accounting-amount-per-occurrence": z.number().optional(), "amount-per-occurrence": z.number(), "amount-type": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), description: z.string().optional(), "end-date": z.string().optional(), frequency: z.number().int(), id: z.number().int().optional(), interval: z.number().int().optional(), "number-of-occurrences": z.number().int().optional(), "payment-term": paymentTerm.optional(), "reporting-amount-per-occurrence": z.number().optional(), "start-date": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const reqLineAllocation = z.object({account: account, amount: z.number().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), pct: z.number(), period: period.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const extraLineAttributesRequisitionLineAttribute = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), "end-date": z.string(), id: z.number().int().optional(), "job-title-associations": z.array(jobTitleAssociation).optional(), manager: userSimple, "rate-card": rateCard.optional(), "start-date": z.string(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "work-confirmer-email": z.string().optional()}); export const punchoutSite: z.ZodType = z.object({"agent-auth-key": z.string().optional(), "agent-type": z.string().optional(), "contract-id": z.number().int(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), "disable-cert-verify": z.boolean().optional(), "diversity-categories": z.array(diversityCategory).optional(), domain: z.string(), id: z.number().int().optional(), identity: z.string(), "is-coupa-advantage": z.string().optional(), "is-from-coupa-checkout": z.boolean().optional(), "is-user-preferred": z.string().optional(), name: z.string(), protocol: z.string(), "realtime-agent-key": z.string().optional(), "related-commodities": z.array(commodity).optional(), "search-mode": z.number().int().optional(), secret: z.string(), "sender-domain": z.string(), "sender-identity": z.string(), "ssl-version": z.string().optional(), supplier: supplier.optional(), "supplier-id": z.number().int().optional(), "supports-edit": z.boolean().optional(), "supports-inspect": z.boolean().optional(), tags: z.array(z.lazy(() => punchoutSite)).optional(), title: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), url: z.string(), "use-api": z.boolean().optional()}); export const requisitionLineRealtimeExtension = z.object({"async-status": z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "error-code": z.enum(["un_authorized", "service_error", "timed_out", "out_of_stock", "item_not_found", "agent_failure", "registration_error", "has_more_options", "check_out_options_reqd", "uom_not_available", "unknown"]).optional(), id: z.number().int().optional(), "realtime-item-key": z.string(), "requisition-line-id": z.number().int(), "show-error-warning": z.boolean().optional(), "translated-error-message": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const requisitionLineTaxDetail = z.object({cfop: z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), ncm: z.string().optional(), "updated-at": z.string().optional()}); export const supplierSite = z.object({"account-types": z.array(accountType).optional(), active: z.boolean().optional(), addresses: z.array(address).optional(), "allow-change-requests": z.number().int().optional(), "allow-order-confirmation-item-substitutions": z.number().int().optional(), "buyer-hold": z.boolean().optional(), code: z.string(), contacts: z.array(contact).optional(), "content-groups": z.array(businessGroup).optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "cxml-domain": z.string(), "cxml-http-username": z.string().optional(), "cxml-identity": z.string(), "cxml-protocol": z.string(), "cxml-secret": z.string(), "cxml-ssl-version": z.string().optional(), "cxml-supplier-domain": z.string(), "cxml-supplier-identity": z.string(), "cxml-url": z.string(), "default-locale": z.string().optional(), "disable-cert-verify": z.boolean().optional(), id: z.number().int().optional(), name: z.string(), "payment-method": z.string().optional(), "payment-term": paymentTerm.optional(), "po-change-method": z.enum(["cxml", "xml", "email", "prompt", "mark_as_sent", "buy_online"]).optional(), "po-email": z.string(), "po-method": z.enum(["cxml", "xml", "email", "prompt", "mark_as_sent", "buy_online"]).optional(), "shipping-term": shippingTerm.optional(), "supplier-id": z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const requisitionLine: z.ZodType = z.object({account: account.optional(), "account-allocations": z.array(reqLineAllocation).optional(), "alternate-status": z.string().optional(), alternates: z.array(z.lazy(() => requisitionLine)).optional(), "asset-tags": z.array(assetTag).optional(), attachments: z.array(z.lazy(() => requisitionLine)).optional(), commodity: commodity, "confirm-by-hrs": z.number().optional(), contract: contract.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), description: z.string(), "easy-form-response-id": z.string().optional(), "extra-line-attribute": extraLineAttributesRequisitionLineAttribute.optional(), "form-response": z.string().optional(), id: z.number().int().optional(), "image-url": z.string().optional(), item: item, "line-num": z.number().int().optional(), "line-owner": userSimple.optional(), "line-type": z.enum(["RequisitionQuantityLine", "RequisitionAmountLine"]).optional(), "manufacturer-name": z.string().optional(), "manufacturer-part-number": z.string().optional(), milestones: z.array(z.lazy(() => procurementMilestone)).optional(), "minimum-order-quantity": z.number().optional(), "need-by-date": z.string().optional(), "order-confirmation-level": z.number().int().optional(), "order-increment": z.number().optional(), "order-line-id": z.number().int().optional(), "order-pad-line": z.lazy(() => requisitionLine.optional()), "payment-term": paymentTerm.optional(), period: z.lazy(() => requisitionLine.optional()), "punchout-site": punchoutSite.optional(), quantity: z.number().optional(), "realtime-extension": requisitionLineRealtimeExtension.optional(), "receipt-required": z.boolean().optional(), "recurring-rules": z.array(procurementRecurringRule).optional(), "requisition-line-tax-detail": requisitionLineTaxDetail, "service-type": z.string().optional(), "shipping-term": shippingTerm.optional(), source: z.string().optional(), "source-details": z.string().optional(), "source-part-num": z.string().optional(), "source-type": z.string().optional(), status: z.string().optional(), "sub-line-num": z.number().int().optional(), "supp-aux-part-num": z.string().optional(), supplier: supplier.optional(), "supplier-site": supplierSite.optional(), "supplier-site-id": z.number().int().optional(), "sustainability-detail": sustainabilityDetail.optional(), taggings: z.array(tagging).optional(), tags: z.array(tag).optional(), total: z.number().optional(), "transmission-emails": z.string().optional(), "transmission-method-override": z.enum(["supplier_default", "email", "do_not_transmit"]).optional(), "unit-price": z.number().optional(), "unit-price-in-usd": z.number().optional(), "unspsc-code": z.string().optional(), uom: uom.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 requisitionHeader: z.ZodType = z.object({approvals: z.array(approval).optional(), approver: userSimple.optional(), attachments: z.array(z.lazy(() => requisitionHeader)).optional(), "buyer-note": z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple, currency: z.string().optional(), "current-approval": approval.optional(), "current-parallel-approvals": z.array(approval).optional(), department: department.optional(), exported: z.boolean().optional(), "external-po-reference": z.string().optional(), "hide-price": z.lazy(() => requisitionHeader.optional()), id: z.number().int().optional(), justification: z.string().optional(), "last-exported-at": z.string().optional(), "line-count": z.number().int().optional(), milestones: z.array(z.lazy(() => procurementMilestone)).optional(), "mobile-currency": z.string().optional(), "mobile-total": z.number().optional(), "need-by-date": z.string().optional(), pcard: pcard.optional(), "price-hidden": z.boolean().optional(), "receiving-warehouse-id": z.number().int().optional(), "recurring-rules": z.array(procurementRecurringRule).optional(), "reject-reason-comment": z.string().optional(), "req-title": z.string().optional(), "requested-by": userSimple, requester: userSimple, "requisition-lines": z.array(requisitionLine), "ship-to-address": address, "ship-to-attention": z.string().optional(), status: z.enum(["draft", "cart", "pending_buyer_action", "pending_approval", "approved", "ordered", "partially_received", "received", "abandoned", "backgrounded", "withdrawn"]).optional(), "submitted-at": z.string().optional(), taggings: z.array(tagging).optional(), tags: z.array(tag).optional(), total: z.number().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "user-group-members": z.array(userGroup).optional(), "user-members": z.array(userSimple).optional()}); export const orderHeader: z.ZodType = z.object({"acknowledged-at": z.string().optional(), "acknowledged-flag": z.boolean().optional(), attachments: z.array(attachment).optional(), "change-type": z.enum(["change", "revision", "confirmation"]).optional(), classification: z.enum(["msp", "supplier", "vms"]).optional(), "confirm-by-hrs": z.number().int().optional(), "coupa-accelerate-status": z.literal("accelerated").optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), "current-integration-history-records": z.array(integrationHistoryRecord).optional(), exported: z.boolean().optional(), "hide-price": z.lazy(() => orderHeader.optional()), id: z.number().int().optional(), "internal-revision": z.number().int().optional(), "invoice-stop": z.boolean().optional(), "last-exported-at": z.string().optional(), milestones: z.array(z.lazy(() => procurementMilestone)).optional(), "order-confirmation-level": z.string().optional(), "order-header-confirmations": z.array(orderHeaderConfirmation).optional(), "order-lines": z.array(z.lazy(() => orderLine)), "payment-method": z.string().optional(), "payment-term": paymentTerm.optional(), pcard: pcard.optional(), "po-number": z.string(), "price-hidden": z.boolean().optional(), "reason-insight-events": z.array(z.lazy(() => orderHeader)).optional(), "recurring-rules": z.array(procurementRecurringRule).optional(), requester: userSimple.optional(), "requisition-header": requisitionHeader.optional(), "ship-to-address": address, "ship-to-attention": z.string().optional(), "ship-to-user": userSimple, "shipping-term": shippingTerm.optional(), status: z.enum(["buyer_hold", "cancelled", "closed", "currency_hold", "draft", "error", "expensed", "issued", "supplier_hold", "supplier_window_hold", "exported"]).optional(), supplier: supplier, "supplier-site": supplierSite.optional(), "transmission-emails": z.string().optional(), "transmission-method-override": z.enum(["supplier_default", "email", "do_not_transmit"]).optional(), "transmission-status": z.enum(["created", "deferred", "deferred_processing", "pending_manual", "pending_manual_cancel", "awaiting_online_purchase", "scheduled_for_email", "sent_via_email", "scheduled_for_cxml", "scheduled_for_xml", "sent_via_cxml", "sent_via_xml", "sent_manually", "purchased_online", "transmission_failure"]).optional(), type: z.literal("ExternalOrderHeader").optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "user-group-members": z.array(userGroup).optional(), "user-members": z.array(userSimple).optional(), version: z.number().int().optional()}); export const payablesOrderReconciliationLine = z.object({"adjustment-date": z.string().optional(), amount: z.number().optional(), "amount-paid": z.number().optional(), category: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), id: z.number().int().optional(), note: z.string().optional(), notes: z.string().optional(), "payable-id": z.number().int().optional(), "payable-type": z.string().optional(), "payment-date": z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const payablesOrder = z.object({"account-type": accountType.optional(), "accounting-total": z.number().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), "due-date": z.string().optional(), exported: z.boolean().optional(), id: z.number().int().optional(), "last-exported-at": z.string().optional(), "milestone-id": z.number().int().optional(), "order-header": orderHeader.optional(), "order-line": z.lazy(() => orderLine.optional()), "paid-date": z.string().optional(), "paid-total": z.number().optional(), "payment-term": paymentTerm.optional(), "reconciliation-lines": z.array(payablesOrderReconciliationLine).optional(), "remaining-total": z.number().optional(), "remittance-total": z.number().optional(), status: z.string().optional(), supplier: supplier.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const procurementMilestone: z.ZodType = z.object({amount: z.number().optional(), "amount-type": z.number().int(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), description: z.string().optional(), "due-date": z.string().optional(), "external-reference-code": z.string().optional(), id: z.number().int().optional(), "last-exported-at": z.string().optional(), "parent-milestone-id": z.number().int().optional(), "pay-order": payablesOrder.optional(), "payment-term": paymentTerm.optional(), "pending-delete": z.boolean().optional(), percent: z.number().optional(), "recurring-rule-id": z.number().int().optional(), status: z.string().optional(), type: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const orderLineTaxDetail = z.object({cfop: z.string().optional(), "created-at": z.string().optional(), id: z.number().int().optional(), ncm: z.string().optional(), "updated-at": z.string().optional()}); export const scheduleLine = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), "delivery-date": z.string().optional(), id: z.number().int().optional(), quantity: z.number(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const orderLine: z.ZodType = z.object({account: account, "account-allocations": z.array(orderLineAllocation).optional(), "account-type": accountType.optional(), "accounting-total": z.number().optional(), "accounting-total-currency": currency.optional(), "amount-components": z.array(amountComponent).optional(), "asset-tags": z.array(assetTag).optional(), attachments: z.array(attachment).optional(), "bulk-price": bulkPrice.optional(), commodity: commodity.optional(), contract: contract.optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency, department: department.optional(), description: z.string(), "easy-form-response-id": easyFormResponse.optional(), "external-reference-number": z.string(), "external-reference-type": z.enum(["staff_augmentation", "sow_project"]).optional(), "extra-line-attribute": extraLineAttributesOrderLineAttribute.optional(), "form-response": formResponse.optional(), id: z.number().int().optional(), "invoice-stop": z.boolean().optional(), invoiced: z.number().optional(), item: item.optional(), "line-num": z.string().optional(), "line-owner": userSimple.optional(), "manufacturer-name": z.string().optional(), "manufacturer-part-number": z.string().optional(), "match-type": z.enum(["direct_matching", "3-way-fifo", "3-way", "2-way", "none"]).optional(), milestones: z.array(procurementMilestone).optional(), "minimum-order-quantity": z.number().optional(), "need-by-date": z.string().optional(), "order-header-id": z.number().int().optional(), "order-header-number": z.string().optional(), "order-increment": z.number().optional(), "order-line-tax-detail": orderLineTaxDetail, period: period.optional(), price: z.number(), quantity: z.number().optional(), "receipt-approval-required": z.boolean().optional(), "receipt-required": z.boolean().optional(), received: z.string().optional(), "receiving-warehouse": warehouse.optional(), "recurring-rules": z.array(procurementRecurringRule).optional(), "reporting-total": z.number().optional(), requester: userSimple.optional(), "requisition-line-id": z.string().optional(), "rfq-easy-form-response-id": easyFormResponse.optional(), "rfq-form-response": formResponse.optional(), "savings-pct": z.number().optional(), "service-type": z.string().optional(), "source-part-num": z.string().optional(), status: z.string().optional(), "sub-line-num": z.number().int().optional(), "supp-aux-part-num": z.string().optional(), supplier: supplier.optional(), "supplier-order-number": z.string().optional(), "supplier-schedule-lines": z.array(scheduleLine).optional(), "supplier-site-id": z.number().int().optional(), "third-party-supplier": supplier.optional(), total: z.number().optional(), type: z.string().optional(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), version: z.number().int().optional()}); export const asnLine = z.object({comments: z.string().optional(), container: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "invoice-line": invoiceLine.optional(), item: item.optional(), "line-num": z.string(), "match-reference": z.string().optional(), "order-line": orderLine.optional(), quantity: z.number(), "received-qty": z.number(), "review-reason": z.string().optional(), "soft-close-for-receiving": z.boolean().optional(), status: z.enum(["draft", "pending_receipt", "partially_received", "received", "error", "cancelled"]).optional(), "supplier-aux-part-num": z.string().optional(), "supplier-part-num": z.string().optional(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const asnHeader = z.object({"asn-number": z.string(), "bill-of-lading": z.string().optional(), carrier: z.string().optional(), container: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), "delivery-date": z.string().optional(), "export-flag": z.boolean().optional(), "gross-weight": z.number().optional(), id: z.number().int().optional(), lines: z.array(asnLine), "packing-slip": z.string().optional(), "ship-date": z.string(), "ship-method": z.string().optional(), "ship-note": z.string().optional(), "ship-to-address": address, "ship-to-user": userSimple.optional(), "ship-to-warehouse": warehouse.optional(), "standard-carrier-alpha-code": z.string().optional(), status: z.string().optional(), supplier: supplier, "tracking-number": z.string().optional(), trailer: z.string().optional(), uom: z.string().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const inspectionCode = z.object({code: z.string(), "created-at": z.string().optional(), "created-by": userSimple.optional(), description: z.string().optional(), id: z.number().int().optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const adjustmentCode = z.object({code: z.string(), "created-at": z.string().optional(), id: z.number().int().optional(), name: z.string(), type: z.string().optional(), "updated-at": z.string().optional()}); export const inventoryLot = z.object({"created-at": z.string().optional(), "expiration-date": z.string(), id: z.number().int().optional(), "item-id": z.number().int().optional(), number: z.string(), "updated-at": z.string().optional()}); export const inventoryTransactionLot = z.object({"adjustment-code": adjustmentCode.optional(), "created-at": z.string().optional(), id: z.number().int().optional(), "inventory-lot": inventoryLot, "inventory-lot-id": z.number().int().optional(), quantity: z.number(), uom: uom, "uom-id": z.number().int().optional(), "updated-at": z.string().optional()}); export const inventoryTransactionValuation: z.ZodType = z.object({"created-at": z.string().optional(), currency: z.lazy(() => inventoryTransactionValuation.optional()), id: z.number().int().optional(), "inventory-transaction-id": z.number().int().optional(), price: z.number().optional(), quantity: z.number(), uom: z.string(), "updated-at": z.string().optional()}); export const receipt: z.ZodType = z.object({"created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), exported: z.boolean().optional(), id: z.number().int().optional(), "inventory-transaction": z.lazy(() => inventoryTransaction.optional()), quantity: z.number().optional(), "receipt-date": z.string(), receivable: z.lazy(() => receipt.optional()), "receivable-id": z.number().int().optional(), "receivable-type": z.string().optional(), total: z.number().optional(), "unit-price": z.number().optional(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional()}); export const inventoryTransaction: z.ZodType = z.object({account: account.optional(), "account-allocations": z.array(inventoryTxnAllocation).optional(), "asn-header": asnHeader.optional(), "asn-line": asnLine.optional(), "asset-tags": z.array(assetTag).optional(), attachments: z.array(attachment).optional(), barcode: z.string().optional(), comments: z.string().optional(), "created-at": z.string().optional(), "created-by": userSimple.optional(), currency: currency.optional(), "current-integration-history-records": z.array(integrationHistoryRecord).optional(), exported: z.boolean().optional(), "from-warehouse": warehouse.optional(), "from-warehouse-location": warehouseLocation.optional(), id: z.number().int().optional(), "inspection-code": inspectionCode.optional(), "inventory-transaction-lots": z.array(inventoryTransactionLot).optional(), "inventory-transaction-valuations": z.array(inventoryTransactionValuation).optional(), item: item.optional(), "last-exported-at": z.string().optional(), "match-reference": z.string().optional(), notes: z.string().optional(), "order-line": orderLine.optional(), "original-transaction": z.lazy(() => inventoryTransaction.optional()), "original-transaction-id": z.number().int().optional(), price: z.number().optional(), quantity: z.number().optional(), "reason-insight": reasonInsight.optional(), receipt: receipt.optional(), "receipts-batch-id": z.number().int().optional(), "received-weight": z.number().optional(), "receiving-form-response": formResponse.optional(), "rfid-tag": z.string(), "soft-close-for-receiving": z.boolean().optional(), status: z.string().optional(), "to-warehouse": warehouse.optional(), "to-warehouse-location": warehouseLocation.optional(), total: z.number().optional(), "transaction-date": z.string().optional(), type: z.string(), uom: uom.optional(), "updated-at": z.string().optional(), "updated-by": userSimple.optional(), "voided-value": z.number().optional()}); export const getApiInventoryAdjustmentsResponse = z.array(inventoryTransaction); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * /inventory_adjustments * * GET /inventory_adjustments * * Also accepts auth: OAuth2ClientCredential */ export const getApiInventoryAdjustments = async (args: GetApiInventoryAdjustmentsArgs, options?: GetApiInventoryAdjustmentsOptions) => { const {baseUrl = "https://r38.coupadev.com/api", fetch: fetchFn = fetch, OAuth2AccessCode} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.limit != null) query.append("limit", String(args.limit)) if (args.offset != null) query.append("offset", String(args.offset)) if (args.order_by != null) query.append("order_by", String(args.order_by)) if (args.dir != null) query.append("dir", String(args.dir)) if (args.return_object != null) query.append("return_object", String(args.return_object)) if (args.filter != null) query.append("filter", String(args.filter)) if (OAuth2AccessCode !== undefined) headers.set('authorization', `Bearer ${OAuth2AccessCode}`) const url = `${baseUrl.replace(/\/+$/, '')}/inventory_adjustments${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiInventoryAdjustmentsResponse, await res.json()) };