somod-schema
Version:
Schema to validate yaml files in somod modules
1 lines • 302 kB
JavaScript
"use strict";module.exports = validate14;module.exports.default = validate14;const schema16 = {"$schema":"http://json-schema.org/draft-07/schema","$id":"https://somod.json-schema.sodaru.com/serverless-template/index.json","title":"JSON Schema for Serverless Template in SOMOD","definitions":{"somodAjvCompile":{"type":"object","additionalProperties":false,"required":["SOMOD::AjvCompile"],"properties":{"SOMOD::AjvCompile":{"anyOf":[{"$ref":"http://json-schema.org/draft-07/schema"},{"$ref":"#/definitions/somodFunctions"}]}}},"somodAnd":{"type":"object","additionalProperties":false,"required":["SOMOD::And"],"properties":{"SOMOD::And":{"type":"array","items":{"anyOf":[{"type":"boolean"},{"$ref":"#/definitions/somodFunctions"}]},"minItems":1}}},"somodEquals":{"type":"object","additionalProperties":false,"required":["SOMOD::Equals"],"properties":{"SOMOD::Equals":{"type":"array","items":{"anyOf":[true,{"$ref":"#/definitions/somodFunctions"}]},"minItems":2,"maxItems":2}}},"somodFunctions":{"if":{"type":"object","propertyNames":{"enum":["SOMOD::AjvCompile","SOMOD::And","SOMOD::Or","SOMOD::Equals","SOMOD::If","SOMOD::JsonParse","SOMOD::JsonStringify","SOMOD::Key","SOMOD::Parameter"]}},"then":{"oneOf":[{"$ref":"#/definitions/somodAjvCompile"},{"$ref":"#/definitions/somodAnd"},{"$ref":"#/definitions/somodOr"},{"$ref":"#/definitions/somodEquals"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodJsonParse"},{"$ref":"#/definitions/somodJsonStringify"},{"$ref":"#/definitions/somodKey"},{"$ref":"#/definitions/somodParameter"}]},"else":true},"somodIf":{"type":"object","additionalProperties":false,"required":["SOMOD::If"],"properties":{"SOMOD::If":{"type":"array","additionalItems":{"anyOf":[true,{"$ref":"#/definitions/somodFunctions"}]},"items":[{"anyOf":[{"type":"boolean"},{"$ref":"#/definitions/somodFunctions"}]}],"minItems":2,"maxItems":3}}},"somodJsonParse":{"type":"object","additionalProperties":false,"required":["SOMOD::JsonParse"],"properties":{"SOMOD::JsonParse":{"anyOf":[{"type":"string"},{"$ref":"#/definitions/somodFunctions"}]}}},"somodJsonStringify":{"type":"object","additionalProperties":false,"required":["SOMOD::JsonStringify"],"properties":{"SOMOD::JsonStringify":{"anyOf":[true,{"$ref":"#/definitions/somodFunctions"}]}}},"somodKey":{"type":"object","additionalProperties":false,"required":["SOMOD::Key"],"properties":{"SOMOD::Key":{"type":"array","additionalItems":false,"items":[{"anyOf":[{"type":"object"},{"type":"array"},{"$ref":"#/definitions/somodFunctions"}]},{"anyOf":[{"type":"string"},{"type":"number"},{"$ref":"#/definitions/somodFunctions"}]}],"minItems":2,"maxItems":2}}},"somodOr":{"type":"object","additionalProperties":false,"required":["SOMOD::Or"],"properties":{"SOMOD::Or":{"type":"array","items":{"anyOf":[{"type":"boolean"},{"$ref":"#/definitions/somodFunctions"}]},"minItems":1}}},"somodParameter":{"type":"object","additionalProperties":false,"required":["SOMOD::Parameter"],"properties":{"SOMOD::Parameter":{"type":"string","description":"Must refer the parameter available for this module"}}},"arrayLike":{"oneOf":[{"$ref":"#/definitions/samCidr"},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samSplit"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodJsonParse"},{"$ref":"#/definitions/somodKey"}]},"booleanLike":{"oneOf":[{"$ref":"#/definitions/samBoolean"},{"$ref":"#/definitions/samAnd"},{"$ref":"#/definitions/samOr"},{"$ref":"#/definitions/samEquals"},{"$ref":"#/definitions/samNot"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodAnd"},{"$ref":"#/definitions/somodOr"},{"$ref":"#/definitions/somodEquals"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodKey"}]},"numberLike":{"oneOf":[{"$ref":"#/definitions/samNumber"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodKey"}]},"samAnd":{"type":"object","additionalProperties":false,"properties":{"Fn::And":{"type":"array","items":{"$ref":"#/definitions/booleanLike"},"minItems":1,"maxItems":10}}},"samBase64":{"type":"object","additionalProperties":false,"properties":{"Fn::Base64":{"$ref":"#/definitions/stringLike"}}},"samBoolean":{"type":"boolean"},"samCidr":{"type":"object","additionalProperties":false,"properties":{"Fn::Cidr":{"type":"array","items":[{"$ref":"#/definitions/stringLike","description":"ipBlock"},{"$ref":"#/definitions/numberLike","description":"count"},{"$ref":"#/definitions/numberLike","description":"cidrBits"}],"minItems":3,"maxItems":3,"additionalItems":false}}},"samEquals":{"type":"object","additionalProperties":false,"properties":{"Fn::Equals":{"type":"array","items":[{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]}],"maxItems":2,"minItems":2,"additionalItems":false}}},"samFindInMap":{"type":"object","additionalProperties":false,"properties":{"Fn::FindInMap":{"type":"array","items":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/stringLike"}],"minItems":3,"maxItems":3,"additionalItems":false}}},"samGetAZs":{"type":"object","additionalProperties":false,"properties":{"Fn::GetAZs":{"anyOf":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"}]}}},"samIf":{"type":"object","additionalProperties":false,"properties":{"Fn::If":{"type":"array","items":[{"$ref":"#/definitions/samString"},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]}],"maxItems":3,"minItems":3,"additionalItems":false}}},"samJoin":{"type":"object","additionalProperties":false,"properties":{"Fn::Join":{"type":"array","items":[{"$ref":"#/definitions/samString"},{"anyOf":[{"type":"array","items":{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"}]},"minItems":1},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samSplit"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"}]}],"minItems":2,"maxItems":2,"additionalItems":false}}},"samNot":{"type":"object","additionalProperties":false,"properties":{"Fn::Not":{"type":"array","items":[{"$ref":"#/definitions/booleanLike"}],"maxItems":1,"minItems":1,"additionalItems":false}}},"samNumber":{"type":"number"},"samOr":{"type":"object","additionalProperties":false,"properties":{"Fn::Or":{"type":"array","items":{"$ref":"#/definitions/booleanLike"},"minItems":1,"maxItems":10}}},"samRef":{"type":"object","additionalProperties":false,"properties":{"Ref":{"enum":["AWS::AccountId","AWS::NotificationARNs","AWS::NoValue","AWS::Partition","AWS::Region","AWS::StackId","AWS::StackName","AWS::URLSuffix"]}}},"samSelect":{"type":"object","additionalProperties":false,"properties":{"Fn::Select":{"type":"array","items":[{"anyOf":[{"$ref":"#/definitions/samNumber"},{"$ref":"#/definitions/somodFunctions"},{"$ref":"#/definitions/samFindInMap"}]},{"anyOf":[{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samSplit"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"}]}],"minItems":2,"maxItems":2,"additionalItems":false}}},"samSplit":{"type":"object","additionalProperties":false,"properties":{"Fn::Split":{"type":"array","items":[{"$ref":"#/definitions/samString"},{"anyOf":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/samBase64"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samJoin"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samSub"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"},{"$ref":"#/definitions/somodModuleName"}]}],"minItems":2,"maxItems":2,"additionalItems":false}}},"samString":{"type":"string"},"samSub":{"type":"object","additionalProperties":false,"properties":{"Fn::Sub":{"oneOf":[{"type":"string","maxLength":1024},{"type":"array","items":[{"$ref":"#/definitions/samString"},{"type":"object","additionalProperties":false,"patternProperties":{"^[a-zA-Z0-9]+$":{"anyOf":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/samBase64"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samJoin"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"}]}}}],"minItems":2,"maxItems":2,"additionalItems":false}]}}},"stringLike":{"oneOf":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/samBase64"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samJoin"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samSub"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodModuleName"},{"$ref":"#/definitions/somodAjvCompile"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodJsonStringify"},{"$ref":"#/definitions/somodKey"}]},"somodAccess":{"type":"object","properties":{"SOMOD::Access":{"enum":["module","scope","public"]}}},"somodCreateIf":{"type":"object","properties":{"SOMOD::CreateIf":{"$ref":"#/definitions/booleanLike"}}},"somodDependsOn":{"type":"object","properties":{"SOMOD::DependsOn":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["resource"],"properties":{"module":{"$ref":"#/definitions/somodModuleNamePattern"},"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"}}},"minItems":1,"maxItems":20}}},"somodExtend":{"type":"object","properties":{"SOMOD::Extend":{"type":"object","additionalProperties":false,"required":["module","resource"],"properties":{"module":{"$ref":"#/definitions/somodModuleNamePattern"},"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"},"rules":{"type":"object","additionalProperties":{"enum":["REPLACE","COMBINE","APPEND","PREPEND"]}}}}}},"somodModuleName":{"type":"object","additionalProperties":false,"required":["SOMOD::ModuleName"],"properties":{"SOMOD::ModuleName":{"const":true}}},"somodModuleNamePattern":{"type":"string","pattern":"^(@[a-z0-9-]+\\/)?[a-z0-9-]+$","maxLength":128},"somodOutput":{"type":"object","properties":{"SOMOD::Output":{"type":"object","additionalProperties":false,"properties":{"default":{"type":"boolean"},"attributes":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9]+$"}}}}}},"somodRef":{"type":"object","additionalProperties":false,"required":["SOMOD::Ref"],"properties":{"SOMOD::Ref":{"type":"object","additionalProperties":false,"required":["resource"],"properties":{"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"},"module":{"$ref":"#/definitions/somodModuleNamePattern"},"attribute":{"type":"string","pattern":"^[a-zA-Z0-9]+$"}}}}},"somodResourceLogicalIdPattern":{"type":"string","pattern":"^[a-zA-Z0-9]{1,64}$"},"somodResourceName":{"type":"object","additionalProperties":false,"required":["SOMOD::ResourceName"],"properties":{"SOMOD::ResourceName":{"type":"string","pattern":"^[a-zA-Z]+[a-zA-Z0-9]*$","maxLength":64}}},"allResource":{"allOf":[{"type":"object","required":["Type","Properties"],"properties":{"Type":{"type":"string"},"Properties":{"type":"object"}}},{"$ref":"#/definitions/somodExtend"},{"$ref":"#/definitions/somodAccess"},{"$ref":"#/definitions/somodDependsOn"},{"$ref":"#/definitions/somodOutput"},{"$ref":"#/definitions/somodCreateIf"},{"if":{"type":"object","required":["SOMOD::Extend"]},"then":{"type":"object","propertyNames":{"not":{"enum":["SOMOD::Access","SOMOD::DependsOn","SOMOD::Output","SOMOD::CreateIf"]},"errorMessage":"Extended Resource can not have Access, DependsOn, Output or CreateIf keywords"}},"errorMessage":{"if":"Extended Resource can not have Access, DependsOn, Output or CreateIf keywords"}}]},"customResource":{"type":"object","required":["Type","Properties"],"anyOf":[{"type":"object","required":["SOMOD::Extend"]},{"type":"object","properties":{"Properties":{"type":"object","required":["ServiceToken"]}}}],"errorMessage":{"anyOf":"When not extended, Properties must have ServiceToken"},"properties":{"Type":{"type":"string","pattern":"^Custom::[A-Z][a-zA-Z0-9]{0,63}$"},"Properties":{"type":"object","properties":{"ServiceToken":{"$ref":"#/definitions/somodRef"}}}}},"functionTypes":{"anyOf":[{"enum":["S3","SNS","Kinesis","DynamoDB","SQS","Api","Schedule","EventBridgeRule","CloudWatchLogs","IoTRule","AlexaSkill","Cognito","HttpApi","MSK","MQ","SelfManagedKafka","CFNCustomResource"]},{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-zA-Z0-9]*$"}]},"functionApiEvent":{"type":"object","additionalProperties":false,"required":["Type","Properties"],"properties":{"Type":{"const":"Api"},"Properties":{"type":"object","required":["Method","Path","RestApiId"],"properties":{"Method":{"anyOf":[{"enum":["GET","POST","PUT","DELETE","ANY"]},{"type":"string","pattern":"^[A-Z]+$"}]},"Path":{"type":"string"},"RestApiId":{"$ref":"#/definitions/somodRef"}}}}},"functionHttpApiEvent":{"type":"object","additionalProperties":false,"required":["Type","Properties"],"properties":{"Type":{"const":"HttpApi"},"Properties":{"type":"object","required":["Method","Path","ApiId"],"properties":{"Method":{"anyOf":[{"enum":["GET","POST","PUT","DELETE","ANY"]},{"type":"string","pattern":"^[A-Z]+$"}]},"Path":{"type":"string"},"ApiId":{"$ref":"#/definitions/somodRef"}}}}},"functionEvent":{"type":"object","additionalProperties":false,"required":["Type","Properties"],"properties":{"Type":{"$ref":"#/definitions/functionTypes"},"Properties":{"type":"object"}}},"functionEventSource":{"allOf":[{"$ref":"#/definitions/functionEvent"},{"if":{"type":"object","properties":{"Type":{"const":"HttpApi"}}},"then":{"$ref":"#/definitions/functionHttpApiEvent"}},{"if":{"type":"object","properties":{"Type":{"const":"Api"}}},"then":{"$ref":"#/definitions/functionApiEvent"}}]},"functionResource":{"title":"JSON Schema for Function Resource in Serverless Template of SOMOD","type":"object","required":["Type","Properties"],"anyOf":[{"type":"object","required":["SOMOD::Extend"]},{"type":"object","properties":{"Properties":{"type":"object","oneOf":[{"required":["CodeUri"]},{"required":["InlineCode"]}],"properties":{"CodeUri":{"type":"object","properties":{"SOMOD::Function":{"type":"object","required":["type","name"]}}}}}}}],"errorMessage":{"anyOf":"When not extended, Properties must have either CodeUri or InlineCode"},"properties":{"Type":{"const":"AWS::Serverless::Function"},"Properties":{"type":"object","properties":{"CodeUri":{"type":"object","additionalProperties":false,"required":["SOMOD::Function"],"properties":{"SOMOD::Function":{"type":"object","additionalProperties":false,"properties":{"type":{"$ref":"#/definitions/functionTypes"},"name":{"type":"string","description":"The name of the function, this is the file name of es module under 'serverless/functions' directory (without file extension)","pattern":"^[a-zA-Z]+[a-zA-Z0-9]*$"},"customResources":{"type":"object","description":"Define the Schema for the custom resources handled by this function. Schema is indexed by Custom Resource Type with `Custom::` removed. Schema no need to define `ServiceToken` Property","additionalProperties":false,"maxProperties":25,"patternProperties":{"^[A-Z][a-zA-Z0-9]{0,63}$":{"$ref":"http://json-schema.org/draft-07/schema"}}},"middlewares":{"type":"array","description":"Middlewares to be added to this function. Middlewares are applied in the order specified in this Property","minItems":1,"maxItems":16,"items":{"type":"object","additionalProperties":false,"required":["resource"],"properties":{"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"},"module":{"$ref":"#/definitions/somodModuleNamePattern"}}}}}}}},"InlineCode":{"type":"string"},"Layers":{"type":"array","description":"Layers attached to the funtion, If a layer are refered using SOMOD::Ref, the npm packages in the layer are excluded from the function bundle","items":{"$ref":"#/definitions/stringLike"},"maxItems":5,"uniqueItems":true},"Events":{"type":"object","additionalProperties":false,"patternProperties":{"^[a-zA-Z0-9]+$":{"$ref":"#/definitions/functionEventSource"}}}}}}},"functionLayerResource":{"type":"object","required":["Type","Properties"],"anyOf":[{"type":"object","required":["SOMOD::Extend"]},{"type":"object","properties":{"Properties":{"type":"object","required":["RetentionPolicy","ContentUri"],"properties":{"ContentUri":{"type":"object","properties":{"SOMOD::FunctionLayer":{"type":"object","required":["name"],"anyOf":[{"type":"object","required":["libraries"]},{"type":"object","required":["content"]}]}}}}}}}],"errorMessage":{"anyOf":"When not extended, Properties must have RetentionPolicy and ContentUri"},"properties":{"Type":{"const":"AWS::Serverless::LayerVersion"},"Properties":{"type":"object","properties":{"RetentionPolicy":{"const":"Delete"},"ContentUri":{"type":"object","additionalProperties":false,"required":["SOMOD::FunctionLayer"],"properties":{"SOMOD::FunctionLayer":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The name of the function layer","pattern":"^[a-zA-Z]+[a-zA-Z0-9]*$"},"libraries":{"type":"array","description":"All dependent libraries to be installed in the layer","items":{"type":"string","pattern":"^(@[a-z0-9\\-]+\\/){0,1}[a-z0-9\\-]+$"},"minItems":1,"maxItems":32},"content":{"type":"object","description":"The Layer Content, map of file-path to file-content","additionalProperties":false,"patternProperties":{".*":{"$ref":"#/definitions/stringLike"}},"minProperties":1,"maxProperties":32},"allowedTypes":{"type":"array","description":"Type of the funtion to which this layer can be applied to. If not specified or left empty, the layer is allowed for all type of functions","items":{"$ref":"#/definitions/functionTypes"}}}}}}}}}},"functionMiddlewareResource":{"type":"object","required":["Type","Properties"],"anyOf":[{"type":"object","required":["SOMOD::Extend"]},{"type":"object","properties":{"Properties":{"type":"object","required":["CodeUri"],"properties":{"CodeUri":{"type":"object","properties":{"SOMOD::FunctionMiddleware":{"type":"object","required":["name"]}}}}}}}],"errorMessage":{"anyOf":"When not extended, Properties must have CodeUri"},"properties":{"Type":{"const":"SOMOD::Serverless::FunctionMiddleware"},"Properties":{"type":"object","properties":{"CodeUri":{"type":"object","required":["SOMOD::FunctionMiddleware"],"additionalProperties":false,"properties":{"SOMOD::FunctionMiddleware":{"type":"object","properties":{"name":{"type":"string","description":"The name of the function middleware, this is the file name of es module under 'serverless/functions/middlewares' directory (without file extension)","pattern":"^[a-zA-Z]+[a-zA-Z0-9]*$"},"allowedTypes":{"type":"array","description":"Type of the funtion to which this middleware can be applied to. If not specified or left empty, the middleware is allowed for all type of functions","items":{"$ref":"#/definitions/functionTypes"}}}}}},"Environment":{"type":"object","additionalProperties":false,"properties":{"Variables":{"type":"object","additionalProperties":{"$ref":"#/definitions/stringLike"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"}}}},"Layers":{"type":"array","description":"Functions Layers to be added to applied functions, If a layer are refered using SOMOD::Ref, the npm packages in the layer are excluded from the function bundle","items":{"$ref":"#/definitions/stringLike"},"maxItems":5,"uniqueItems":true}}}}}},"type":"object","required":["Resources"],"properties":{"Resources":{"type":"object","additionalProperties":{"allOf":[{"$ref":"#/definitions/allResource"},{"if":{"type":"object","properties":{"Type":{"enum":["AWS::Serverless::Function","AWS::Serverless::LayerVersion","SOMOD::Serverless::FunctionMiddleware"]}}},"then":{"oneOf":[{"$ref":"#/definitions/functionResource"},{"$ref":"#/definitions/functionLayerResource"},{"$ref":"#/definitions/functionMiddlewareResource"}]}},{"if":{"type":"object","properties":{"Type":{"type":"string","pattern":"^Custom::[A-Z][a-zA-Z0-9]{0,63}$"}}},"then":{"$ref":"#/definitions/customResource"}}]},"propertyNames":{"type":"string","pattern":"^[a-zA-Z0-9]{1,64}$"}},"Outputs":{"type":"object","additionalProperties":{"$ref":"#/definitions/stringLike"},"propertyNames":{"$ref":"#/definitions/somodParameter/properties/SOMOD::Parameter"}}},"additionalProperties":false};const schema97 = {"type":"string","description":"Must refer the parameter available for this module"};const pattern0 = new RegExp("^[a-zA-Z0-9]{1,64}$", "u");const pattern30 = new RegExp("^Custom::[A-Z][a-zA-Z0-9]{0,63}$", "u");const schema17 = {"allOf":[{"type":"object","required":["Type","Properties"],"properties":{"Type":{"type":"string"},"Properties":{"type":"object"}}},{"$ref":"#/definitions/somodExtend"},{"$ref":"#/definitions/somodAccess"},{"$ref":"#/definitions/somodDependsOn"},{"$ref":"#/definitions/somodOutput"},{"$ref":"#/definitions/somodCreateIf"},{"if":{"type":"object","required":["SOMOD::Extend"]},"then":{"type":"object","propertyNames":{"not":{"enum":["SOMOD::Access","SOMOD::DependsOn","SOMOD::Output","SOMOD::CreateIf"]},"errorMessage":"Extended Resource can not have Access, DependsOn, Output or CreateIf keywords"}},"errorMessage":{"if":"Extended Resource can not have Access, DependsOn, Output or CreateIf keywords"}}]};const schema21 = {"type":"object","properties":{"SOMOD::Access":{"enum":["module","scope","public"]}}};const schema25 = {"type":"object","properties":{"SOMOD::Output":{"type":"object","additionalProperties":false,"properties":{"default":{"type":"boolean"},"attributes":{"type":"array","items":{"type":"string","pattern":"^[a-zA-Z0-9]+$"}}}}}};const schema18 = {"type":"object","properties":{"SOMOD::Extend":{"type":"object","additionalProperties":false,"required":["module","resource"],"properties":{"module":{"$ref":"#/definitions/somodModuleNamePattern"},"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"},"rules":{"type":"object","additionalProperties":{"enum":["REPLACE","COMBINE","APPEND","PREPEND"]}}}}}};const schema19 = {"type":"string","pattern":"^(@[a-z0-9-]+\\/)?[a-z0-9-]+$","maxLength":128};const schema20 = {"type":"string","pattern":"^[a-zA-Z0-9]{1,64}$"};const func2 = require("ajv/dist/runtime/ucs2length").default;const pattern1 = new RegExp("^(@[a-z0-9-]+\\/)?[a-z0-9-]+$", "u");function validate16(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == "object" && !Array.isArray(data)){if(data["SOMOD::Extend"] !== undefined){let data0 = data["SOMOD::Extend"];if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.module === undefined){const err0 = {instancePath:instancePath+"/SOMOD::Extend",schemaPath:"#/properties/SOMOD%3A%3AExtend/required",keyword:"required",params:{missingProperty: "module"},message:"must have required property '"+"module"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data0.resource === undefined){const err1 = {instancePath:instancePath+"/SOMOD::Extend",schemaPath:"#/properties/SOMOD%3A%3AExtend/required",keyword:"required",params:{missingProperty: "resource"},message:"must have required property '"+"resource"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data0){if(!(((key0 === "module") || (key0 === "resource")) || (key0 === "rules"))){const err2 = {instancePath:instancePath+"/SOMOD::Extend",schemaPath:"#/properties/SOMOD%3A%3AExtend/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data0.module !== undefined){let data1 = data0.module;if(typeof data1 === "string"){if(func2(data1) > 128){const err3 = {instancePath:instancePath+"/SOMOD::Extend/module",schemaPath:"#/definitions/somodModuleNamePattern/maxLength",keyword:"maxLength",params:{limit: 128},message:"must NOT have more than 128 characters"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!pattern1.test(data1)){const err4 = {instancePath:instancePath+"/SOMOD::Extend/module",schemaPath:"#/definitions/somodModuleNamePattern/pattern",keyword:"pattern",params:{pattern: "^(@[a-z0-9-]+\\/)?[a-z0-9-]+$"},message:"must match pattern \""+"^(@[a-z0-9-]+\\/)?[a-z0-9-]+$"+"\""};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+"/SOMOD::Extend/module",schemaPath:"#/definitions/somodModuleNamePattern/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data0.resource !== undefined){let data2 = data0.resource;if(typeof data2 === "string"){if(!pattern0.test(data2)){const err6 = {instancePath:instancePath+"/SOMOD::Extend/resource",schemaPath:"#/definitions/somodResourceLogicalIdPattern/pattern",keyword:"pattern",params:{pattern: "^[a-zA-Z0-9]{1,64}$"},message:"must match pattern \""+"^[a-zA-Z0-9]{1,64}$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+"/SOMOD::Extend/resource",schemaPath:"#/definitions/somodResourceLogicalIdPattern/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data0.rules !== undefined){let data3 = data0.rules;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key1 in data3){let data4 = data3[key1];if(!((((data4 === "REPLACE") || (data4 === "COMBINE")) || (data4 === "APPEND")) || (data4 === "PREPEND"))){const err8 = {instancePath:instancePath+"/SOMOD::Extend/rules/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/SOMOD%3A%3AExtend/properties/rules/additionalProperties/enum",keyword:"enum",params:{allowedValues: schema18.properties["SOMOD::Extend"].properties.rules.additionalProperties.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}else {const err9 = {instancePath:instancePath+"/SOMOD::Extend/rules",schemaPath:"#/properties/SOMOD%3A%3AExtend/properties/rules/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath:instancePath+"/SOMOD::Extend",schemaPath:"#/properties/SOMOD%3A%3AExtend/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}validate16.errors = vErrors;return errors === 0;}const schema22 = {"type":"object","properties":{"SOMOD::DependsOn":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["resource"],"properties":{"module":{"$ref":"#/definitions/somodModuleNamePattern"},"resource":{"$ref":"#/definitions/somodResourceLogicalIdPattern"}}},"minItems":1,"maxItems":20}}};function validate18(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == "object" && !Array.isArray(data)){if(data["SOMOD::DependsOn"] !== undefined){let data0 = data["SOMOD::DependsOn"];if(Array.isArray(data0)){if(data0.length > 20){const err0 = {instancePath:instancePath+"/SOMOD::DependsOn",schemaPath:"#/properties/SOMOD%3A%3ADependsOn/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data0.length < 1){const err1 = {instancePath:instancePath+"/SOMOD::DependsOn",schemaPath:"#/properties/SOMOD%3A%3ADependsOn/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}const len0 = data0.length;for(let i0=0; i0<len0; i0++){let data1 = data0[i0];if(data1 && typeof data1 == "object" && !Array.isArray(data1)){if(data1.resource === undefined){const err2 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0,schemaPath:"#/properties/SOMOD%3A%3ADependsOn/items/required",keyword:"required",params:{missingProperty: "resource"},message:"must have required property '"+"resource"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}for(const key0 in data1){if(!((key0 === "module") || (key0 === "resource"))){const err3 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0,schemaPath:"#/properties/SOMOD%3A%3ADependsOn/items/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data1.module !== undefined){let data2 = data1.module;if(typeof data2 === "string"){if(func2(data2) > 128){const err4 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0+"/module",schemaPath:"#/definitions/somodModuleNamePattern/maxLength",keyword:"maxLength",params:{limit: 128},message:"must NOT have more than 128 characters"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!pattern1.test(data2)){const err5 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0+"/module",schemaPath:"#/definitions/somodModuleNamePattern/pattern",keyword:"pattern",params:{pattern: "^(@[a-z0-9-]+\\/)?[a-z0-9-]+$"},message:"must match pattern \""+"^(@[a-z0-9-]+\\/)?[a-z0-9-]+$"+"\""};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0+"/module",schemaPath:"#/definitions/somodModuleNamePattern/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data1.resource !== undefined){let data3 = data1.resource;if(typeof data3 === "string"){if(!pattern0.test(data3)){const err7 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0+"/resource",schemaPath:"#/definitions/somodResourceLogicalIdPattern/pattern",keyword:"pattern",params:{pattern: "^[a-zA-Z0-9]{1,64}$"},message:"must match pattern \""+"^[a-zA-Z0-9]{1,64}$"+"\""};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0+"/resource",schemaPath:"#/definitions/somodResourceLogicalIdPattern/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}else {const err9 = {instancePath:instancePath+"/SOMOD::DependsOn/" + i0,schemaPath:"#/properties/SOMOD%3A%3ADependsOn/items/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath:instancePath+"/SOMOD::DependsOn",schemaPath:"#/properties/SOMOD%3A%3ADependsOn/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}validate18.errors = vErrors;return errors === 0;}const schema26 = {"type":"object","properties":{"SOMOD::CreateIf":{"$ref":"#/definitions/booleanLike"}}};const schema27 = {"oneOf":[{"$ref":"#/definitions/samBoolean"},{"$ref":"#/definitions/samAnd"},{"$ref":"#/definitions/samOr"},{"$ref":"#/definitions/samEquals"},{"$ref":"#/definitions/samNot"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodAnd"},{"$ref":"#/definitions/somodOr"},{"$ref":"#/definitions/somodEquals"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodKey"}]};const schema28 = {"type":"boolean"};const schema63 = {"type":"object","additionalProperties":false,"properties":{"Ref":{"enum":["AWS::AccountId","AWS::NotificationARNs","AWS::NoValue","AWS::Partition","AWS::Region","AWS::StackId","AWS::StackName","AWS::URLSuffix"]}}};const schema50 = {"type":"object","additionalProperties":false,"required":["SOMOD::Parameter"],"properties":{"SOMOD::Parameter":{"type":"string","description":"Must refer the parameter available for this module"}}};const schema29 = {"type":"object","additionalProperties":false,"properties":{"Fn::And":{"type":"array","items":{"$ref":"#/definitions/booleanLike"},"minItems":1,"maxItems":10}}};const wrapper0 = {validate: validate21};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === "Fn::And")){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data["Fn::And"] !== undefined){let data0 = data["Fn::And"];if(Array.isArray(data0)){if(data0.length > 10){const err1 = {instancePath:instancePath+"/Fn::And",schemaPath:"#/properties/Fn%3A%3AAnd/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data0.length < 1){const err2 = {instancePath:instancePath+"/Fn::And",schemaPath:"#/properties/Fn%3A%3AAnd/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}const len0 = data0.length;for(let i0=0; i0<len0; i0++){if(!(wrapper0.validate(data0[i0], {instancePath:instancePath+"/Fn::And/" + i0,parentData:data0,parentDataProperty:i0,rootData}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}}}else {const err3 = {instancePath:instancePath+"/Fn::And",schemaPath:"#/properties/Fn%3A%3AAnd/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate22.errors = vErrors;return errors === 0;}const schema30 = {"type":"object","additionalProperties":false,"properties":{"Fn::Or":{"type":"array","items":{"$ref":"#/definitions/booleanLike"},"minItems":1,"maxItems":10}}};function validate24(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === "Fn::Or")){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data["Fn::Or"] !== undefined){let data0 = data["Fn::Or"];if(Array.isArray(data0)){if(data0.length > 10){const err1 = {instancePath:instancePath+"/Fn::Or",schemaPath:"#/properties/Fn%3A%3AOr/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data0.length < 1){const err2 = {instancePath:instancePath+"/Fn::Or",schemaPath:"#/properties/Fn%3A%3AOr/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}const len0 = data0.length;for(let i0=0; i0<len0; i0++){if(!(wrapper0.validate(data0[i0], {instancePath:instancePath+"/Fn::Or/" + i0,parentData:data0,parentDataProperty:i0,rootData}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}}}else {const err3 = {instancePath:instancePath+"/Fn::Or",schemaPath:"#/properties/Fn%3A%3AOr/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate24.errors = vErrors;return errors === 0;}const schema31 = {"type":"object","additionalProperties":false,"properties":{"Fn::Equals":{"type":"array","items":[{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]}],"maxItems":2,"minItems":2,"additionalItems":false}}};const schema32 = {"oneOf":[{"$ref":"#/definitions/samString"},{"$ref":"#/definitions/samBase64"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samJoin"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samSub"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodModuleName"},{"$ref":"#/definitions/somodAjvCompile"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodJsonStringify"},{"$ref":"#/definitions/somodKey"}]};const schema33 = {"type":"string"};const schema69 = {"type":"object","additionalProperties":false,"required":["SOMOD::ModuleName"],"properties":{"SOMOD::ModuleName":{"const":true}}};const schema34 = {"type":"object","additionalProperties":false,"properties":{"Fn::Base64":{"$ref":"#/definitions/stringLike"}}};const wrapper2 = {validate: validate27};function validate28(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === "Fn::Base64")){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data["Fn::Base64"] !== undefined){if(!(wrapper2.validate(data["Fn::Base64"], {instancePath:instancePath+"/Fn::Base64",parentData:data,parentDataProperty:"Fn::Base64",rootData}))){vErrors = vErrors === null ? wrapper2.validate.errors : vErrors.concat(wrapper2.validate.errors);errors = vErrors.length;}}}else {const err1 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}validate28.errors = vErrors;return errors === 0;}const schema35 = {"type":"object","additionalProperties":false,"properties":{"Fn::If":{"type":"array","items":[{"$ref":"#/definitions/samString"},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]},{"anyOf":[{"$ref":"#/definitions/stringLike"},{"$ref":"#/definitions/numberLike"},{"$ref":"#/definitions/booleanLike"},{"$ref":"#/definitions/arrayLike"}]}],"maxItems":3,"minItems":3,"additionalItems":false}}};const schema37 = {"oneOf":[{"$ref":"#/definitions/samNumber"},{"$ref":"#/definitions/samSelect"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodParameter"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodKey"}]};const schema38 = {"type":"number"};const schema39 = {"type":"object","additionalProperties":false,"properties":{"Fn::Select":{"type":"array","items":[{"anyOf":[{"$ref":"#/definitions/samNumber"},{"$ref":"#/definitions/somodFunctions"},{"$ref":"#/definitions/samFindInMap"}]},{"anyOf":[{"$ref":"#/definitions/samFindInMap"},{"$ref":"#/definitions/samGetAZs"},{"$ref":"#/definitions/samIf"},{"$ref":"#/definitions/samSplit"},{"$ref":"#/definitions/samRef"},{"$ref":"#/definitions/somodRef"},{"$ref":"#/definitions/somodFunctions"}]}],"minItems":2,"maxItems":2,"additionalItems":false}}};const schema41 = {"if":{"type":"object","propertyNames":{"enum":["SOMOD::AjvCompile","SOMOD::And","SOMOD::Or","SOMOD::Equals","SOMOD::If","SOMOD::JsonParse","SOMOD::JsonStringify","SOMOD::Key","SOMOD::Parameter"]}},"then":{"oneOf":[{"$ref":"#/definitions/somodAjvCompile"},{"$ref":"#/definitions/somodAnd"},{"$ref":"#/definitions/somodOr"},{"$ref":"#/definitions/somodEquals"},{"$ref":"#/definitions/somodIf"},{"$ref":"#/definitions/somodJsonParse"},{"$ref":"#/definitions/somodJsonStringify"},{"$ref":"#/definitions/somodKey"},{"$ref":"#/definitions/somodParameter"}]},"else":true};const schema42 = {"type":"object","additionalProperties":false,"required":["SOMOD::AjvCompile"],"properties":{"SOMOD::AjvCompile":{"anyOf":[{"$ref":"http://json-schema.org/draft-07/schema"},{"$ref":"#/definitions/somodFunctions"}]}}};const schema0 = {"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true};const schema1 = {"type":"integer","minimum":0};const schema7 = {"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]};const schema9 = {"enum":["array","boolean","integer","null","number","object","string"]};const schema2 = {"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]};function validate1(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(!(((typeof data == "number") && (!(data % 1) && !isNaN(data))) && (isFinite(data)))){const err0 = {instancePath,schemaPath:"#/definitions/nonNegativeInteger/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if((typeof data == "number") && (isFinite(data))){if(data < 0 || isNaN(data)){const err1 = {instancePath,schemaPath:"#/definitions/nonNegativeInteger/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}validate1.errors = vErrors;return errors === 0;}const schema4 = {"type":"array","minItems":1,"items":{"$ref":"#"}};const root0 = {validate: validate0};function validate3(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(Array.isArray(data)){if(data.length < 1){const err0 = {instancePath,schemaPath:"#/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}const len0 = data.length;for(let i0=0; i0<len0; i0++){if(!(root0.validate(data[i0], {instancePath:instancePath+"/" + i0,parentData:data,parentDataProperty:i0,rootData}))){vErrors = vErrors === null ? root0.validate.errors : vErrors.concat(root0.validate.errors);errors = vErrors.length;}}}else {const err1 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}validate3.errors = vErrors;return errors === 0;}const func0 = require("ajv/dist/runtime/equal").default;function validate0(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){/*# sourceURL="http://json-schema.org/draft-07/schema#" */;let vErrors = null;let errors = 0;if((!(data && typeof data == "object" && !Array.isArray(data))) && (typeof data !== "boolean")){const err0 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: schema0.type},message:"must be object,boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.$id !== undefined){if(!(typeof data.$id === "string")){const err1 = {instancePath:instancePath+"/$id",schemaPath:"#/properties/%24id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.$schema !== undefined){if(!(typeof data.$schema === "string")){const err2 = {instancePath:instancePath+"/$schema",schemaPath:"#/properties/%24schema/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.$ref !== undefined){if(!(typeof data.$ref === "string")){const err3 = {instancePath:instancePath+"/$ref",schemaPath:"#/properties/%24ref/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.$comment !== undefined){if(typeof data.$comment !== "string"){const err4 = {instancePath:instancePath+"/$comment",schemaPath:"#/properties/%24comment/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.title !== undefined){if(typeof data.title !== "string"){const err5 = {instancePath:instancePath+"/title",schemaPath:"#/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.description !== undefined){if(typeof data.description !== "string"){const err6 = {instancePath:instancePath+"/description",schemaPath:"#/properties/description/type",