Files
2026-07-13 12:32:21 +08:00

95 lines
2.8 KiB
Lua

local typedefs = require "kong.db.schema.typedefs"
return {
name = "azure-functions",
fields = {
{ protocols = typedefs.protocols },
{
config = {
type = "record",
fields = {
-- connection basics
{
timeout = {
description = "Timeout in milliseconds before closing a connection to the Azure Functions server.",
type = "number",
default = 600000,
},
},
{
keepalive = {
description =
"Time in milliseconds during which an idle connection to the Azure Functions server lives before being closed.",
type = "number",
default = 60000
},
},
{
https = {
type = "boolean",
default = true,
description = "Use of HTTPS to connect with the Azure Functions server."
},
},
{
https_verify = {
description = "Set to `true` to authenticate the Azure Functions server.",
type = "boolean",
default = false,
},
},
-- authorization
{
apikey = {
description =
"The apikey to access the Azure resources. If provided, it is injected as the `x-functions-key` header.",
type = "string",
encrypted = true,
referenceable = true
},
}, -- encrypted = true is a Kong Enterprise Exclusive feature. It does nothing in Kong CE
{
clientid = {
description =
"The `clientid` to access the Azure resources. If provided, it is injected as the `x-functions-clientid` header.",
type = "string",
encrypted = true,
referenceable = true,
},
}, -- encrypted = true is a Kong Enterprise Exclusive feature. It does nothing in Kong CE
-- target/location
{
appname = {
description = "The Azure app name.",
type = "string",
required = true
},
},
{
hostdomain = {
description = "The domain where the function resides.",
type = "string",
required = true,
default = "azurewebsites.net",
},
},
{
routeprefix = {
description = "Route prefix to use.",
type = "string",
default = "api",
},
},
{
functionname = {
description = "Name of the Azure function to invoke.",
type = "string",
required = true,
},
},
},
},
},
}
}