{"title":"JSON schema for Azure Functions function.json files","$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"disabled":{"type":"boolean"},"excluded":{"type":"boolean"},"scriptFile":{"type":"string"},"entryPoint":{"type":"string"},"configurationSource":{"enum":["attributes","config"]},"retry":{"type":"object","properties":{"strategy":{"enum":["exponentialBackoff","fixedDelay"],"default":"exponentialBackoff"},"maxRetryCount":{"type":"integer"},"delayInterval":{"oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]},"minimumInterval":{"oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]},"maximumInterval":{"oneOf":[{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"},{"enum":[null]}]}}},"bindings":{"type":"array","items":{"oneOf":[{"$ref":"#/definitions/dynamicBinding"},{"oneOf":[{"$ref":"#/definitions/serviceBusBinding"},{"$ref":"#/definitions/blobBinding"},{"$ref":"#/definitions/manualTriggerBinding"},{"$ref":"#/definitions/eventHubBinding"},{"$ref":"#/definitions/timerTriggerBinding"},{"$ref":"#/definitions/queueBinding"},{"$ref":"#/definitions/httpBinding"},{"$ref":"#/definitions/mobileBinding"},{"$ref":"#/definitions/documentDBBinding"},{"$ref":"#/definitions/tableBinding"},{"$ref":"#/definitions/notificationHubBinding"},{"$ref":"#/definitions/twilioSmsBinding"},{"$ref":"#/definitions/sendGridBinding"}]}],"allOf":[{"$ref":"#/definitions/bindingBase"}]}}},"definitions":{"bindingBase":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"direction":{"type":"string","enum":["in","out","inout"]},"dataType":{"enum":["string","binary","stream"]}},"required":["name","type","direction"]},"dynamicBinding":{"properties":{"type":{"not":{"enum":["serviceBusTrigger","serviceBus","blobTrigger","blob","manualTrigger","eventHubTrigger","eventHub","timerTrigger","queueTrigger","queue","httpTrigger","http","mobileTable","documentDB","table","notificationHub","twilioSms","sendGrid"]}},"direction":{"enum":["in","out","inout"]}}},"serviceBusBinding":{"properties":{"queueName":{"type":"string"},"topicName":{"type":"string"},"subscriptionName":{"type":"string"},"connection":{"type":"string"},"accessRights":{"type":"string","enum":["manage","listen"]}},"oneOf":[{"properties":{"type":{"enum":["serviceBusTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["serviceBus"]},"direction":{"enum":["out"]}}}]},"blobBinding":{"properties":{"path":{"type":"string"},"connection":{"type":"string"}},"oneOf":[{"properties":{"type":{"enum":["blobTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["blob"]}}}]},"manualTriggerBinding":{"properties":{"type":{"enum":["manualTrigger"]},"direction":{"enum":["in"]}}},"eventHubBinding":{"properties":{"path":{"type":"string"},"connection":{"type":"string"}},"oneOf":[{"properties":{"type":{"enum":["eventHubTrigger"]},"direction":{"enum":["in"]},"consumerGroup":{"type":"string"},"cardinality":{"enum":["one","many"]}}},{"properties":{"type":{"enum":["eventHub"]},"direction":{"enum":["out"]}}}]},"timerTriggerBinding":{"properties":{"type":{"enum":["timerTrigger"]},"direction":{"enum":["in"]},"schedule":{"type":"string","pattern":"^(\\*|((([1-5]\\d)|\\d)(-(([1-5]\\d)|\\d)(/\\d+)?)?)(,((([1-5]\\d)|\\d)(-(([1-5]\\d)|\\d)(/\\d+)?)?))*)(/\\d+)? (\\*|((([1-5]\\d)|\\d)(-(([1-5]\\d)|\\d)(/\\d+)?)?)(,((([1-5]\\d)|\\d)(-(([1-5]\\d)|\\d)(/\\d+)?)?))*)(/\\d+)? (\\*|(((1\\d)|(2[0-3])|\\d)(-((1\\d)|(2[0-3])|\\d)(/\\d+)?)?)(,(((1\\d)|(2[0-3])|\\d)(-((1\\d)|(2[0-3])|\\d)(/\\d+)?)?))*)(/\\d+)? (\\*|((([1-2]\\d)|(3[0-1])|[1-9])(-(([1-2]\\d)|(3[0-1])|[1-9])(/\\d+)?)?)(,((([1-2]\\d)|(3[0-1])|[1-9])(-(([1-2]\\d)|(3[0-1])|[1-9])(/\\d+)?)?))*)(/\\d+)? (\\*|(([A-Za-z]+|(1[0-2])|[1-9])(-([A-Za-z]+|(1[0-2])|[1-9])(/\\d+)?)?)(,(([A-Za-z]+|(1[0-2])|[1-9])(-([A-Za-z]+|(1[0-2])|[1-9])(/\\d+)?)?))*)(/\\d+)? (\\*|(([A-Za-z]+|[0-6])(-([A-Za-z]+|[0-6])(/\\d+)?)?)(,(([A-Za-z]+|[0-6])(-([A-Za-z]+|[0-6])(/\\d+)?)?))*)(/\\d+)?$"},"runOnStartup":{"type":"boolean"},"useMonitor":{"type":"boolean"}}},"queueBinding":{"properties":{"queueName":{"type":"string"},"connection":{"type":"string"}},"oneOf":[{"properties":{"type":{"enum":["queueTrigger"]},"direction":{"enum":["in"]}}},{"properties":{"type":{"enum":["queue"]},"direction":{"enum":["out"]}}}]},"httpTrigger":{},"httpBinding":{"oneOf":[{"properties":{"type":{"enum":["httpTrigger"]},"direction":{"enum":["in"]},"route":{"type":"string"},"webHookType":{"type":"string"},"authLevel":{"type":"string","default":"function","enum":["anonymous","function","admin"]},"methods":{"type":"array","items":[{"type":"string","enum":["get","post","delete","head","patch","put","options","trace"]}]}}},{"properties":{"type":{"enum":["http"]},"direction":{"enum":["out"]}}}]},"mobileBinding":{"properties":{"type":{"enum":["mobileTable"]},"tableName":{"type":"string"},"connection":{"type":"string"},"apiKey":{"type":"string"}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"id":{"type":"string"}}},{"properties":{"direction":{"enum":["out"]}}}]},"documentDBBinding":{"properties":{"type":{"enum":["documentDB"]},"connection":{"type":"string"},"databaseName":{"type":"string"},"collectionName":{"type":"string"}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"id":{"type":"string"},"sqlQuery":{"type":"string"}}},{"properties":{"direction":{"enum":["out"]},"createIfNotExists":{"type":"boolean"}}}]},"tableBinding":{"properties":{"type":{"enum":["table"]},"tableName":{"type":"string"},"partitionKey":{"type":"string"},"rowKey":{"type":"string"},"connection":{"type":"string"}},"oneOf":[{"properties":{"direction":{"enum":["in"]},"take":{"type":"string"},"filter":{"type":"string"}}},{"properties":{"direction":{"enum":["out"]}}}]},"notificationHubBinding":{"properties":{"type":{"enum":["notificationHub"]},"direction":{"enum":["out"]},"tagExpression":{"type":"string"},"hubName":{"type":"string"},"connection":{"type":"string"},"platform":{"type":"string","enum":["apns","adm","gcm","wns","mpns"]}}},"twilioSmsBinding":{"properties":{"type":{"enum":["twilioSms"]},"direction":{"enum":["out"]},"accountSid":{"type":"string"},"authToken":{"type":"string"},"to":{"type":"string"},"from":{"type":"string"},"body":{"type":"string"}}},"sendGridBinding":{"properties":{"type":{"enum":["sendGrid"]},"direction":{"enum":["out"]},"apiKey":{"type":"string"},"to":{"type":"string"},"from":{"type":"string"},"subject":{"type":"string"},"text":{"type":"string"}}}}}