From 365300c6be7130a9be08a8c2d8dbb525f8ee4b59 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 8 Jan 2025 11:45:32 -0800 Subject: [PATCH] Regen shcema --- schema/firebase-config.json | 3194 ++++++++++++----------------------- 1 file changed, 1067 insertions(+), 2127 deletions(-) diff --git a/schema/firebase-config.json b/schema/firebase-config.json index d9db62c2b52..da29a61bd6d 100644 --- a/schema/firebase-config.json +++ b/schema/firebase-config.json @@ -2,10 +2,127 @@ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "definitions": { + "DataConnectSingle": { + "additionalProperties": false, + "properties": { + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "source": { + "type": "string" + } + }, + "required": [ + "source" + ], + "type": "object" + }, + "DatabaseSingle": { + "additionalProperties": false, + "properties": { + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "rules": { + "type": "string" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, "ExtensionsConfig": { "additionalProperties": false, "type": "object" }, + "FirestoreSingle": { + "additionalProperties": false, + "properties": { + "database": { + "type": "string" + }, + "indexes": { + "type": "string" + }, + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "rules": { + "type": "string" + } + }, + "type": "object" + }, "FrameworksBackendOptions": { "additionalProperties": false, "properties": { @@ -23,9 +140,7 @@ "cpu": { "anyOf": [ { - "enum": [ - "gcf_gen1" - ], + "const": "gcf_gen1", "type": "string" }, { @@ -48,10 +163,8 @@ "type": "string" }, "invoker": { + "const": "public", "description": "Invoker to set access control on https functions.", - "enum": [ - "public" - ], "type": "string" }, "labels": { @@ -122,1317 +235,1207 @@ }, "type": "object" }, - "Record": { + "FunctionConfig": { "additionalProperties": false, + "properties": { + "codebase": { + "type": "string" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "runtime": { + "enum": [ + "nodejs10", + "nodejs12", + "nodejs14", + "nodejs16", + "nodejs18", + "nodejs20", + "nodejs22", + "python310", + "python311", + "python312" + ], + "type": "string" + }, + "source": { + "type": "string" + } + }, "type": "object" - } - }, - "properties": { - "$schema": { - "format": "uri", - "type": "string" }, - "database": { + "HostingHeaders": { "anyOf": [ { "additionalProperties": false, "properties": { - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] + "glob": { + "type": "string" }, - "predeploy": { - "anyOf": [ - { - "items": { + "headers": { + "items": { + "additionalProperties": false, + "properties": { + "key": { "type": "string" }, - "type": "array" + "value": { + "type": "string" + } }, - { - "type": "string" - } - ] - }, - "rules": { - "type": "string" + "required": [ + "key", + "value" + ], + "type": "object" + }, + "type": "array" } }, "required": [ - "rules" + "glob", + "headers" ], "type": "object" }, { - "items": { - "anyOf": [ - { + "additionalProperties": false, + "properties": { + "headers": { + "items": { "additionalProperties": false, "properties": { - "instance": { - "type": "string" - }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "rules": { + "key": { "type": "string" }, - "target": { + "value": { "type": "string" } }, "required": [ - "instance", - "rules" + "key", + "value" ], "type": "object" }, - { + "type": "array" + }, + "source": { + "type": "string" + } + }, + "required": [ + "headers", + "source" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "headers": { + "items": { "additionalProperties": false, "properties": { - "instance": { + "key": { "type": "string" }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "rules": { - "type": "string" - }, - "target": { + "value": { "type": "string" } }, "required": [ - "rules", - "target" + "key", + "value" ], "type": "object" - } - ] + }, + "type": "array" + }, + "regex": { + "type": "string" + } }, - "type": "array" + "required": [ + "headers", + "regex" + ], + "type": "object" } ] }, - "dataconnect": { + "HostingRedirects": { "anyOf": [ { "additionalProperties": false, "properties": { - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] + "destination": { + "type": "string" }, - "source": { + "glob": { "type": "string" + }, + "type": { + "type": "number" } }, "required": [ - "source" + "destination", + "glob" ], "type": "object" }, { - "items": { - "additionalProperties": false, - "properties": { - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "source": { - "type": "string" - } - }, - "required": [ - "source" - ], - "type": "object" - }, - "type": "array" - } - ] - }, - "emulators": { - "additionalProperties": false, - "properties": { - "apphosting": { "additionalProperties": false, "properties": { - "host": { - "type": "string" - }, - "port": { - "type": "number" - }, - "rootDirectory": { + "destination": { "type": "string" }, - "startCommand": { + "source": { "type": "string" }, - "startCommandOverride": { - "type": "string" + "type": { + "type": "number" } }, + "required": [ + "destination", + "source" + ], "type": "object" }, - "auth": { + { "additionalProperties": false, "properties": { - "host": { + "destination": { "type": "string" }, - "port": { + "regex": { + "type": "string" + }, + "type": { "type": "number" } }, + "required": [ + "destination", + "regex" + ], "type": "object" - }, - "database": { + } + ] + }, + "HostingRewrites": { + "anyOf": [ + { "additionalProperties": false, "properties": { - "host": { + "destination": { "type": "string" }, - "port": { - "type": "number" + "glob": { + "type": "string" } }, + "required": [ + "destination", + "glob" + ], "type": "object" }, - "dataconnect": { + { "additionalProperties": false, "properties": { - "dataDir": { + "function": { "type": "string" }, - "host": { + "glob": { "type": "string" }, - "port": { - "type": "number" - }, - "postgresHost": { + "region": { "type": "string" - }, - "postgresPort": { - "type": "number" } }, + "required": [ + "function", + "glob" + ], "type": "object" }, - "eventarc": { + { "additionalProperties": false, "properties": { - "host": { - "type": "string" + "function": { + "additionalProperties": false, + "properties": { + "functionId": { + "type": "string" + }, + "pinTag": { + "type": "boolean" + }, + "region": { + "type": "string" + } + }, + "required": [ + "functionId" + ], + "type": "object" }, - "port": { - "type": "number" + "glob": { + "type": "string" } }, + "required": [ + "function", + "glob" + ], "type": "object" }, - "extensions": { - "properties": { - }, - "type": "object" - }, - "firestore": { + { "additionalProperties": false, "properties": { - "host": { + "glob": { "type": "string" }, - "port": { - "type": "number" - }, - "websocketPort": { - "type": "number" + "run": { + "additionalProperties": false, + "properties": { + "pinTag": { + "type": "boolean" + }, + "region": { + "type": "string" + }, + "serviceId": { + "type": "string" + } + }, + "required": [ + "serviceId" + ], + "type": "object" } }, + "required": [ + "glob", + "run" + ], "type": "object" }, - "functions": { + { "additionalProperties": false, "properties": { - "host": { - "type": "string" + "dynamicLinks": { + "type": "boolean" }, - "port": { - "type": "number" + "glob": { + "type": "string" } }, + "required": [ + "dynamicLinks", + "glob" + ], "type": "object" }, - "hosting": { + { "additionalProperties": false, "properties": { - "host": { + "destination": { "type": "string" }, - "port": { - "type": "number" + "source": { + "type": "string" } }, + "required": [ + "destination", + "source" + ], "type": "object" }, - "hub": { + { "additionalProperties": false, "properties": { - "host": { + "function": { "type": "string" }, - "port": { - "type": "number" - } - }, - "type": "object" - }, - "logging": { - "additionalProperties": false, - "properties": { - "host": { + "region": { "type": "string" }, - "port": { - "type": "number" + "source": { + "type": "string" } }, + "required": [ + "function", + "source" + ], "type": "object" }, - "pubsub": { + { "additionalProperties": false, "properties": { - "host": { - "type": "string" + "function": { + "additionalProperties": false, + "properties": { + "functionId": { + "type": "string" + }, + "pinTag": { + "type": "boolean" + }, + "region": { + "type": "string" + } + }, + "required": [ + "functionId" + ], + "type": "object" }, - "port": { - "type": "number" + "source": { + "type": "string" } }, + "required": [ + "function", + "source" + ], "type": "object" }, - "singleProjectMode": { - "type": "boolean" - }, - "storage": { + { "additionalProperties": false, "properties": { - "host": { - "type": "string" - }, - "port": { - "type": "number" + "run": { + "additionalProperties": false, + "properties": { + "pinTag": { + "type": "boolean" + }, + "region": { + "type": "string" + }, + "serviceId": { + "type": "string" + } + }, + "required": [ + "serviceId" + ], + "type": "object" + }, + "source": { + "type": "string" } }, + "required": [ + "run", + "source" + ], "type": "object" }, - "tasks": { + { "additionalProperties": false, "properties": { - "host": { - "type": "string" + "dynamicLinks": { + "type": "boolean" }, - "port": { - "type": "number" + "source": { + "type": "string" } }, + "required": [ + "dynamicLinks", + "source" + ], "type": "object" }, - "ui": { + { "additionalProperties": false, "properties": { - "enabled": { - "type": "boolean" - }, - "host": { + "destination": { "type": "string" }, - "port": { - "type": [ - "string", - "number" - ] + "regex": { + "type": "string" } }, + "required": [ + "destination", + "regex" + ], "type": "object" - } - }, - "type": "object" - }, - "extensions": { - "$ref": "#/definitions/ExtensionsConfig" - }, - "firestore": { - "anyOf": [ + }, { "additionalProperties": false, "properties": { - "database": { + "function": { "type": "string" }, - "indexes": { + "regex": { "type": "string" }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { + "region": { + "type": "string" + } + }, + "required": [ + "function", + "regex" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "function": { + "additionalProperties": false, + "properties": { + "functionId": { "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" }, - { + "pinTag": { + "type": "boolean" + }, + "region": { "type": "string" } - ] + }, + "required": [ + "functionId" + ], + "type": "object" }, - "rules": { + "regex": { "type": "string" } }, + "required": [ + "function", + "regex" + ], "type": "object" }, - { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "database": { - "type": "string" - }, - "indexes": { - "type": "string" - }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "rules": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "target" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "database": { - "type": "string" - }, - "indexes": { - "type": "string" - }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "rules": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "database" - ], - "type": "object" - } - ] - }, - "type": "array" - } - ] - }, - "functions": { - "anyOf": [ { "additionalProperties": false, "properties": { - "codebase": { + "regex": { "type": "string" }, - "ignore": { - "items": { - "type": "string" - }, - "type": "array" - }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" + "run": { + "additionalProperties": false, + "properties": { + "pinTag": { + "type": "boolean" }, - { + "region": { "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" }, - { + "serviceId": { "type": "string" } - ] - }, - "runtime": { - "enum": [ - "nodejs10", - "nodejs12", - "nodejs14", - "nodejs16", - "nodejs18", - "nodejs20", - "nodejs22", - "nodejs6", - "nodejs8", - "python310", - "python311", - "python312" + }, + "required": [ + "serviceId" ], - "type": "string" + "type": "object" + } + }, + "required": [ + "regex", + "run" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "dynamicLinks": { + "type": "boolean" }, - "source": { + "regex": { + "type": "string" + } + }, + "required": [ + "dynamicLinks", + "regex" + ], + "type": "object" + } + ] + }, + "HostingSingle": { + "additionalProperties": false, + "properties": { + "appAssociation": { + "enum": [ + "AUTO", + "NONE" + ], + "type": "string" + }, + "cleanUrls": { + "type": "boolean" + }, + "frameworksBackend": { + "$ref": "#/definitions/FrameworksBackendOptions" + }, + "headers": { + "items": { + "$ref": "#/definitions/HostingHeaders" + }, + "type": "array" + }, + "i18n": { + "additionalProperties": false, + "properties": { + "root": { "type": "string" } }, + "required": [ + "root" + ], "type": "object" }, - { + "ignore": { "items": { - "additionalProperties": false, - "properties": { - "codebase": { + "type": "string" + }, + "type": "array" + }, + "postdeploy": { + "anyOf": [ + { + "items": { "type": "string" }, - "ignore": { - "items": { - "type": "string" - }, - "type": "array" - }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "runtime": { - "enum": [ - "nodejs10", - "nodejs12", - "nodejs14", - "nodejs16", - "nodejs18", - "nodejs20", - "nodejs22", - "nodejs6", - "nodejs8", - "python310", - "python311", - "python312" - ], + "type": "array" + }, + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { "type": "string" }, - "source": { - "type": "string" - } + "type": "array" }, - "type": "object" + { + "type": "string" + } + ] + }, + "public": { + "type": "string" + }, + "redirects": { + "items": { + "$ref": "#/definitions/HostingRedirects" + }, + "type": "array" + }, + "rewrites": { + "items": { + "$ref": "#/definitions/HostingRewrites" }, "type": "array" + }, + "site": { + "type": "string" + }, + "source": { + "type": "string" + }, + "target": { + "type": "string" + }, + "trailingSlash": { + "type": "boolean" } - ] + }, + "type": "object" }, - "hosting": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "appAssociation": { - "enum": [ - "AUTO", - "NONE" - ], - "type": "string" + "Record": { + "additionalProperties": false, + "type": "object" + }, + "RemoteConfigConfig": { + "additionalProperties": false, + "properties": { + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" }, - "cleanUrls": { - "type": "boolean" + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" }, - "frameworksBackend": { - "$ref": "#/definitions/FrameworksBackendOptions" + { + "type": "string" + } + ] + }, + "template": { + "type": "string" + } + }, + "required": [ + "template" + ], + "type": "object" + }, + "StorageSingle": { + "additionalProperties": false, + "properties": { + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" }, - "headers": { + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" + "type": "string" + }, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "rules": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "required": [ + "rules" + ], + "type": "object" + } + }, + "properties": { + "$schema": { + "format": "uri", + "type": "string" + }, + "database": { + "anyOf": [ + { + "$ref": "#/definitions/DatabaseSingle" + }, + { + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "instance": { + "type": "string" + }, + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" }, - "headers": { + { + "type": "string" + } + ] + }, + "predeploy": { + "anyOf": [ + { "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" + "type": "string" }, "type": "array" + }, + { + "type": "string" } - }, - "required": [ - "glob", - "headers" - ], - "type": "object" + ] }, - { - "additionalProperties": false, - "properties": { - "headers": { + "rules": { + "type": "string" + }, + "target": { + "type": "string" + } + }, + "required": [ + "instance", + "rules" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "instance": { + "type": "string" + }, + "postdeploy": { + "anyOf": [ + { "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" + "type": "string" }, "type": "array" }, - "source": { + { "type": "string" } - }, - "required": [ - "headers", - "source" - ], - "type": "object" + ] }, - { - "additionalProperties": false, - "properties": { - "headers": { + "predeploy": { + "anyOf": [ + { "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" + "type": "string" }, "type": "array" }, - "regex": { + { "type": "string" } - }, - "required": [ - "headers", - "regex" - ], - "type": "object" + ] + }, + "rules": { + "type": "string" + }, + "target": { + "type": "string" } - ] - }, - "type": "array" - }, - "i18n": { - "additionalProperties": false, - "properties": { - "root": { - "type": "string" - } - }, - "required": [ - "root" - ], - "type": "object" + }, + "required": [ + "rules", + "target" + ], + "type": "object" + } + ] + }, + "type": "array" + } + ] + }, + "dataconnect": { + "anyOf": [ + { + "$ref": "#/definitions/DataConnectSingle" + }, + { + "items": { + "$ref": "#/definitions/DataConnectSingle" + }, + "type": "array" + } + ] + }, + "emulators": { + "additionalProperties": false, + "properties": { + "apphosting": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" }, - "ignore": { - "items": { - "type": "string" - }, - "type": "array" + "port": { + "type": "number" }, - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] + "rootDirectory": { + "type": "string" }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] + "startCommand": { + "type": "string" }, - "public": { + "startCommandOverride": { + "type": "string" + } + }, + "type": "object" + }, + "auth": { + "additionalProperties": false, + "properties": { + "host": { "type": "string" }, - "redirects": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" - } - ] - }, - "type": "array" + "port": { + "type": "number" + } + }, + "type": "object" + }, + "database": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" }, - "rewrites": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "glob", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" + "port": { + "type": "number" + } + }, + "type": "object" + }, + "dataconnect": { + "additionalProperties": false, + "properties": { + "dataDir": { + "type": "string" + }, + "host": { + "type": "string" + }, + "port": { + "type": "number" + }, + "postgresHost": { + "type": "string" + }, + "postgresPort": { + "type": "number" + } + }, + "type": "object" + }, + "eventarc": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "extensions": { + "properties": {}, + "type": "object" + }, + "firestore": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + }, + "websocketPort": { + "type": "number" + } + }, + "type": "object" + }, + "functions": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "hosting": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "hub": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "logging": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "pubsub": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "singleProjectMode": { + "type": "boolean" + }, + "storage": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "tasks": { + "additionalProperties": false, + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "number" + } + }, + "type": "object" + }, + "ui": { + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "host": { + "type": "string" + }, + "port": { + "type": [ + "string", + "number" + ] + } + }, + "type": "object" + } + }, + "type": "object" + }, + "extensions": { + "$ref": "#/definitions/ExtensionsConfig" + }, + "firestore": { + "anyOf": [ + { + "$ref": "#/definitions/FirestoreSingle" + }, + { + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "database": { + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "region": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "function", - "source" - ], - "type": "object" + "indexes": { + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" }, - "required": [ - "functionId" - ], - "type": "object" + "type": "array" }, - "source": { + { "type": "string" } - }, - "required": [ - "function", - "source" - ], - "type": "object" + ] }, - { - "additionalProperties": false, - "properties": { - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" }, - "required": [ - "serviceId" - ], - "type": "object" + "type": "array" }, - "source": { + { "type": "string" } - }, - "required": [ - "run", - "source" - ], - "type": "object" + ] }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "source": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "source" - ], - "type": "object" + "rules": { + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" + "target": { + "type": "string" + } + }, + "required": [ + "target" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "database": { + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "regex" - ], - "type": "object" + "indexes": { + "type": "string" }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } + "postdeploy": { + "anyOf": [ + { + "items": { + "type": "string" }, - "required": [ - "functionId" - ], - "type": "object" + "type": "array" }, - "regex": { + { "type": "string" } - }, - "required": [ - "function", - "regex" - ], - "type": "object" + ] }, - { - "additionalProperties": false, - "properties": { - "regex": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } + "predeploy": { + "anyOf": [ + { + "items": { + "type": "string" }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "regex", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" + "type": "array" }, - "regex": { + { "type": "string" } - }, - "required": [ - "dynamicLinks", - "regex" - ], - "type": "object" + ] + }, + "rules": { + "type": "string" + }, + "target": { + "type": "string" } - ] - }, - "type": "array" - }, - "site": { - "type": "string" - }, - "source": { - "type": "string" - }, - "target": { - "type": "string" - }, - "trailingSlash": { - "type": "boolean" - } + }, + "required": [ + "database" + ], + "type": "object" + } + ] }, - "type": "object" + "type": "array" + } + ] + }, + "functions": { + "anyOf": [ + { + "$ref": "#/definitions/FunctionConfig" + }, + { + "items": { + "$ref": "#/definitions/FunctionConfig" + }, + "type": "array" + } + ] + }, + "hosting": { + "anyOf": [ + { + "$ref": "#/definitions/HostingSingle" }, { "items": { @@ -1455,104 +1458,7 @@ }, "headers": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "glob", - "headers" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "type": "string" - } - }, - "required": [ - "headers", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "headers", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingHeaders" }, "type": "array" }, @@ -1605,411 +1511,13 @@ }, "redirects": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "glob", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "region": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "function", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "source": { - "type": "string" - } - }, - "required": [ - "function", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - }, - "source": { - "type": "string" - } - }, - "required": [ - "run", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "source": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "function", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "regex": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "regex", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, @@ -2049,104 +1557,7 @@ }, "headers": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "glob", - "headers" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "source": { - "type": "string" - } - }, - "required": [ - "headers", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "type": "array" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "headers", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingHeaders" }, "type": "array" }, @@ -2199,411 +1610,13 @@ }, "redirects": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "type": { - "type": "number" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "destination", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "glob": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "function", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "glob": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "glob", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "glob": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "glob" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "destination", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "region": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "function", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "source": { - "type": "string" - } - }, - "required": [ - "function", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - }, - "source": { - "type": "string" - } - }, - "required": [ - "run", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "source": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "source" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "destination": { - "type": "string" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "destination", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "function", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "function": { - "additionalProperties": false, - "properties": { - "functionId": { - "type": "string" - }, - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - } - }, - "required": [ - "functionId" - ], - "type": "object" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "function", - "regex" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "regex": { - "type": "string" - }, - "run": { - "additionalProperties": false, - "properties": { - "pinTag": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "serviceId": { - "type": "string" - } - }, - "required": [ - "serviceId" - ], - "type": "object" - } - }, - "required": [ - "regex", - "run" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "dynamicLinks": { - "type": "boolean" - }, - "regex": { - "type": "string" - } - }, - "required": [ - "dynamicLinks", - "regex" - ], - "type": "object" - } - ] + "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, @@ -2632,85 +1645,12 @@ ] }, "remoteconfig": { - "additionalProperties": false, - "properties": { - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "template": { - "type": "string" - } - }, - "required": [ - "template" - ], - "type": "object" + "$ref": "#/definitions/RemoteConfigConfig" }, "storage": { "anyOf": [ { - "additionalProperties": false, - "properties": { - "postdeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "predeploy": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "rules": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "rules" - ], - "type": "object" + "$ref": "#/definitions/StorageSingle" }, { "items": {