@apistudio/apim-cli
Version:
CLI for API Management Products
42 lines (41 loc) • 1.2 kB
JavaScript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { z } from 'zod';
export const MetadataModel = z.object({
name: z.string(),
version: z.string(),
tags: z.array(z.string()).optional(),
namespace: z.string(),
type: z.string().optional(),
// types: z.enum(["REST", "SWAGGER", "SOAP", "GRAPHQL", "ODATA"]).optional(),
description: z.string().optional(),
});
export const BaseModel = z.object({
kind: z.string(),
metadata: MetadataModel,
spec: z.object({}),
kindEnum: z.string().optional(),
apiVersion: z.string().optional(),
});
export const IfConditionSchema = z
.union([
z.boolean(),
z.string().refine((val) => {
try {
const hasVariable = /\$\{[^}]+\}/.test(val); // Ensure there's at least one ${...}
if (!hasVariable)
return false;
return true;
}
catch {
return false;
}
}, {
message: 'Invalid condition: not a valid JavaScript expression',
}),
])
.optional()
.default(true);
export const StopOnFailSchema = z.boolean().optional().default(false);
export const RequestSkippedSchema = z.boolean().optional().default(false);