master-zapier-plan-draft/vendor/zapier-platform/packages/schema/lib/schemas/ResourceMethodSearchSchema.js
George Lambert b4150c8250 Milestone 0: import zappier billing, Verae middleware, and Zapier research
Compose-ready workspace: packages/zappier (rate card, portal, Stripe),
packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier
(CLI app), vendor/zapier-platform, and research/zapier vendor corpus.

Gate 0 structure checks pass. Product code and research are not yet wired.
2026-09-09 02:37:36 -04:00

67 lines
1.8 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
const makeSchema = require('../utils/makeSchema');
const BasicDisplaySchema = require('./BasicDisplaySchema');
const BasicActionOperationSchema = require('./BasicActionOperationSchema');
module.exports = makeSchema(
{
id: '/ResourceMethodSearchSchema',
description:
'How will we find a specific object given filters or search terms? Will be turned into a search automatically.',
type: 'object',
required: ['display', 'operation'],
properties: {
display: {
description: 'Define how this search method will be exposed in the UI.',
$ref: BasicDisplaySchema.id,
},
operation: {
description: 'Define how this search method will work.',
$ref: BasicActionOperationSchema.id,
},
},
additionalProperties: false,
examples: [
{
display: {
label: 'Find a Recipe',
description: 'Search for recipe by cuisine style.',
},
operation: {
perform: '$func$2$f$',
sample: { id: 1 },
},
},
{
display: {
label: 'Find a Recipe',
description: 'Search for recipe by cuisine style.',
hidden: true,
},
operation: {
perform: '$func$2$f$',
},
},
],
antiExamples: [
{
example: {
key: 'recipe',
noun: 'Recipe',
display: {
label: 'Find a Recipe',
description: 'Search for recipe by cuisine style.',
},
operation: {
perform: '$func$2$f$',
},
},
reason:
'Missing key from operation: sample. Note  this is valid if the resource has defined a sample.',
},
],
},
[BasicDisplaySchema, BasicActionOperationSchema],
);