n8n-nodes-base
Version:
Base nodes of n8n
25 lines (23 loc) • 2.31 kB
JavaScript
/**
* HubSpot Node - Version 2.1 - Zod Schema
* Discriminator: resource=engagement, operation=create
*
* Use .parse() for strict validation or .safeParse() for error handling.
*
* Schema helpers (z, expressionSchema, etc.) are passed as parameters
* by the schema-validator, not imported from external files.
*
* @generated - CommonJS JavaScript for runtime loading
*/
module.exports = function getSchema({ parameters, z, expressionSchema, stringOrExpression, numberOrExpression, booleanOrExpression, resourceLocatorValueSchema, resourceMapperValueSchema, filterValueSchema, assignmentCollectionValueSchema, iDataObjectSchema, resolveSchema }) {
return z.object({
parameters: z.object({
resource: z.literal('engagement'),
operation: z.literal('create'),
authentication: z.union([z.literal('apiKey'), z.literal('appToken'), z.literal('oAuth2'), expressionSchema]).optional(),
type: z.union([z.literal('call'), z.literal('email'), z.literal('meeting'), z.literal('task'), expressionSchema]).optional(),
metadata: resolveSchema({ parameters, schema: z.object({ body: stringOrExpression.optional(), forObjectType: z.union([z.literal('COMPANY'), z.literal('CONTACT'), expressionSchema]).optional(), status: z.union([z.literal('COMPLETED'), z.literal('DEFERRED'), z.literal('IN_PROGRESS'), z.literal('NOT_STARTED'), z.literal('WAITING'), expressionSchema]).optional(), subject: stringOrExpression.optional(), bcc: stringOrExpression.optional(), cc: stringOrExpression.optional(), fromEmail: stringOrExpression.optional(), firstName: stringOrExpression.optional(), lastName: stringOrExpression.optional(), html: stringOrExpression.optional(), toEmail: stringOrExpression.optional(), endTime: stringOrExpression.optional(), internalMeetingNotes: stringOrExpression.optional(), startTime: stringOrExpression.optional(), title: stringOrExpression.optional(), durationMilliseconds: numberOrExpression.optional(), fromNumber: stringOrExpression.optional(), recordingUrl: stringOrExpression.optional(), toNumber: stringOrExpression.optional() }), required: false, displayOptions: {"show":{"type":["task","email","meeting","call"]}}, defaults: {"type":""} }),
additionalFields: z.object({ associations: z.unknown().optional() }).optional(),
}).optional(),
});
};