UNPKG

somod-schema

Version:

Schema to validate yaml files in somod modules

126 lines (125 loc) 5.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var keywords_1 = require("../common/keywords"); var expression_1 = require("./components/expression"); var keywords_2 = require("./components/keywords"); var all_1 = require("./resources/all"); var custom_1 = require("./resources/custom"); var function_1 = require("./resources/function"); var functionLayer_1 = require("./resources/functionLayer"); var functionMiddleware_1 = require("./resources/functionMiddleware"); var serverlessTemplate = { $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: keywords_1.somodAjvCompile, somodAnd: keywords_1.somodAnd, somodEquals: keywords_1.somodEquals, somodFunctions: keywords_1.somodFunctions, somodIf: keywords_1.somodIf, somodJsonParse: keywords_1.somodJsonParse, somodJsonStringify: keywords_1.somodJsonStringify, somodKey: keywords_1.somodKey, somodOr: keywords_1.somodOr, somodParameter: keywords_1.somodParameter, arrayLike: expression_1.arrayLike, booleanLike: expression_1.booleanLike, numberLike: expression_1.numberLike, samAnd: expression_1.samAnd, samBase64: expression_1.samBase64, samBoolean: expression_1.samBoolean, samCidr: expression_1.samCidr, samEquals: expression_1.samEquals, samFindInMap: expression_1.samFindInMap, samGetAZs: expression_1.samGetAZs, samIf: expression_1.samIf, samJoin: expression_1.samJoin, samNot: expression_1.samNot, samNumber: expression_1.samNumber, samOr: expression_1.samOr, samRef: expression_1.samRef, samSelect: expression_1.samSelect, samSplit: expression_1.samSplit, samString: expression_1.samString, samSub: expression_1.samSub, stringLike: expression_1.stringLike, somodAccess: keywords_2.somodAccess, somodCreateIf: keywords_2.somodCreateIf, somodDependsOn: keywords_2.somodDependsOn, somodExtend: keywords_2.somodExtend, somodModuleName: keywords_2.somodModuleName, somodModuleNamePattern: keywords_2.somodModuleNamePattern, somodOutput: keywords_2.somodOutput, somodRef: keywords_2.somodRef, somodResourceLogicalIdPattern: keywords_2.somodResourceLogicalIdPattern, somodResourceName: keywords_2.somodResourceName, allResource: all_1.allResource, customResource: custom_1.customResource, functionTypes: function_1.functionTypes, functionApiEvent: function_1.functionApiEvent, functionHttpApiEvent: function_1.functionHttpApiEvent, functionEvent: function_1.functionEvent, functionEventSource: function_1.functionEventSource, functionResource: function_1.functionResource, functionLayerResource: functionLayer_1.functionLayerResource, functionMiddlewareResource: functionMiddleware_1.functionMiddlewareResource }, 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 }; exports.default = serverlessTemplate;