diff --git a/schema/connector-yaml.json b/schema/connector-yaml.json index 729a747d128..13ba62b5281 100644 --- a/schema/connector-yaml.json +++ b/schema/connector-yaml.json @@ -1,5 +1,7 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "connector.yaml", + "description": "connector.yaml is how you configure a connector for your Firebase Data Connect service.", "additionalProperties": false, "definitions": { "javascriptSdk": { diff --git a/schema/dataconnect-yaml.json b/schema/dataconnect-yaml.json index cc68ac5c24f..a5cf3e20cb3 100644 --- a/schema/dataconnect-yaml.json +++ b/schema/dataconnect-yaml.json @@ -1,5 +1,7 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "dataconnect.yaml", + "description": "dataconnect.yaml is how you configure a Firebase Data Connect service.", "additionalProperties": false, "definitions": { "postgresql": { diff --git a/schema/docs/connector-yaml.html b/schema/docs/connector-yaml.html new file mode 100644 index 00000000000..be8f92d546f --- /dev/null +++ b/schema/docs/connector-yaml.html @@ -0,0 +1,1855 @@ + + + + + + + + + + + + + + Schema Docs + + + + Type: object
+

connector.yaml is how you configure a connector for your Firebase Data Connect service.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Firebase Data Connect connector.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

Configuration for a generated Javascript SDK

+

+ +

+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory where generated files should be written to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The package name to use for the generated code.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containining the package.json to install the generated package in.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as generate_javascriptSdk_oneOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

Configuration for a generated Dart SDK

+

+ +

+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory where generated files should be written to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The package name to use for the generated code.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as generate_dartSdk_oneOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

Configuration for a generated Kotlin SDK

+

+ +

+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory where generated files should be written to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The package name to use for the generated code.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as generate_kotlinSdk_oneOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

Configuration for a generated Swift SDK

+

+ +

+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory where generated files should be written to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as generate_swiftSdk_oneOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

+ +

+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path where the JSON LLM tool definitions file should be generated.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as generate_llmTools_oneOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/schema/docs/connector-yaml.md b/schema/docs/connector-yaml.md new file mode 100644 index 00000000000..090d03dad1b --- /dev/null +++ b/schema/docs/connector-yaml.md @@ -0,0 +1,410 @@ +# Schema Docs + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** connector.yaml is how you configure a connector for your Firebase Data Connect service. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------ | ------- | ------ | ---------- | ---------- | ---------------------------------------------- | +| - [connectorId](#connectorId ) | No | string | No | - | The ID of the Firebase Data Connect connector. | +| - [generate](#generate ) | No | object | No | - | - | + +## 1. Property `root > connectorId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The ID of the Firebase Data Connect connector. + +## 2. Property `root > generate` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------- | ------- | ----------- | ---------- | ---------- | -------------------------------------------- | +| - [javascriptSdk](#generate_javascriptSdk ) | No | Combination | No | - | Configuration for a generated Javascript SDK | +| - [dartSdk](#generate_dartSdk ) | No | Combination | No | - | Configuration for a generated Dart SDK | +| - [kotlinSdk](#generate_kotlinSdk ) | No | Combination | No | - | Configuration for a generated Kotlin SDK | +| - [swiftSdk](#generate_swiftSdk ) | No | Combination | No | - | Configuration for a generated Swift SDK | +| - [llmTools](#generate_llmTools ) | No | Combination | No | - | - | + +### 2.1. Property `root > generate > javascriptSdk` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Configuration for a generated Javascript SDK + +| One of(Option) | +| ------------------------------------------------- | +| [javascriptSdk](#generate_javascriptSdk_oneOf_i0) | +| [item 1](#generate_javascriptSdk_oneOf_i1) | + +#### 2.1.1. Property `root > generate > javascriptSdk > oneOf > javascriptSdk` + +| | | +| ------------------------- | --------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/javascriptSdk | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------- | +| - [outputDir](#generate_javascriptSdk_oneOf_i0_outputDir ) | No | string | No | - | Path to the directory where generated files should be written to. | +| - [package](#generate_javascriptSdk_oneOf_i0_package ) | No | string | No | - | The package name to use for the generated code. | +| - [packageJSONDir](#generate_javascriptSdk_oneOf_i0_packageJSONDir ) | No | string | No | - | The directory containining the package.json to install the generated package in. | +| - [](#generate_javascriptSdk_oneOf_i0_additionalProperties ) | No | object | No | - | - | + +##### 2.1.1.1. Property `root > generate > javascriptSdk > oneOf > item 0 > outputDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory where generated files should be written to. + +##### 2.1.1.2. Property `root > generate > javascriptSdk > oneOf > item 0 > package` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The package name to use for the generated code. + +##### 2.1.1.3. Property `root > generate > javascriptSdk > oneOf > item 0 > packageJSONDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The directory containining the package.json to install the generated package in. + +#### 2.1.2. Property `root > generate > javascriptSdk > oneOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [javascriptSdk](#generate_javascriptSdk_oneOf_i1_items) | - | + +##### 2.1.2.1. root > generate > javascriptSdk > oneOf > item 1 > javascriptSdk + +| | | +| ------------------------- | ------------------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [generate_javascriptSdk_oneOf_i0](#generate_javascriptSdk_oneOf_i0) | + +### 2.2. Property `root > generate > dartSdk` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Configuration for a generated Dart SDK + +| One of(Option) | +| ------------------------------------- | +| [dartSdk](#generate_dartSdk_oneOf_i0) | +| [item 1](#generate_dartSdk_oneOf_i1) | + +#### 2.2.1. Property `root > generate > dartSdk > oneOf > dartSdk` + +| | | +| ------------------------- | --------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/dartSdk | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------ | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------- | +| - [outputDir](#generate_dartSdk_oneOf_i0_outputDir ) | No | string | No | - | Path to the directory where generated files should be written to. | +| - [package](#generate_dartSdk_oneOf_i0_package ) | No | string | No | - | The package name to use for the generated code. | +| - [](#generate_dartSdk_oneOf_i0_additionalProperties ) | No | object | No | - | - | + +##### 2.2.1.1. Property `root > generate > dartSdk > oneOf > item 0 > outputDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory where generated files should be written to. + +##### 2.2.1.2. Property `root > generate > dartSdk > oneOf > item 0 > package` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The package name to use for the generated code. + +#### 2.2.2. Property `root > generate > dartSdk > oneOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------- | ----------- | +| [dartSdk](#generate_dartSdk_oneOf_i1_items) | - | + +##### 2.2.2.1. root > generate > dartSdk > oneOf > item 1 > dartSdk + +| | | +| ------------------------- | ------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [generate_dartSdk_oneOf_i0](#generate_dartSdk_oneOf_i0) | + +### 2.3. Property `root > generate > kotlinSdk` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Configuration for a generated Kotlin SDK + +| One of(Option) | +| ----------------------------------------- | +| [kotlinSdk](#generate_kotlinSdk_oneOf_i0) | +| [item 1](#generate_kotlinSdk_oneOf_i1) | + +#### 2.3.1. Property `root > generate > kotlinSdk > oneOf > kotlinSdk` + +| | | +| ------------------------- | ----------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/kotlinSdk | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------- | +| - [outputDir](#generate_kotlinSdk_oneOf_i0_outputDir ) | No | string | No | - | Path to the directory where generated files should be written to. | +| - [package](#generate_kotlinSdk_oneOf_i0_package ) | No | string | No | - | The package name to use for the generated code. | +| - [](#generate_kotlinSdk_oneOf_i0_additionalProperties ) | No | object | No | - | - | + +##### 2.3.1.1. Property `root > generate > kotlinSdk > oneOf > item 0 > outputDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory where generated files should be written to. + +##### 2.3.1.2. Property `root > generate > kotlinSdk > oneOf > item 0 > package` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The package name to use for the generated code. + +#### 2.3.2. Property `root > generate > kotlinSdk > oneOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------- | ----------- | +| [kotlinSdk](#generate_kotlinSdk_oneOf_i1_items) | - | + +##### 2.3.2.1. root > generate > kotlinSdk > oneOf > item 1 > kotlinSdk + +| | | +| ------------------------- | ----------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [generate_kotlinSdk_oneOf_i0](#generate_kotlinSdk_oneOf_i0) | + +### 2.4. Property `root > generate > swiftSdk` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Configuration for a generated Swift SDK + +| One of(Option) | +| --------------------------------------- | +| [swiftSdk](#generate_swiftSdk_oneOf_i0) | +| [item 1](#generate_swiftSdk_oneOf_i1) | + +#### 2.4.1. Property `root > generate > swiftSdk > oneOf > swiftSdk` + +| | | +| ------------------------- | ---------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/swiftSdk | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------- | +| - [outputDir](#generate_swiftSdk_oneOf_i0_outputDir ) | No | string | No | - | Path to the directory where generated files should be written to. | +| - [](#generate_swiftSdk_oneOf_i0_additionalProperties ) | No | object | No | - | - | + +##### 2.4.1.1. Property `root > generate > swiftSdk > oneOf > item 0 > outputDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory where generated files should be written to. + +#### 2.4.2. Property `root > generate > swiftSdk > oneOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------- | ----------- | +| [swiftSdk](#generate_swiftSdk_oneOf_i1_items) | - | + +##### 2.4.2.1. root > generate > swiftSdk > oneOf > item 1 > swiftSdk + +| | | +| ------------------------- | --------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [generate_swiftSdk_oneOf_i0](#generate_swiftSdk_oneOf_i0) | + +### 2.5. Property `root > generate > llmTools` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +| One of(Option) | +| --------------------------------------- | +| [llmTools](#generate_llmTools_oneOf_i0) | +| [item 1](#generate_llmTools_oneOf_i1) | + +#### 2.5.1. Property `root > generate > llmTools > oneOf > llmTools` + +| | | +| ------------------------- | ---------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/llmTools | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------------------ | +| - [outputFile](#generate_llmTools_oneOf_i0_outputFile ) | No | string | No | - | Path where the JSON LLM tool definitions file should be generated. | +| - [](#generate_llmTools_oneOf_i0_additionalProperties ) | No | object | No | - | - | + +##### 2.5.1.1. Property `root > generate > llmTools > oneOf > item 0 > outputFile` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path where the JSON LLM tool definitions file should be generated. + +#### 2.5.2. Property `root > generate > llmTools > oneOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------- | ----------- | +| [llmTools](#generate_llmTools_oneOf_i1_items) | - | + +##### 2.5.2.1. root > generate > llmTools > oneOf > item 1 > llmTools + +| | | +| ------------------------- | --------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [generate_llmTools_oneOf_i0](#generate_llmTools_oneOf_i0) | + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2025-06-17 at 07:38:46 -0700 diff --git a/schema/docs/dataconnect-yaml.html b/schema/docs/dataconnect-yaml.html new file mode 100644 index 00000000000..9378b827a45 --- /dev/null +++ b/schema/docs/dataconnect-yaml.html @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + Schema Docs + + + + Type: object
+

dataconnect.yaml is how you configure a Firebase Data Connect service.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The Firebase Data Connect API version to target. If omitted, defaults to the latest version

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Firebase Data Connect service.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Firebase Data Connect service.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of directories containing conector.yaml files describing a connector to deploy.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Relative path to directory containing GQL files defining the schema. If omitted, defaults to ./schema.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The name of the PostgreSQL database.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the CloudSQL instance for this database

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Schema validation mode for schema migrations

+
+

Must be one of:

+
  • "COMPATIBLE"
  • "STRICT"
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/schema/docs/dataconnect-yaml.md b/schema/docs/dataconnect-yaml.md new file mode 100644 index 00000000000..ffcb5013286 --- /dev/null +++ b/schema/docs/dataconnect-yaml.md @@ -0,0 +1,169 @@ +# Schema Docs + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** dataconnect.yaml is how you configure a Firebase Data Connect service. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------- | ------- | --------------- | ---------- | ----------------------- | ------------------------------------------------------------------------------------------- | +| - [specVersion](#specVersion ) | No | string | No | - | The Firebase Data Connect API version to target. If omitted, defaults to the latest version | +| - [serviceId](#serviceId ) | No | string | No | - | The ID of the Firebase Data Connect service. | +| - [location](#location ) | No | string | No | - | The region of the Firebase Data Connect service. | +| - [connectorDirs](#connectorDirs ) | No | array of string | No | - | A list of directories containing conector.yaml files describing a connector to deploy. | +| - [schema](#schema ) | No | object | No | In #/definitions/schema | - | + +## 1. Property `root > specVersion` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The Firebase Data Connect API version to target. If omitted, defaults to the latest version + +## 2. Property `root > serviceId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The ID of the Firebase Data Connect service. + +## 3. Property `root > location` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Firebase Data Connect service. + +## 4. Property `root > connectorDirs` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of directories containing conector.yaml files describing a connector to deploy. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------- | ----------- | +| [connectorDirs items](#connectorDirs_items) | - | + +### 4.1. root > connectorDirs > connectorDirs items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +## 5. Property `root > schema` + +| | | +| ------------------------- | -------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/schema | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------- | ------- | ------ | ---------- | --------------------------- | ------------------------------------------------------------------------------------------------------ | +| - [source](#schema_source ) | No | string | No | - | Relative path to directory containing GQL files defining the schema. If omitted, defaults to ./schema. | +| - [datasource](#schema_datasource ) | No | object | No | In #/definitions/dataSource | - | + +### 5.1. Property `root > schema > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Relative path to directory containing GQL files defining the schema. If omitted, defaults to ./schema. + +### 5.2. Property `root > schema > datasource` + +| | | +| ------------------------- | ------------------------ | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/dataSource | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------------- | ------- | ------ | ---------- | --------------------------- | ----------------- | +| - [postgresql](#schema_datasource_postgresql ) | No | object | No | In #/definitions/postgresql | - | + +#### 5.2.1. Property `root > schema > datasource > postgresql` + +| | | +| ------------------------- | ------------------------ | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/postgresql | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------ | +| - [database](#schema_datasource_postgresql_database ) | No | string | No | - | The name of the PostgreSQL database. | +| - [cloudSql](#schema_datasource_postgresql_cloudSql ) | No | object | No | - | - | + +##### 5.2.1.1. Property `root > schema > datasource > postgresql > database` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The name of the PostgreSQL database. + +##### 5.2.1.2. Property `root > schema > datasource > postgresql > cloudSql` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------ | ------- | ---------------- | ---------- | ---------- | ------------------------------------------------- | +| - [instanceId](#schema_datasource_postgresql_cloudSql_instanceId ) | No | string | No | - | The ID of the CloudSQL instance for this database | +| - [schemaValidation](#schema_datasource_postgresql_cloudSql_schemaValidation ) | No | enum (of string) | No | - | Schema validation mode for schema migrations | + +###### 5.2.1.2.1. Property `root > schema > datasource > postgresql > cloudSql > instanceId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The ID of the CloudSQL instance for this database + +###### 5.2.1.2.2. Property `root > schema > datasource > postgresql > cloudSql > schemaValidation` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Schema validation mode for schema migrations + +Must be one of: +* "COMPATIBLE" +* "STRICT" + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2025-06-17 at 07:38:46 -0700 diff --git a/schema/docs/extension-yaml.html b/schema/docs/extension-yaml.html new file mode 100644 index 00000000000..0fdf316805a --- /dev/null +++ b/schema/docs/extension-yaml.html @@ -0,0 +1,4354 @@ + + + + + + + + + + + + + + Schema Docs + + + + Type: object
+

extension.yaml declares the resources and configurable parameters for a Firebase Extension.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

ID of this extension (ie your-extension-name)

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Version of this extension. Follows https://semver.org/.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Version of the extension.yaml spec that this file follows. Currently always 'v1beta'

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The software license agreement for this extension. Currently, only 'Apache-2.0' is permitted on extensions.dev

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Human readable name for this extension (ie 'Your Extension Name')

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A one to two sentence description of what this extension does

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The file name of this extension's icon

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Whether this extension requires a billing to be enabled on the project it is installed on

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of tags to help users find your extension in search

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The URL of the GitHub repo hosting this code

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A URL where users can view the full changelog or release notes for this extension

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The author's name

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A contact email for the author

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

URL of the author's website

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as author +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

A Google API used by this extension. Will be enabled on extension deployment.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Name of the Google API to enable. Should match the service name listed in https://console.cloud.google.com/apis/library

+
Must match regular expression: [^\.]+\.googleapis\.com + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Why this extension needs this API enabled

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

An IAM role to grant to this extension.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Name of the IAM role to grant. Must be on the list of allowed roles: https://firebase.google.com/docs/extensions/publishers/access#supported-roles

+
Must match regular expression: [a-zA-Z]+\.[a-zA-Z]+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Why this extension needs this IAM role

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

What resource to grant this role on. If omitted, defaults to projects/${project_id}

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

A non-Google API used by this extension

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Name of the external service

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

URI to pricing information for the service

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

A parameter that users installing this extension can configure

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The name of the param. This is how you reference the param in your code

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Short description for the parameter. Displayed to users when they're prompted for the parameter's value.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Detailed description for the parameter. Displayed to users when they're prompted for the parameter's value.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Example value for the parameter.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Regular expression for validation of the parameter's user-configured value. Uses Google RE2 syntax.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Error message to display if regex validation fails.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Default value for the parameter if the user leaves the parameter's value blank.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Defines whether the user can submit an empty string when they're prompted for the parameter's value. Defaults to true.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Defines whether the user can change the parameter's value after installation (such as if they reconfigure the extension). Defaults to false.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Whether this a param for advanced users. When true, only users who choose 'advanced configuration' will see this param.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The parameter type. Special parameter types might have additional requirements or different UI presentation. See https://firebase.google.com/docs/extensions/reference/extension-yaml#params for more details.

+
Must match regular expression: string|select|multiSelect|secret|selectResource + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The type of resource to prompt the user to select. Provides a special UI treatment for the param.

+
Must match regular expression: storage\.googleapis\.com\/Bucket|firestore\.googleapis\.com\/Database|firebasedatabase\.googleapis\.com\/DatabaseInstance + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

Options for a select or multiSelect type param.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

One of the values the user can choose. This is the value you get when you read the parameter value in code.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Short description of the selectable option. If omitted, defaults to value.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The name of this resource

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

What type of resource this is. See https://firebase.google.com/docs/extensions/reference/extension-yaml#resources for a full list of options.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A brief description of what this resource does

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

The properties of this resource

+
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The location for this resource

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The entry point for a function resource

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Directory that contains your package.json at its root. The file for your functions source code must be in this directory. Defaults to functions

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A function resources's maximum execution time.

+
Must match regular expression: \d+s + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Amount of memory in MB available for the function.

+
Must match regular expression: \d+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Runtime environment for the function. Defaults to the most recent LTS version of node.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

A function triggered by HTTPS calls

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

A function triggered by a background event

+
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The type of background event to trigger on. See https://firebase.google.com/docs/extensions/publishers/functions#supported for a full list.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The name or pattern of the resource to trigger on

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

Filters that further limit the events to listen to.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The event attribute to filter on

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The value to filter for

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The name of the channel associated with the trigger in projects/{project}/locations/{location}/channels/{channel} format. If you omit this property, the function will listen for events on the project's default channel.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

A function triggered at a regular interval by a Cloud Scheduler job

+
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The frequency at which you want the function to run. Accepts unix-cron (https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) or App Engine (https://cloud.google.com/appengine/docs/standard/nodejs/scheduling-jobs-with-cron-yaml#definingthecronjobschedule) syntax.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The time zone in which the schedule will run. Defaults to UTC.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

A function triggered by a Cloud Task

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Build configuration for a gen 2 Cloud Function

+
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Runtime environment for the function. Defaults to the most recent LTS version of node.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The entry point for a function resource

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Service configuration for a gen 2 Cloud Function

+
+ + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The function's maximum execution time. Default: 60, max value: 540.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied, the value is interpreted as bytes.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+

Additional Properties of any type are allowed.

+ + Type: object
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Name of the task queue-triggered function that will handle the event. This function must be a taskQueueTriggered function declared in the resources section.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Message to display in the Firebase console while the task is in progress.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+Same definition as onInstall +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+Same definition as onInstall +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The type identifier of the event. Construct the identifier out of 3-4 dot-delimited fields: the publisher ID, extension name, and event name fields are required; the version field is recommended. Choose a unique and descriptive event name for each event type you publish.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A description of the event

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/schema/docs/extension-yaml.md b/schema/docs/extension-yaml.md new file mode 100644 index 00000000000..682e6e71093 --- /dev/null +++ b/schema/docs/extension-yaml.md @@ -0,0 +1,1126 @@ +# Schema Docs + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** extension.yaml declares the resources and configurable parameters for a Firebase Extension. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------- | ------- | --------------- | ---------- | ----------------------- | -------------------------------------------------------------------------------------------------------------- | +| - [name](#name ) | No | string | No | - | ID of this extension (ie your-extension-name) | +| - [version](#version ) | No | string | No | - | Version of this extension. Follows https://semver.org/. | +| - [specVersion](#specVersion ) | No | string | No | - | Version of the extension.yaml spec that this file follows. Currently always 'v1beta' | +| - [license](#license ) | No | string | No | - | The software license agreement for this extension. Currently, only 'Apache-2.0' is permitted on extensions.dev | +| - [displayName](#displayName ) | No | string | No | - | Human readable name for this extension (ie 'Your Extension Name') | +| - [description](#description ) | No | string | No | - | A one to two sentence description of what this extension does | +| - [icon](#icon ) | No | string | No | - | The file name of this extension's icon | +| - [billingRequired](#billingRequired ) | No | boolean | No | - | Whether this extension requires a billing to be enabled on the project it is installed on | +| - [tags](#tags ) | No | array of string | No | - | A list of tags to help users find your extension in search | +| - [sourceUrl](#sourceUrl ) | No | string | No | - | The URL of the GitHub repo hosting this code | +| - [releaseNotesUrl](#releaseNotesUrl ) | No | string | No | - | A URL where users can view the full changelog or release notes for this extension | +| - [author](#author ) | No | object | No | In #/definitions/author | - | +| - [contributors](#contributors ) | No | array | No | - | - | +| - [apis](#apis ) | No | array | No | - | - | +| - [roles](#roles ) | No | array | No | - | - | +| - [externalServices](#externalServices ) | No | array | No | - | - | +| - [params](#params ) | No | array | No | - | - | +| - [resources](#resources ) | No | array | No | - | - | +| - [lifecycleEvents](#lifecycleEvents ) | No | array | No | - | - | +| - [events](#events ) | No | array | No | - | - | + +## 1. Property `root > name` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** ID of this extension (ie your-extension-name) + +## 2. Property `root > version` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Version of this extension. Follows https://semver.org/. + +## 3. Property `root > specVersion` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Version of the extension.yaml spec that this file follows. Currently always 'v1beta' + +## 4. Property `root > license` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The software license agreement for this extension. Currently, only 'Apache-2.0' is permitted on extensions.dev + +## 5. Property `root > displayName` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Human readable name for this extension (ie 'Your Extension Name') + +## 6. Property `root > description` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** A one to two sentence description of what this extension does + +## 7. Property `root > icon` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The file name of this extension's icon + +## 8. Property `root > billingRequired` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Whether this extension requires a billing to be enabled on the project it is installed on + +## 9. Property `root > tags` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of tags to help users find your extension in search + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [tags items](#tags_items) | - | + +### 9.1. root > tags > tags items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +## 10. Property `root > sourceUrl` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The URL of the GitHub repo hosting this code + +## 11. Property `root > releaseNotesUrl` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** A URL where users can view the full changelog or release notes for this extension + +## 12. Property `root > author` + +| | | +| ------------------------- | -------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/author | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------ | +| - [authorName](#author_authorName ) | No | string | No | - | The author's name | +| - [email](#author_email ) | No | string | No | - | A contact email for the author | +| - [url](#author_url ) | No | string | No | - | URL of the author's website | + +### 12.1. Property `root > author > authorName` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The author's name + +### 12.2. Property `root > author > email` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** A contact email for the author + +### 12.3. Property `root > author > url` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** URL of the author's website + +## 13. Property `root > contributors` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [author](#contributors_items) | - | + +### 13.1. root > contributors > author + +| | | +| ------------------------- | ----------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [author](#author) | + +## 14. Property `root > apis` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | ----------------------------------------------------------------------------- | +| [api](#apis_items) | A Google API used by this extension. Will be enabled on extension deployment. | + +### 14.1. root > apis > api + +| | | +| ------------------------- | ----------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/api | + +**Description:** A Google API used by this extension. Will be enabled on extension deployment. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------- | +| + [apiName](#apis_items_apiName ) | No | string | No | - | Name of the Google API to enable. Should match the service name listed in https://console.cloud.google.com/apis/library | +| + [reason](#apis_items_reason ) | No | string | No | - | Why this extension needs this API enabled | + +#### 14.1.1. Property `root > apis > apis items > apiName` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Name of the Google API to enable. Should match the service name listed in https://console.cloud.google.com/apis/library + +| Restrictions | | +| --------------------------------- | ------------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```[^\.]+\.googleapis\.com``` [Test](https://regex101.com/?regex=%5B%5E%5C.%5D%2B%5C.googleapis%5C.com) | + +#### 14.1.2. Property `root > apis > apis items > reason` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Why this extension needs this API enabled + +## 15. Property `root > roles` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------- | +| [role](#roles_items) | An IAM role to grant to this extension. | + +### 15.1. root > roles > role + +| | | +| ------------------------- | ------------------ | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/role | + +**Description:** An IAM role to grant to this extension. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------ | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| + [role](#roles_items_role ) | No | string | No | - | Name of the IAM role to grant. Must be on the list of allowed roles: https://firebase.google.com/docs/extensions/publishers/access#supported-roles | +| + [reason](#roles_items_reason ) | No | string | No | - | Why this extension needs this IAM role | +| - [resource](#roles_items_resource ) | No | string | No | - | What resource to grant this role on. If omitted, defaults to projects/${project_id} | + +#### 15.1.1. Property `root > roles > roles items > role` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Name of the IAM role to grant. Must be on the list of allowed roles: https://firebase.google.com/docs/extensions/publishers/access#supported-roles + +| Restrictions | | +| --------------------------------- | ------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```[a-zA-Z]+\.[a-zA-Z]+``` [Test](https://regex101.com/?regex=%5Ba-zA-Z%5D%2B%5C.%5Ba-zA-Z%5D%2B) | + +#### 15.1.2. Property `root > roles > roles items > reason` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Why this extension needs this IAM role + +#### 15.1.3. Property `root > roles > roles items > resource` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** What resource to grant this role on. If omitted, defaults to projects/${project_id} + +## 16. Property `root > externalServices` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------ | --------------------------------------- | +| [externalService](#externalServices_items) | A non-Google API used by this extension | + +### 16.1. root > externalServices > externalService + +| | | +| ------------------------- | ----------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/externalService | + +**Description:** A non-Google API used by this extension + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [name](#externalServices_items_name ) | No | string | No | - | Name of the external service | +| - [pricingUri](#externalServices_items_pricingUri ) | No | string | No | - | URI to pricing information for the service | + +#### 16.1.1. Property `root > externalServices > externalServices items > name` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Name of the external service + +#### 16.1.2. Property `root > externalServices > externalServices items > pricingUri` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** URI to pricing information for the service + +## 17. Property `root > params` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | -------------------------------------------------------------- | +| [param](#params_items) | A parameter that users installing this extension can configure | + +### 17.1. root > params > param + +| | | +| ------------------------- | ------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/param | + +**Description:** A parameter that users installing this extension can configure + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| + [param](#params_items_param ) | No | string | No | - | The name of the param. This is how you reference the param in your code | +| - [label](#params_items_label ) | No | string | No | - | Short description for the parameter. Displayed to users when they're prompted for the parameter's value. | +| - [description](#params_items_description ) | No | string | No | - | Detailed description for the parameter. Displayed to users when they're prompted for the parameter's value. | +| - [example](#params_items_example ) | No | string | No | - | Example value for the parameter. | +| - [validationRegex](#params_items_validationRegex ) | No | string | No | - | Regular expression for validation of the parameter's user-configured value. Uses Google RE2 syntax. | +| - [validationErrorMessage](#params_items_validationErrorMessage ) | No | string | No | - | Error message to display if regex validation fails. | +| - [default](#params_items_default ) | No | string | No | - | Default value for the parameter if the user leaves the parameter's value blank. | +| - [required](#params_items_required ) | No | boolean | No | - | Defines whether the user can submit an empty string when they're prompted for the parameter's value. Defaults to true. | +| - [immutable](#params_items_immutable ) | No | boolean | No | - | Defines whether the user can change the parameter's value after installation (such as if they reconfigure the extension). Defaults to false. | +| - [advanced](#params_items_advanced ) | No | boolean | No | - | Whether this a param for advanced users. When true, only users who choose 'advanced configuration' will see this param. | +| - [type](#params_items_type ) | No | string | No | - | The parameter type. Special parameter types might have additional requirements or different UI presentation. See https://firebase.google.com/docs/extensions/reference/extension-yaml#params for more details. | +| - [resourceType](#params_items_resourceType ) | No | string | No | - | The type of resource to prompt the user to select. Provides a special UI treatment for the param. | +| - [options](#params_items_options ) | No | array | No | - | Options for a select or multiSelect type param. | + +#### 17.1.1. Property `root > params > params items > param` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The name of the param. This is how you reference the param in your code + +#### 17.1.2. Property `root > params > params items > label` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Short description for the parameter. Displayed to users when they're prompted for the parameter's value. + +#### 17.1.3. Property `root > params > params items > description` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Detailed description for the parameter. Displayed to users when they're prompted for the parameter's value. + +#### 17.1.4. Property `root > params > params items > example` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Example value for the parameter. + +#### 17.1.5. Property `root > params > params items > validationRegex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Regular expression for validation of the parameter's user-configured value. Uses Google RE2 syntax. + +#### 17.1.6. Property `root > params > params items > validationErrorMessage` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Error message to display if regex validation fails. + +#### 17.1.7. Property `root > params > params items > default` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Default value for the parameter if the user leaves the parameter's value blank. + +#### 17.1.8. Property `root > params > params items > required` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Defines whether the user can submit an empty string when they're prompted for the parameter's value. Defaults to true. + +#### 17.1.9. Property `root > params > params items > immutable` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Defines whether the user can change the parameter's value after installation (such as if they reconfigure the extension). Defaults to false. + +#### 17.1.10. Property `root > params > params items > advanced` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Whether this a param for advanced users. When true, only users who choose 'advanced configuration' will see this param. + +#### 17.1.11. Property `root > params > params items > type` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The parameter type. Special parameter types might have additional requirements or different UI presentation. See https://firebase.google.com/docs/extensions/reference/extension-yaml#params for more details. + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```string\|select\|multiSelect\|secret\|selectResource``` [Test](https://regex101.com/?regex=string%7Cselect%7CmultiSelect%7Csecret%7CselectResource) | + +#### 17.1.12. Property `root > params > params items > resourceType` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The type of resource to prompt the user to select. Provides a special UI treatment for the param. + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```storage\.googleapis\.com\/Bucket\|firestore\.googleapis\.com\/Database\|firebasedatabase\.googleapis\.com\/DatabaseInstance``` [Test](https://regex101.com/?regex=storage%5C.googleapis%5C.com%5C%2FBucket%7Cfirestore%5C.googleapis%5C.com%5C%2FDatabase%7Cfirebasedatabase%5C.googleapis%5C.com%5C%2FDatabaseInstance) | + +#### 17.1.13. Property `root > params > params items > options` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Options for a select or multiSelect type param. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------ | ----------- | +| [paramOption](#params_items_options_items) | - | + +##### 17.1.13.1. root > params > params items > options > paramOption + +| | | +| ------------------------- | ------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/paramOption | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------- | +| + [value](#params_items_options_items_value ) | No | string | No | - | One of the values the user can choose. This is the value you get when you read the parameter value in code. | +| - [label](#params_items_options_items_label ) | No | string | No | - | Short description of the selectable option. If omitted, defaults to value. | + +###### 17.1.13.1.1. Property `root > params > params items > options > options items > value` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** One of the values the user can choose. This is the value you get when you read the parameter value in code. + +###### 17.1.13.1.2. Property `root > params > params items > options > options items > label` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Short description of the selectable option. If omitted, defaults to value. + +## 18. Property `root > resources` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [resource](#resources_items) | - | + +### 18.1. root > resources > resource + +| | | +| ------------------------- | ---------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/resource | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------------- | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| + [name](#resources_items_name ) | No | string | No | - | The name of this resource | +| + [type](#resources_items_type ) | No | string | No | - | What type of resource this is. See https://firebase.google.com/docs/extensions/reference/extension-yaml#resources for a full list of options. | +| + [description](#resources_items_description ) | No | string | No | - | A brief description of what this resource does | +| + [properties](#resources_items_properties ) | No | object | No | - | The properties of this resource | + +#### 18.1.1. Property `root > resources > resources items > name` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The name of this resource + +#### 18.1.2. Property `root > resources > resources items > type` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** What type of resource this is. See https://firebase.google.com/docs/extensions/reference/extension-yaml#resources for a full list of options. + +#### 18.1.3. Property `root > resources > resources items > description` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A brief description of what this resource does + +#### 18.1.4. Property `root > resources > resources items > properties` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Any type allowed | + +**Description:** The properties of this resource + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| - [location](#resources_items_properties_location ) | No | string | No | - | The location for this resource | +| - [entryPoint](#resources_items_properties_entryPoint ) | No | string | No | - | The entry point for a function resource | +| - [sourceDirectory](#resources_items_properties_sourceDirectory ) | No | string | No | - | Directory that contains your package.json at its root. The file for your functions source code must be in this directory. Defaults to functions | +| - [timeout](#resources_items_properties_timeout ) | No | string | No | - | A function resources's maximum execution time. | +| - [availableMemoryMb](#resources_items_properties_availableMemoryMb ) | No | string | No | - | Amount of memory in MB available for the function. | +| - [runtime](#resources_items_properties_runtime ) | No | string | No | - | Runtime environment for the function. Defaults to the most recent LTS version of node. | +| - [httpsTrigger](#resources_items_properties_httpsTrigger ) | No | object | No | - | A function triggered by HTTPS calls | +| - [eventTrigger](#resources_items_properties_eventTrigger ) | No | object | No | - | A function triggered by a background event | +| - [scheduleTrigger](#resources_items_properties_scheduleTrigger ) | No | object | No | - | A function triggered at a regular interval by a Cloud Scheduler job | +| - [taskQueueTrigger](#resources_items_properties_taskQueueTrigger ) | No | object | No | - | A function triggered by a Cloud Task | +| - [buildConfig](#resources_items_properties_buildConfig ) | No | object | No | - | Build configuration for a gen 2 Cloud Function | +| - [serviceConfig](#resources_items_properties_serviceConfig ) | No | object | No | - | Service configuration for a gen 2 Cloud Function | +| - [](#resources_items_properties_additionalProperties ) | No | object | No | - | - | + +##### 18.1.4.1. Property `root > resources > resources items > properties > location` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The location for this resource + +##### 18.1.4.2. Property `root > resources > resources items > properties > entryPoint` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The entry point for a function resource + +##### 18.1.4.3. Property `root > resources > resources items > properties > sourceDirectory` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Directory that contains your package.json at its root. The file for your functions source code must be in this directory. Defaults to functions + +##### 18.1.4.4. Property `root > resources > resources items > properties > timeout` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** A function resources's maximum execution time. + +| Restrictions | | +| --------------------------------- | ------------------------------------------------------- | +| **Must match regular expression** | ```\d+s``` [Test](https://regex101.com/?regex=%5Cd%2Bs) | + +##### 18.1.4.5. Property `root > resources > resources items > properties > availableMemoryMb` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Amount of memory in MB available for the function. + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------- | +| **Must match regular expression** | ```\d+``` [Test](https://regex101.com/?regex=%5Cd%2B) | + +##### 18.1.4.6. Property `root > resources > resources items > properties > runtime` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Runtime environment for the function. Defaults to the most recent LTS version of node. + +##### 18.1.4.7. Property `root > resources > resources items > properties > httpsTrigger` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A function triggered by HTTPS calls + +##### 18.1.4.8. Property `root > resources > resources items > properties > eventTrigger` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A function triggered by a background event + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| + [eventType](#resources_items_properties_eventTrigger_eventType ) | No | string | No | - | The type of background event to trigger on. See https://firebase.google.com/docs/extensions/publishers/functions#supported for a full list. | +| - [resource](#resources_items_properties_eventTrigger_resource ) | No | string | No | - | The name or pattern of the resource to trigger on | +| - [eventFilters](#resources_items_properties_eventTrigger_eventFilters ) | No | array | No | - | Filters that further limit the events to listen to. | +| - [channel](#resources_items_properties_eventTrigger_channel ) | No | string | No | - | The name of the channel associated with the trigger in projects/{project}/locations/{location}/channels/{channel} format. If you omit this property, the function will listen for events on the project's default channel. | +| - [triggerRegion](#resources_items_properties_eventTrigger_triggerRegion ) | No | string | No | - | The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. | + +###### 18.1.4.8.1. Property `root > resources > resources items > properties > eventTrigger > eventType` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The type of background event to trigger on. See https://firebase.google.com/docs/extensions/publishers/functions#supported for a full list. + +###### 18.1.4.8.2. Property `root > resources > resources items > properties > eventTrigger > resource` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The name or pattern of the resource to trigger on + +###### 18.1.4.8.3. Property `root > resources > resources items > properties > eventTrigger > eventFilters` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Filters that further limit the events to listen to. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [eventFilter](#resources_items_properties_eventTrigger_eventFilters_items) | - | + +###### 18.1.4.8.3.1. root > resources > resources items > properties > eventTrigger > eventFilters > eventFilter + +| | | +| ------------------------- | ------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/eventFilter | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------- | +| - [attribute](#resources_items_properties_eventTrigger_eventFilters_items_attribute ) | No | string | No | - | The event attribute to filter on | +| - [value](#resources_items_properties_eventTrigger_eventFilters_items_value ) | No | string | No | - | The value to filter for | + +###### 18.1.4.8.3.1.1. Property `root > resources > resources items > properties > eventTrigger > eventFilters > eventFilters items > attribute` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The event attribute to filter on + +###### 18.1.4.8.3.1.2. Property `root > resources > resources items > properties > eventTrigger > eventFilters > eventFilters items > value` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The value to filter for + +###### 18.1.4.8.4. Property `root > resources > resources items > properties > eventTrigger > channel` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The name of the channel associated with the trigger in projects/{project}/locations/{location}/channels/{channel} format. If you omit this property, the function will listen for events on the project's default channel. + +###### 18.1.4.8.5. Property `root > resources > resources items > properties > eventTrigger > triggerRegion` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. + +##### 18.1.4.9. Property `root > resources > resources items > properties > scheduleTrigger` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A function triggered at a regular interval by a Cloud Scheduler job + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| + [schedule](#resources_items_properties_scheduleTrigger_schedule ) | No | string | No | - | The frequency at which you want the function to run. Accepts unix-cron (https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) or App Engine (https://cloud.google.com/appengine/docs/standard/nodejs/scheduling-jobs-with-cron-yaml#defining_the_cron_job_schedule) syntax. | +| - [timeZone](#resources_items_properties_scheduleTrigger_timeZone ) | No | string | No | - | The time zone in which the schedule will run. Defaults to UTC. | + +###### 18.1.4.9.1. Property `root > resources > resources items > properties > scheduleTrigger > schedule` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The frequency at which you want the function to run. Accepts unix-cron (https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) or App Engine (https://cloud.google.com/appengine/docs/standard/nodejs/scheduling-jobs-with-cron-yaml#defining_the_cron_job_schedule) syntax. + +###### 18.1.4.9.2. Property `root > resources > resources items > properties > scheduleTrigger > timeZone` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The time zone in which the schedule will run. Defaults to UTC. + +##### 18.1.4.10. Property `root > resources > resources items > properties > taskQueueTrigger` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A function triggered by a Cloud Task + +##### 18.1.4.11. Property `root > resources > resources items > properties > buildConfig` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Build configuration for a gen 2 Cloud Function + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------- | +| - [runtime](#resources_items_properties_buildConfig_runtime ) | No | string | No | - | Runtime environment for the function. Defaults to the most recent LTS version of node. | +| - [entryPoint](#resources_items_properties_buildConfig_entryPoint ) | No | string | No | - | The entry point for a function resource | + +###### 18.1.4.11.1. Property `root > resources > resources items > properties > buildConfig > runtime` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Runtime environment for the function. Defaults to the most recent LTS version of node. + +###### 18.1.4.11.2. Property `root > resources > resources items > properties > buildConfig > entryPoint` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The entry point for a function resource + +##### 18.1.4.12. Property `root > resources > resources items > properties > serviceConfig` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Service configuration for a gen 2 Cloud Function + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [timeoutSeconds](#resources_items_properties_serviceConfig_timeoutSeconds ) | No | string | No | - | The function's maximum execution time. Default: 60, max value: 540. | +| - [availableMemory](#resources_items_properties_serviceConfig_availableMemory ) | No | string | No | - | The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied, the value is interpreted as bytes. | + +###### 18.1.4.12.1. Property `root > resources > resources items > properties > serviceConfig > timeoutSeconds` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The function's maximum execution time. Default: 60, max value: 540. + +###### 18.1.4.12.2. Property `root > resources > resources items > properties > serviceConfig > availableMemory` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied, the value is interpreted as bytes. + +## 19. Property `root > lifecycleEvents` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------- | ----------- | +| [lifecycleEvent](#lifecycleEvents_items) | - | + +### 19.1. root > lifecycleEvents > lifecycleEvent + +| | | +| ------------------------- | ---------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/lifecycleEvent | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------------------- | ------- | ------ | ---------- | ------------------------------------------------------ | ----------------- | +| - [onInstall](#lifecycleEvents_items_onInstall ) | No | object | No | In #/definitions/lifecycleEventSpec | - | +| - [onUpdate](#lifecycleEvents_items_onUpdate ) | No | object | No | Same as [onInstall](#lifecycleEvents_items_onInstall ) | - | +| - [onConfigure](#lifecycleEvents_items_onConfigure ) | No | object | No | Same as [onInstall](#lifecycleEvents_items_onInstall ) | - | + +#### 19.1.1. Property `root > lifecycleEvents > lifecycleEvents items > onInstall` + +| | | +| ------------------------- | -------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/lifecycleEventSpec | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| - [function](#lifecycleEvents_items_onInstall_function ) | No | string | No | - | Name of the task queue-triggered function that will handle the event. This function must be a taskQueueTriggered function declared in the resources section. | +| - [processingMessage](#lifecycleEvents_items_onInstall_processingMessage ) | No | string | No | - | Message to display in the Firebase console while the task is in progress. | + +##### 19.1.1.1. Property `root > lifecycleEvents > lifecycleEvents items > onInstall > function` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Name of the task queue-triggered function that will handle the event. This function must be a taskQueueTriggered function declared in the resources section. + +##### 19.1.1.2. Property `root > lifecycleEvents > lifecycleEvents items > onInstall > processingMessage` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Message to display in the Firebase console while the task is in progress. + +#### 19.1.2. Property `root > lifecycleEvents > lifecycleEvents items > onUpdate` + +| | | +| ------------------------- | --------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [onInstall](#lifecycleEvents_items_onInstall) | + +#### 19.1.3. Property `root > lifecycleEvents > lifecycleEvents items > onConfigure` + +| | | +| ------------------------- | --------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [onInstall](#lifecycleEvents_items_onInstall) | + +## 20. Property `root > events` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [event](#events_items) | - | + +### 20.1. root > events > event + +| | | +| ------------------------- | ------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/event | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [type](#events_items_type ) | No | string | No | - | The type identifier of the event. Construct the identifier out of 3-4 dot-delimited fields: the publisher ID, extension name, and event name fields are required; the version field is recommended. Choose a unique and descriptive event name for each event type you publish. | +| - [description](#events_items_description ) | No | string | No | - | A description of the event | + +#### 20.1.1. Property `root > events > events items > type` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The type identifier of the event. Construct the identifier out of 3-4 dot-delimited fields: the publisher ID, extension name, and event name fields are required; the version field is recommended. Choose a unique and descriptive event name for each event type you publish. + +#### 20.1.2. Property `root > events > events items > description` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** A description of the event + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2025-06-17 at 07:38:46 -0700 diff --git a/schema/docs/firebase-config.html b/schema/docs/firebase-config.html new file mode 100644 index 00000000000..a4bf7e5ac19 --- /dev/null +++ b/schema/docs/firebase-config.html @@ -0,0 +1,26890 @@ + + + + + + + + + + + + + + Schema Docs + + + + Type: object
+

Information about the resources in your Firebase project.
+This used for declarative deployments via firebase deploy and local emulation via firebase emulators:start

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: stringFormat: uri
+

Unused. Included in schema so that the schema can be applied to single files.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The App Hosting backend(s) that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

A single App Hosting deployment config

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, this backend will only be deployed from local source, not from source control.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the backend that should be deployed.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of file paths to exclude from the archive that is uploaded for this backend.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The root directory of your app. This directory will be archived and uploaded during dpeloyment.

+
+ + + + + + +
+
+
+
+
+ + + Type: array of object
+

A list of App Hosting deployment configs

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

A single App Hosting deployment config

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, this backend will only be deployed from local source, not from source control.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the backend that should be deployed.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of file paths to exclude from the archive that is uploaded for this backend.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The root directory of your app. This directory will be archived and uploaded during dpeloyment.

+
+ + + + + + +
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Realtime Database rules that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

Deployment options for a single Realtime Database instance.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The rules files for this Realtime Database instance.

+
+ + + + + + +
+
+
+
+
+ + + Type: array
+

Deployment options for a list of Realtime Database instancs.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + +
+

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The instance that this rules files is for.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The rules files for this Realtime Database instance.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The instance that this rules files is for.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The rules files for this Realtime Database instance.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Data Connect service(s) that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

A single Data Connect deployment configs

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containing dataconnect.yaml for this service

+
+ + + + + + +
+
+
+
+
+ + + Type: array
+

A list of Data Connect deployment configs

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

A single Data Connect deployment configs

+
Same definition as dataconnect_anyOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Hosts, ports, and configuration options for the Firebase Emulator suite.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the App Hosting emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The root directory of your app. The start command will ran from this directory.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The command that will be run to start your app when emulating your App Hosting backend

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Auth emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Realtime Database emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Data Connect emulator.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory to persist emulator data to. If set, data will be saved between runs automatically.
+If the --import flag is used, the current data will be overwritten by the imported data.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Host for the Postgres database that backs the Data Connect emulator.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

Port for the Postgres database that backs the Data Connect emulator.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the EventArc emulator.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Placeholder - the Extensions emulator has no configuration options.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Firestore emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Firebase Hosting emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the emulator suite hub.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the logging emulator.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Pub/Sub emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the Emulator Suite will only allow a single project to be used at a time.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Firebase Storage emulator

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Cloud Tasks emulator.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Config for the Emulator UI.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If false, the Emulator UI will not be served.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The host that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

The port that this emulator will serve on.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

The Firebase Extension(s) that should be deployed or emulated.

+
+ + + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Firestore rules and indexes that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

Deployment options for a single Firestore database.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The id of the Firestore database to deploy. If omitted, defaults to '(default)'

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore indexes file

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Firestore database to deploy. Required when 'database' is set.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore rules file

+
+ + + + + + +
+
+
+
+
+ + + Type: array
+

Deployment options for a list of Firestore databases.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + +
+

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore indexes file for this database

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore rules file for this database

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target these rules and indexes should be deployed to.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore indexes file for this database

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the firestore rules file for this database

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target these rules and indexes should be deployed to.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Cloud Functions for Firebase that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+ + + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The codebase that these functions are part of. You can use codebases to control which functions are deployed
+ ie: firebase deploy --only functions:my-codebase

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

Files in the source directory that should not be uploaed during dpeloyment.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

The runtime these functions should use.

+
+

Must be one of:

+
  • "nodejs20"
  • "nodejs22"
  • "python310"
  • "python311"
  • "python312"
  • "python313"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containing your functions source code.
+This directory will be archived and uploaded during deployment.
+Files outside of this directory will not be included and should not be referenced from your functions code.

+
+ + + + + + +
+
+
+
+
+ + + Type: array
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+Same definition as functions_anyOf_i0 +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Firebase Hosting site(s) that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

Deployment options for a single Firebase Hosting site.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+
+

Must be one of:

+
  • "AUTO"
  • "NONE"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Options for this sites web frameworks backend.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: number
+

Number of requests a function can serve at once.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string or boolean
+
+

If true, allows CORS on requests to this function.
+If this is a string or RegExp, allows requests from domains that match the provided value.
+If this is an Array, allows requests from domains matching at least one entry of the array.
+Defaults to true for {@link https.CallableFunction} and false otherwise.

+ +
+
+ +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

Fractional number of CPUs to allocate to a function.

+

+ +

+
+ + + Type: const
+Specific value: "gcf_gen1" + + + + + + +
+ + + Type: number
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Determines whether Firebase AppCheck is enforced. Defaults to false.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Ingress settings which control where this function can be called from.

+
+

Must be one of:

+
  • "ALLOW_ALL"
  • "ALLOW_INTERNAL_AND_GCLB"
  • "ALLOW_INTERNAL_ONLY"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: const
+

Invoker to set access control on https functions.

+
Specific value: "public" + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

User labels to set on the function.

+
+ + + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

Max number of instances to be running in parallel.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Amount of memory to allocate to a function.

+
+

Must be one of:

+
  • "128MiB"
  • "16GiB"
  • "1GiB"
  • "256MiB"
  • "2GiB"
  • "32GiB"
  • "4GiB"
  • "512MiB"
  • "8GiB"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

Min number of actual instances to be running at a given time.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, do not deploy or emulate this function.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

Controls whether function configuration modified outside of function source is preserved. Defaults to false.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

HTTP functions can override global options and can specify multiple regions to deploy to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of secrets used in this app.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Specific service account for the function to run as.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: number
+

Timeout for the function in seconds, possible values are 0 to 540.
+HTTPS functions can specify a higher timeout.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Connect cloud function to specified VPC connector.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+

Egress settings for VPC connector.

+
+

Must be one of:

+
  • "ALL_TRAFFIC"
  • "PRIVATE_RANGES_ONLY"
+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of extra headers to send when serving specific paths on this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Extra headers that should be sent when serving this path.

+
+ +

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of object
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The header to set.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The value to set this header to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: array of object
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The header to set.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The value to set this header to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: array of object
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The header to set.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The value to set this header to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Internationalization config for this site.
+See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
+for instructions on how to enable interntionalization for your site.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containing internationalization rewrites.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of paths or globs within the source directory that should not be included in the uploaded archive.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Whether this site should publically available.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of redirects for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

URL redirects for a hosting site. Use these to prevent broken links when moving pages.

+
+ +

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The destination to redirect to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of integer)
+

The type of redirect.
+Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)

+
+

Must be one of:

+
  • 301
  • 302
+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The destination to redirect to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of integer)
+

The type of redirect.
+Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)

+
+

Must be one of:

+
  • 301
  • 302
+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The destination to redirect to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: enum (of integer)
+

The type of redirect.
+Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)

+
+

Must be one of:

+
  • 301
  • 302
+
+ + + + + + +
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list o rewrites for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service.

+
+ +

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running version of the Cloud Function.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A glob pattern describing the paths that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running version of the Cloud Function.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A file path that this setting should apply to.

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+ + + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running version of the Cloud Function.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Function to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+

If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The region of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The ID of the Cloud Run service to rewrite to.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A regex pattern that matches the paths that this setting should apply to. *

+
+ + + + + + +
+
+
+
+
+ + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The site to deploy.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory containing this site's source code. This will be archived and uploaded during deployment.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target to deploy.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+ + + Type: array
+

Deployment options for a list of Firebase Hosting sites.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + +
+

+ +

+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+
+

Must be one of:

+
  • "AUTO"
  • "NONE"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Options for this sites web frameworks backend.

+
Same definition as frameworksBackend +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of extra headers to send when serving specific paths on this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Extra headers that should be sent when serving this path.

+
Same definition as hosting_anyOf_i0_headers_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Internationalization config for this site.
+See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
+for instructions on how to enable interntionalization for your site.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containing internationalization rewrites.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of paths or globs within the source directory that should not be included in the uploaded archive.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Whether this site should publically available.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of redirects for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

URL redirects for a hosting site. Use these to prevent broken links when moving pages.

+
Same definition as hosting_anyOf_i0_redirects_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list o rewrites for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service.

+
Same definition as hosting_anyOf_i0_rewrites_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The site to deploy

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory containing this site's source code. This will be archived and uploaded during deployment.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target to deploy.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: enum (of string)
+
+

Must be one of:

+
  • "AUTO"
  • "NONE"
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Options for this sites web frameworks backend.

+
Same definition as frameworksBackend +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of extra headers to send when serving specific paths on this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Extra headers that should be sent when serving this path.

+
Same definition as hosting_anyOf_i0_headers_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

Internationalization config for this site.
+See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
+for instructions on how to enable interntionalization for your site.

+
No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The directory containing internationalization rewrites.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array of string
+

A list of paths or globs within the source directory that should not be included in the uploaded archive.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Whether this site should publically available.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list of redirects for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

URL redirects for a hosting site. Use these to prevent broken links when moving pages.

+
Same definition as hosting_anyOf_i0_redirects_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: array
+

A list o rewrites for this site.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+

Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service.

+
Same definition as hosting_anyOf_i0_rewrites_items +
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The site to deploy

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the directory containing this site's source code. This will be archived and uploaded during deployment.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target to deploy.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: boolean
+ + + + + + + +
+
+
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: object
+

The Remote Config template(s) used by this project.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

A path to a CJSON file containing a Remote Config template.

+
+ + + + + + +
+
+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

The Firebase Storage rules that should be deployed or emulated.

+

+ +

+
+ + + Type: object
+

Deployment options for a single Firebase storage bucket.

+
+ + No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the rules files for this Firebase Storage bucket.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target to these Storage rules to.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+ + + Type: array of object
+

Deployment options for multiple Firebase storage buckets.

+
+ + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: object
+ No Additional Properties + + + + + + +
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The Firebase Storage bucket that this config is for.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran after this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ +
+

A script or list of scripts that will be ran before this product is deployed.

+

+ +

+
+ + + Type: array of string
+ + + + + + + No Additional Items

Each item of this array must be:

+
+
+ + + Type: string
+ + + + + + + +
+
+
+ + + Type: string
+ + + + + + + +
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

Path to the rules files for this Firebase Storage bucket.

+
+ + + + + + +
+
+
+
+
+
+
+

+ +

+
+ +
+
+ + Type: string
+

The deploy target to these Storage rules to.
+See https://firebase.google.com/docs/cli/targets to learn more about deploy targets.

+
+ + + + + + +
+
+
+
+
+
+
+ + + + + + +
+
+
+
+ + + \ No newline at end of file diff --git a/schema/docs/firebase-config.md b/schema/docs/firebase-config.md new file mode 100644 index 00000000000..1e151b678ab --- /dev/null +++ b/schema/docs/firebase-config.md @@ -0,0 +1,4933 @@ +# Schema Docs + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Information about the resources in your Firebase project. +This used for declarative deployments via `firebase deploy` and local emulation via `firebase emulators:start` + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------- | ------- | ----------- | ---------- | ----------------------------------- | ----------------------------------------------------------------------------- | +| - [$schema](#schema ) | No | string | No | - | Unused. Included in schema so that the schema can be applied to single files. | +| - [apphosting](#apphosting ) | No | Combination | No | - | The App Hosting backend(s) that should be deployed or emulated. | +| - [database](#database ) | No | Combination | No | - | The Realtime Database rules that should be deployed or emulated. | +| - [dataconnect](#dataconnect ) | No | Combination | No | - | The Data Connect service(s) that should be deployed or emulated. | +| - [emulators](#emulators ) | No | object | No | - | Hosts, ports, and configuration options for the Firebase Emulator suite. | +| - [extensions](#extensions ) | No | object | No | In #/definitions/ExtensionsConfig | The Firebase Extension(s) that should be deployed or emulated. | +| - [firestore](#firestore ) | No | Combination | No | - | The Firestore rules and indexes that should be deployed or emulated. | +| - [functions](#functions ) | No | Combination | No | - | The Cloud Functions for Firebase that should be deployed or emulated. | +| - [hosting](#hosting ) | No | Combination | No | - | The Firebase Hosting site(s) that should be deployed or emulated. | +| - [remoteconfig](#remoteconfig ) | No | object | No | In #/definitions/RemoteConfigConfig | The Remote Config template(s) used by this project. | +| - [storage](#storage ) | No | Combination | No | - | The Firebase Storage rules that should be deployed or emulated. | + +## 1. Property `root > $schema` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | +| **Format** | `uri` | + +**Description:** Unused. Included in schema so that the schema can be applied to single files. + +## 2. Property `root > apphosting` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The App Hosting backend(s) that should be deployed or emulated. + +| Any of(Option) | +| ------------------------------ | +| [item 0](#apphosting_anyOf_i0) | +| [item 1](#apphosting_anyOf_i1) | + +### 2.1. Property `root > apphosting > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** A single App Hosting deployment config + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | --------------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------- | +| - [alwaysDeployFromSource](#apphosting_anyOf_i0_alwaysDeployFromSource ) | No | boolean | No | - | If true, this backend will only be deployed from local source, not from source control. | +| + [backendId](#apphosting_anyOf_i0_backendId ) | No | string | No | - | The ID of the backend that should be deployed. | +| + [ignore](#apphosting_anyOf_i0_ignore ) | No | array of string | No | - | A list of file paths to exclude from the archive that is uploaded for this backend. | +| + [rootDir](#apphosting_anyOf_i0_rootDir ) | No | string | No | - | The root directory of your app. This directory will be archived and uploaded during dpeloyment. | + +#### 2.1.1. Property `root > apphosting > anyOf > item 0 > alwaysDeployFromSource` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, this backend will only be deployed from local source, not from source control. + +#### 2.1.2. Property `root > apphosting > anyOf > item 0 > backendId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the backend that should be deployed. + +#### 2.1.3. Property `root > apphosting > anyOf > item 0 > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | Yes | + +**Description:** A list of file paths to exclude from the archive that is uploaded for this backend. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------- | ----------- | +| [ignore items](#apphosting_anyOf_i0_ignore_items) | - | + +##### 2.1.3.1. root > apphosting > anyOf > item 0 > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 2.1.4. Property `root > apphosting > anyOf > item 0 > rootDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The root directory of your app. This directory will be archived and uploaded during dpeloyment. + +### 2.2. Property `root > apphosting > anyOf > item 1` + +| | | +| ------------ | ----------------- | +| **Type** | `array of object` | +| **Required** | No | + +**Description:** A list of App Hosting deployment configs + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------ | -------------------------------------- | +| [item 1 items](#apphosting_anyOf_i1_items) | A single App Hosting deployment config | + +#### 2.2.1. root > apphosting > anyOf > item 1 > item 1 items + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** A single App Hosting deployment config + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------ | ------- | --------------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------- | +| - [alwaysDeployFromSource](#apphosting_anyOf_i1_items_alwaysDeployFromSource ) | No | boolean | No | - | If true, this backend will only be deployed from local source, not from source control. | +| + [backendId](#apphosting_anyOf_i1_items_backendId ) | No | string | No | - | The ID of the backend that should be deployed. | +| + [ignore](#apphosting_anyOf_i1_items_ignore ) | No | array of string | No | - | A list of file paths to exclude from the archive that is uploaded for this backend. | +| + [rootDir](#apphosting_anyOf_i1_items_rootDir ) | No | string | No | - | The root directory of your app. This directory will be archived and uploaded during dpeloyment. | + +##### 2.2.1.1. Property `root > apphosting > anyOf > item 1 > item 1 items > alwaysDeployFromSource` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, this backend will only be deployed from local source, not from source control. + +##### 2.2.1.2. Property `root > apphosting > anyOf > item 1 > item 1 items > backendId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the backend that should be deployed. + +##### 2.2.1.3. Property `root > apphosting > anyOf > item 1 > item 1 items > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | Yes | + +**Description:** A list of file paths to exclude from the archive that is uploaded for this backend. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [ignore items](#apphosting_anyOf_i1_items_ignore_items) | - | + +###### 2.2.1.3.1. root > apphosting > anyOf > item 1 > item 1 items > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 2.2.1.4. Property `root > apphosting > anyOf > item 1 > item 1 items > rootDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The root directory of your app. This directory will be archived and uploaded during dpeloyment. + +## 3. Property `root > database` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Realtime Database rules that should be deployed or emulated. + +| Any of(Option) | +| ------------------------------------ | +| [DatabaseSingle](#database_anyOf_i0) | +| [item 1](#database_anyOf_i1) | + +### 3.1. Property `root > database > anyOf > DatabaseSingle` + +| | | +| ------------------------- | ---------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/DatabaseSingle | + +**Description:** Deployment options for a single Realtime Database instance. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------------- | ------- | ----------- | ---------- | ---------- | ----------------------------------------------------------------------------- | +| - [postdeploy](#database_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#database_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [rules](#database_anyOf_i0_rules ) | No | string | No | - | The rules files for this Realtime Database instance. | + +#### 3.1.1. Property `root > database > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ------------------------------------------------ | +| [item 0](#database_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#database_anyOf_i0_postdeploy_anyOf_i1) | + +##### 3.1.1.1. Property `root > database > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ----------- | +| [item 0 items](#database_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 3.1.1.1.1. root > database > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 3.1.1.2. Property `root > database > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 3.1.2. Property `root > database > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ----------------------------------------------- | +| [item 0](#database_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#database_anyOf_i0_predeploy_anyOf_i1) | + +##### 3.1.2.1. Property `root > database > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------- | +| [item 0 items](#database_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 3.1.2.1.1. root > database > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 3.1.2.2. Property `root > database > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 3.1.3. Property `root > database > anyOf > item 0 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The rules files for this Realtime Database instance. + +### 3.2. Property `root > database > anyOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Deployment options for a list of Realtime Database instancs. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------- | ----------- | +| [item 1 items](#database_anyOf_i1_items) | - | + +#### 3.2.1. root > database > anyOf > item 1 > item 1 items + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +| Any of(Option) | +| ------------------------------------------- | +| [item 0](#database_anyOf_i1_items_anyOf_i0) | +| [item 1](#database_anyOf_i1_items_anyOf_i1) | + +##### 3.2.1.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ----------------------------------------------------------------------------- | +| + [instance](#database_anyOf_i1_items_anyOf_i0_instance ) | No | string | No | - | The instance that this rules files is for. | +| - [postdeploy](#database_anyOf_i1_items_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#database_anyOf_i1_items_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [rules](#database_anyOf_i1_items_anyOf_i0_rules ) | No | string | No | - | The rules files for this Realtime Database instance. | +| - [target](#database_anyOf_i1_items_anyOf_i0_target ) | No | string | No | - | - | + +###### 3.2.1.1.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > instance` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The instance that this rules files is for. + +###### 3.2.1.1.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| --------------------------------------------------------------- | +| [item 0](#database_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#database_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i1) | + +###### 3.2.1.1.2.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------------------------------- | ----------- | +| [item 0 items](#database_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 3.2.1.1.2.1.1. root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.1.2.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.1.3. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| -------------------------------------------------------------- | +| [item 0](#database_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#database_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i1) | + +###### 3.2.1.1.3.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [item 0 items](#database_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 3.2.1.1.3.1.1. root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.1.3.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.1.4. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The rules files for this Realtime Database instance. + +###### 3.2.1.1.5. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 0 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 3.2.1.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ----------------------------------------------------------------------------- | +| - [instance](#database_anyOf_i1_items_anyOf_i1_instance ) | No | string | No | - | The instance that this rules files is for. | +| - [postdeploy](#database_anyOf_i1_items_anyOf_i1_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#database_anyOf_i1_items_anyOf_i1_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [rules](#database_anyOf_i1_items_anyOf_i1_rules ) | No | string | No | - | The rules files for this Realtime Database instance. | +| + [target](#database_anyOf_i1_items_anyOf_i1_target ) | No | string | No | - | - | + +###### 3.2.1.2.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > instance` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The instance that this rules files is for. + +###### 3.2.1.2.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| --------------------------------------------------------------- | +| [item 0](#database_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0) | +| [item 1](#database_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i1) | + +###### 3.2.1.2.2.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------------------------------- | ----------- | +| [item 0 items](#database_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0_items) | - | + +###### 3.2.1.2.2.1.1. root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.2.2.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.2.3. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| -------------------------------------------------------------- | +| [item 0](#database_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0) | +| [item 1](#database_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i1) | + +###### 3.2.1.2.3.1. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [item 0 items](#database_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0_items) | - | + +###### 3.2.1.2.3.1.1. root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.2.3.2. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 3.2.1.2.4. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The rules files for this Realtime Database instance. + +###### 3.2.1.2.5. Property `root > database > anyOf > item 1 > item 1 items > anyOf > item 1 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +## 4. Property `root > dataconnect` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Data Connect service(s) that should be deployed or emulated. + +| Any of(Option) | +| ------------------------------------------ | +| [DataConnectSingle](#dataconnect_anyOf_i0) | +| [item 1](#dataconnect_anyOf_i1) | + +### 4.1. Property `root > dataconnect > anyOf > DataConnectSingle` + +| | | +| ------------------------- | ------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/DataConnectSingle | + +**Description:** A single Data Connect deployment configs + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ----------------------------------------------------------------------------- | +| - [postdeploy](#dataconnect_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#dataconnect_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [source](#dataconnect_anyOf_i0_source ) | No | string | No | - | The directory containing dataconnect.yaml for this service | + +#### 4.1.1. Property `root > dataconnect > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| --------------------------------------------------- | +| [item 0](#dataconnect_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#dataconnect_anyOf_i0_postdeploy_anyOf_i1) | + +##### 4.1.1.1. Property `root > dataconnect > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------------------- | ----------- | +| [item 0 items](#dataconnect_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 4.1.1.1.1. root > dataconnect > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 4.1.1.2. Property `root > dataconnect > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 4.1.2. Property `root > dataconnect > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| -------------------------------------------------- | +| [item 0](#dataconnect_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#dataconnect_anyOf_i0_predeploy_anyOf_i1) | + +##### 4.1.2.1. Property `root > dataconnect > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------- | ----------- | +| [item 0 items](#dataconnect_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 4.1.2.1.1. root > dataconnect > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 4.1.2.2. Property `root > dataconnect > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 4.1.3. Property `root > dataconnect > anyOf > item 0 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The directory containing dataconnect.yaml for this service + +### 4.2. Property `root > dataconnect > anyOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of Data Connect deployment configs + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------ | ---------------------------------------- | +| [DataConnectSingle](#dataconnect_anyOf_i1_items) | A single Data Connect deployment configs | + +#### 4.2.1. root > dataconnect > anyOf > item 1 > DataConnectSingle + +| | | +| ------------------------- | --------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [dataconnect_anyOf_i0](#dataconnect_anyOf_i0) | + +**Description:** A single Data Connect deployment configs + +## 5. Property `root > emulators` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Hosts, ports, and configuration options for the Firebase Emulator suite. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------------------------------- | +| - [apphosting](#emulators_apphosting ) | No | object | No | - | Config for the App Hosting emulator | +| - [auth](#emulators_auth ) | No | object | No | - | Config for the Auth emulator | +| - [database](#emulators_database ) | No | object | No | - | Config for the Realtime Database emulator | +| - [dataconnect](#emulators_dataconnect ) | No | object | No | - | Config for the Data Connect emulator. | +| - [eventarc](#emulators_eventarc ) | No | object | No | - | Config for the EventArc emulator. | +| - [extensions](#emulators_extensions ) | No | object | No | - | Placeholder - the Extensions emulator has no configuration options. | +| - [firestore](#emulators_firestore ) | No | object | No | - | Config for the Firestore emulator | +| - [hosting](#emulators_hosting ) | No | object | No | - | Config for the Firebase Hosting emulator | +| - [hub](#emulators_hub ) | No | object | No | - | Config for the emulator suite hub. | +| - [logging](#emulators_logging ) | No | object | No | - | Config for the logging emulator. | +| - [pubsub](#emulators_pubsub ) | No | object | No | - | Config for the Pub/Sub emulator | +| - [singleProjectMode](#emulators_singleProjectMode ) | No | boolean | No | - | If true, the Emulator Suite will only allow a single project to be used at a time. | +| - [storage](#emulators_storage ) | No | object | No | - | Config for the Firebase Storage emulator | +| - [tasks](#emulators_tasks ) | No | object | No | - | Config for the Cloud Tasks emulator. | +| - [ui](#emulators_ui ) | No | object | No | - | Config for the Emulator UI. | + +### 5.1. Property `root > emulators > apphosting` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the App Hosting emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | -------------------------------------------------------------------------------------- | +| - [host](#emulators_apphosting_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_apphosting_port ) | No | number | No | - | The port that this emulator will serve on. | +| - [rootDirectory](#emulators_apphosting_rootDirectory ) | No | string | No | - | The root directory of your app. The start command will ran from this directory. | +| - [startCommand](#emulators_apphosting_startCommand ) | No | string | No | - | The command that will be run to start your app when emulating your App Hosting backend | +| - [startCommandOverride](#emulators_apphosting_startCommandOverride ) | No | string | No | - | - | + +#### 5.1.1. Property `root > emulators > apphosting > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.1.2. Property `root > emulators > apphosting > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +#### 5.1.3. Property `root > emulators > apphosting > rootDirectory` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The root directory of your app. The start command will ran from this directory. + +#### 5.1.4. Property `root > emulators > apphosting > startCommand` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The command that will be run to start your app when emulating your App Hosting backend + +#### 5.1.5. Property `root > emulators > apphosting > startCommandOverride` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +### 5.2. Property `root > emulators > auth` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Auth emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_auth_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_auth_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.2.1. Property `root > emulators > auth > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.2.2. Property `root > emulators > auth > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.3. Property `root > emulators > database` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Realtime Database emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_database_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_database_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.3.1. Property `root > emulators > database > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.3.2. Property `root > emulators > database > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.4. Property `root > emulators > dataconnect` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Data Connect emulator. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------ | ------- | ------ | ---------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [dataDir](#emulators_dataconnect_dataDir ) | No | string | No | - | The directory to persist emulator data to. If set, data will be saved between runs automatically.
If the --import flag is used, the current data will be overwritten by the imported data. | +| - [host](#emulators_dataconnect_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_dataconnect_port ) | No | number | No | - | The port that this emulator will serve on. | +| - [postgresHost](#emulators_dataconnect_postgresHost ) | No | string | No | - | Host for the Postgres database that backs the Data Connect emulator. | +| - [postgresPort](#emulators_dataconnect_postgresPort ) | No | number | No | - | Port for the Postgres database that backs the Data Connect emulator. | + +#### 5.4.1. Property `root > emulators > dataconnect > dataDir` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The directory to persist emulator data to. If set, data will be saved between runs automatically. +If the --import flag is used, the current data will be overwritten by the imported data. + +#### 5.4.2. Property `root > emulators > dataconnect > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.4.3. Property `root > emulators > dataconnect > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +#### 5.4.4. Property `root > emulators > dataconnect > postgresHost` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Host for the Postgres database that backs the Data Connect emulator. + +#### 5.4.5. Property `root > emulators > dataconnect > postgresPort` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** Port for the Postgres database that backs the Data Connect emulator. + +### 5.5. Property `root > emulators > eventarc` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the EventArc emulator. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_eventarc_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_eventarc_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.5.1. Property `root > emulators > eventarc > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.5.2. Property `root > emulators > eventarc > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.6. Property `root > emulators > extensions` + +| | | +| ------------------------- | ---------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Placeholder - the Extensions emulator has no configuration options. + +### 5.7. Property `root > emulators > firestore` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Firestore emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------ | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_firestore_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_firestore_port ) | No | number | No | - | The port that this emulator will serve on. | +| - [websocketPort](#emulators_firestore_websocketPort ) | No | number | No | - | - | + +#### 5.7.1. Property `root > emulators > firestore > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.7.2. Property `root > emulators > firestore > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +#### 5.7.3. Property `root > emulators > firestore > websocketPort` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +### 5.8. Property `root > emulators > hosting` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Firebase Hosting emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_hosting_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_hosting_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.8.1. Property `root > emulators > hosting > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.8.2. Property `root > emulators > hosting > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.9. Property `root > emulators > hub` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the emulator suite hub. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------ | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_hub_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_hub_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.9.1. Property `root > emulators > hub > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.9.2. Property `root > emulators > hub > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.10. Property `root > emulators > logging` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the logging emulator. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_logging_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_logging_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.10.1. Property `root > emulators > logging > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.10.2. Property `root > emulators > logging > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.11. Property `root > emulators > pubsub` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Pub/Sub emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_pubsub_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_pubsub_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.11.1. Property `root > emulators > pubsub > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.11.2. Property `root > emulators > pubsub > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.12. Property `root > emulators > singleProjectMode` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the Emulator Suite will only allow a single project to be used at a time. + +### 5.13. Property `root > emulators > storage` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Firebase Storage emulator + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ---------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_storage_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_storage_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.13.1. Property `root > emulators > storage > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.13.2. Property `root > emulators > storage > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.14. Property `root > emulators > tasks` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Cloud Tasks emulator. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------ | +| - [host](#emulators_tasks_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_tasks_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.14.1. Property `root > emulators > tasks > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.14.2. Property `root > emulators > tasks > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +### 5.15. Property `root > emulators > ui` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Config for the Emulator UI. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------- | ------- | ------- | ---------- | ---------- | --------------------------------------------- | +| - [enabled](#emulators_ui_enabled ) | No | boolean | No | - | If false, the Emulator UI will not be served. | +| - [host](#emulators_ui_host ) | No | string | No | - | The host that this emulator will serve on. | +| - [port](#emulators_ui_port ) | No | number | No | - | The port that this emulator will serve on. | + +#### 5.15.1. Property `root > emulators > ui > enabled` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If false, the Emulator UI will not be served. + +#### 5.15.2. Property `root > emulators > ui > host` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The host that this emulator will serve on. + +#### 5.15.3. Property `root > emulators > ui > port` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** The port that this emulator will serve on. + +## 6. Property `root > extensions` + +| | | +| ------------------------- | ------------------------------ | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/ExtensionsConfig | + +**Description:** The Firebase Extension(s) that should be deployed or emulated. + +## 7. Property `root > firestore` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Firestore rules and indexes that should be deployed or emulated. + +| Any of(Option) | +| -------------------------------------- | +| [FirestoreSingle](#firestore_anyOf_i0) | +| [item 1](#firestore_anyOf_i1) | + +### 7.1. Property `root > firestore > anyOf > FirestoreSingle` + +| | | +| ------------------------- | ----------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/FirestoreSingle | + +**Description:** Deployment options for a single Firestore database. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------- | ------- | ----------- | ---------- | ---------- | -------------------------------------------------------------------------------- | +| - [database](#firestore_anyOf_i0_database ) | No | string | No | - | The id of the Firestore database to deploy. If omitted, defaults to '(default)' | +| - [indexes](#firestore_anyOf_i0_indexes ) | No | string | No | - | Path to the firestore indexes file | +| - [location](#firestore_anyOf_i0_location ) | No | string | No | - | The region of the Firestore database to deploy. Required when 'database' is set. | +| - [postdeploy](#firestore_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#firestore_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [rules](#firestore_anyOf_i0_rules ) | No | string | No | - | Path to the firestore rules file | + +#### 7.1.1. Property `root > firestore > anyOf > item 0 > database` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The id of the Firestore database to deploy. If omitted, defaults to '(default)' + +#### 7.1.2. Property `root > firestore > anyOf > item 0 > indexes` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore indexes file + +#### 7.1.3. Property `root > firestore > anyOf > item 0 > location` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Firestore database to deploy. Required when 'database' is set. + +#### 7.1.4. Property `root > firestore > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ------------------------------------------------- | +| [item 0](#firestore_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i0_postdeploy_anyOf_i1) | + +##### 7.1.4.1. Property `root > firestore > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------- | ----------- | +| [item 0 items](#firestore_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 7.1.4.1.1. root > firestore > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 7.1.4.2. Property `root > firestore > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 7.1.5. Property `root > firestore > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ------------------------------------------------ | +| [item 0](#firestore_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i0_predeploy_anyOf_i1) | + +##### 7.1.5.1. Property `root > firestore > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ----------- | +| [item 0 items](#firestore_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 7.1.5.1.1. root > firestore > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 7.1.5.2. Property `root > firestore > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 7.1.6. Property `root > firestore > anyOf > item 0 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore rules file + +### 7.2. Property `root > firestore > anyOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Deployment options for a list of Firestore databases. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [item 1 items](#firestore_anyOf_i1_items) | - | + +#### 7.2.1. root > firestore > anyOf > item 1 > item 1 items + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +| Any of(Option) | +| -------------------------------------------- | +| [item 0](#firestore_anyOf_i1_items_anyOf_i0) | +| [item 1](#firestore_anyOf_i1_items_anyOf_i1) | + +##### 7.2.1.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [database](#firestore_anyOf_i1_items_anyOf_i0_database ) | No | string | No | - | The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases. | +| - [indexes](#firestore_anyOf_i1_items_anyOf_i0_indexes ) | No | string | No | - | Path to the firestore indexes file for this database | +| - [postdeploy](#firestore_anyOf_i1_items_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#firestore_anyOf_i1_items_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [rules](#firestore_anyOf_i1_items_anyOf_i0_rules ) | No | string | No | - | Path to the firestore rules file for this database | +| + [target](#firestore_anyOf_i1_items_anyOf_i0_target ) | No | string | No | - | The deploy target these rules and indexes should be deployed to.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | + +###### 7.2.1.1.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > database` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases. + +###### 7.2.1.1.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > indexes` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore indexes file for this database + +###### 7.2.1.1.3. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ---------------------------------------------------------------- | +| [item 0](#firestore_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i1) | + +###### 7.2.1.1.3.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------- | ----------- | +| [item 0 items](#firestore_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 7.2.1.1.3.1.1. root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.1.3.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.1.4. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| --------------------------------------------------------------- | +| [item 0](#firestore_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i1) | + +###### 7.2.1.1.4.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------------------------------- | ----------- | +| [item 0 items](#firestore_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 7.2.1.1.4.1.1. root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.1.4.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.1.5. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore rules file for this database + +###### 7.2.1.1.6. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 0 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The deploy target these rules and indexes should be deployed to. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +##### 7.2.1.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------- | ------- | ----------- | ---------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| + [database](#firestore_anyOf_i1_items_anyOf_i1_database ) | No | string | No | - | The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases. | +| - [indexes](#firestore_anyOf_i1_items_anyOf_i1_indexes ) | No | string | No | - | Path to the firestore indexes file for this database | +| - [postdeploy](#firestore_anyOf_i1_items_anyOf_i1_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#firestore_anyOf_i1_items_anyOf_i1_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [rules](#firestore_anyOf_i1_items_anyOf_i1_rules ) | No | string | No | - | Path to the firestore rules file for this database | +| - [target](#firestore_anyOf_i1_items_anyOf_i1_target ) | No | string | No | - | The deploy target these rules and indexes should be deployed to.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | + +###### 7.2.1.2.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > database` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases. + +###### 7.2.1.2.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > indexes` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore indexes file for this database + +###### 7.2.1.2.3. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ---------------------------------------------------------------- | +| [item 0](#firestore_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i1) | + +###### 7.2.1.2.3.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------------------- | ----------- | +| [item 0 items](#firestore_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0_items) | - | + +###### 7.2.1.2.3.1.1. root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.2.3.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.2.4. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| --------------------------------------------------------------- | +| [item 0](#firestore_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0) | +| [item 1](#firestore_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i1) | + +###### 7.2.1.2.4.1. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------------------------------- | ----------- | +| [item 0 items](#firestore_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0_items) | - | + +###### 7.2.1.2.4.1.1. root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.2.4.2. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 7.2.1.2.5. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the firestore rules file for this database + +###### 7.2.1.2.6. Property `root > firestore > anyOf > item 1 > item 1 items > anyOf > item 1 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The deploy target these rules and indexes should be deployed to. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +## 8. Property `root > functions` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Cloud Functions for Firebase that should be deployed or emulated. + +| Any of(Option) | +| ------------------------------------- | +| [FunctionConfig](#functions_anyOf_i0) | +| [item 1](#functions_anyOf_i1) | + +### 8.1. Property `root > functions > anyOf > FunctionConfig` + +| | | +| ------------------------- | ---------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/FunctionConfig | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------- | ------- | ---------------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| - [codebase](#functions_anyOf_i0_codebase ) | No | string | No | - | The codebase that these functions are part of. You can use codebases to control which functions are deployed
ie: \`firebase deploy --only functions:my-codebase\` | +| - [ignore](#functions_anyOf_i0_ignore ) | No | array of string | No | - | Files in the source directory that should not be uploaed during dpeloyment. | +| - [postdeploy](#functions_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#functions_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [runtime](#functions_anyOf_i0_runtime ) | No | enum (of string) | No | - | The runtime these functions should use. | +| - [source](#functions_anyOf_i0_source ) | No | string | No | - | The directory containing your functions source code.
This directory will be archived and uploaded during deployment.
Files outside of this directory will not be included and should not be referenced from your functions code. | + +#### 8.1.1. Property `root > functions > anyOf > item 0 > codebase` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The codebase that these functions are part of. You can use codebases to control which functions are deployed + ie: `firebase deploy --only functions:my-codebase` + +#### 8.1.2. Property `root > functions > anyOf > item 0 > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** Files in the source directory that should not be uploaed during dpeloyment. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------ | ----------- | +| [ignore items](#functions_anyOf_i0_ignore_items) | - | + +##### 8.1.2.1. root > functions > anyOf > item 0 > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 8.1.3. Property `root > functions > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ------------------------------------------------- | +| [item 0](#functions_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#functions_anyOf_i0_postdeploy_anyOf_i1) | + +##### 8.1.3.1. Property `root > functions > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------- | ----------- | +| [item 0 items](#functions_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 8.1.3.1.1. root > functions > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 8.1.3.2. Property `root > functions > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 8.1.4. Property `root > functions > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ------------------------------------------------ | +| [item 0](#functions_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#functions_anyOf_i0_predeploy_anyOf_i1) | + +##### 8.1.4.1. Property `root > functions > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ----------- | +| [item 0 items](#functions_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 8.1.4.1.1. root > functions > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 8.1.4.2. Property `root > functions > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 8.1.5. Property `root > functions > anyOf > item 0 > runtime` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** The runtime these functions should use. + +Must be one of: +* "nodejs20" +* "nodejs22" +* "python310" +* "python311" +* "python312" +* "python313" + +#### 8.1.6. Property `root > functions > anyOf > item 0 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The directory containing your functions source code. +This directory will be archived and uploaded during deployment. +Files outside of this directory will not be included and should not be referenced from your functions code. + +### 8.2. Property `root > functions > anyOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------- | ----------- | +| [FunctionConfig](#functions_anyOf_i1_items) | - | + +#### 8.2.1. root > functions > anyOf > item 1 > FunctionConfig + +| | | +| ------------------------- | ----------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [functions_anyOf_i0](#functions_anyOf_i0) | + +## 9. Property `root > hosting` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Firebase Hosting site(s) that should be deployed or emulated. + +| Any of(Option) | +| ---------------------------------- | +| [HostingSingle](#hosting_anyOf_i0) | +| [item 1](#hosting_anyOf_i1) | + +### 9.1. Property `root > hosting > anyOf > HostingSingle` + +| | | +| ------------------------- | --------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/HostingSingle | + +**Description:** Deployment options for a single Firebase Hosting site. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [appAssociation](#hosting_anyOf_i0_appAssociation ) | No | enum (of string) | No | - | - | +| - [cleanUrls](#hosting_anyOf_i0_cleanUrls ) | No | boolean | No | - | - | +| - [frameworksBackend](#hosting_anyOf_i0_frameworksBackend ) | No | object | No | In #/definitions/FrameworksBackendOptions | Options for this sites web frameworks backend. | +| - [headers](#hosting_anyOf_i0_headers ) | No | array | No | - | A list of extra headers to send when serving specific paths on this site. | +| - [i18n](#hosting_anyOf_i0_i18n ) | No | object | No | - | Internationalization config for this site.
See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
for instructions on how to enable interntionalization for your site. | +| - [ignore](#hosting_anyOf_i0_ignore ) | No | array of string | No | - | A list of paths or globs within the source directory that should not be included in the uploaded archive. | +| - [postdeploy](#hosting_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#hosting_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [public](#hosting_anyOf_i0_public ) | No | string | No | - | Whether this site should publically available. | +| - [redirects](#hosting_anyOf_i0_redirects ) | No | array | No | - | A list of redirects for this site. | +| - [rewrites](#hosting_anyOf_i0_rewrites ) | No | array | No | - | A list o rewrites for this site. | +| - [site](#hosting_anyOf_i0_site ) | No | string | No | - | The site to deploy. | +| - [source](#hosting_anyOf_i0_source ) | No | string | No | - | Path to the directory containing this site's source code. This will be archived and uploaded during deployment. | +| - [target](#hosting_anyOf_i0_target ) | No | string | No | - | The deploy target to deploy.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | +| - [trailingSlash](#hosting_anyOf_i0_trailingSlash ) | No | boolean | No | - | - | + +#### 9.1.1. Property `root > hosting > anyOf > item 0 > appAssociation` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +Must be one of: +* "AUTO" +* "NONE" + +#### 9.1.2. Property `root > hosting > anyOf > item 0 > cleanUrls` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +#### 9.1.3. Property `root > hosting > anyOf > item 0 > frameworksBackend` + +| | | +| ------------------------- | -------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/FrameworksBackendOptions | + +**Description:** Options for this sites web frameworks backend. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------------------------------- | ------- | ----------------- | ---------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [concurrency](#hosting_anyOf_i0_frameworksBackend_concurrency ) | No | number | No | - | Number of requests a function can serve at once. | +| - [cors](#hosting_anyOf_i0_frameworksBackend_cors ) | No | string or boolean | No | - | If true, allows CORS on requests to this function.
If this is a \`string\` or \`RegExp\`, allows requests from domains that match the provided value.
If this is an \`Array\`, allows requests from domains matching at least one entry of the array.
Defaults to true for {@link https.CallableFunction} and false otherwise. | +| - [cpu](#hosting_anyOf_i0_frameworksBackend_cpu ) | No | Combination | No | - | Fractional number of CPUs to allocate to a function. | +| - [enforceAppCheck](#hosting_anyOf_i0_frameworksBackend_enforceAppCheck ) | No | boolean | No | - | Determines whether Firebase AppCheck is enforced. Defaults to false. | +| - [ingressSettings](#hosting_anyOf_i0_frameworksBackend_ingressSettings ) | No | enum (of string) | No | - | Ingress settings which control where this function can be called from. | +| - [invoker](#hosting_anyOf_i0_frameworksBackend_invoker ) | No | const | No | - | Invoker to set access control on https functions. | +| - [labels](#hosting_anyOf_i0_frameworksBackend_labels ) | No | object | No | In #/definitions/Record | User labels to set on the function. | +| - [maxInstances](#hosting_anyOf_i0_frameworksBackend_maxInstances ) | No | number | No | - | Max number of instances to be running in parallel. | +| - [memory](#hosting_anyOf_i0_frameworksBackend_memory ) | No | enum (of string) | No | - | Amount of memory to allocate to a function. | +| - [minInstances](#hosting_anyOf_i0_frameworksBackend_minInstances ) | No | number | No | - | Min number of actual instances to be running at a given time. | +| - [omit](#hosting_anyOf_i0_frameworksBackend_omit ) | No | boolean | No | - | If true, do not deploy or emulate this function. | +| - [preserveExternalChanges](#hosting_anyOf_i0_frameworksBackend_preserveExternalChanges ) | No | boolean | No | - | Controls whether function configuration modified outside of function source is preserved. Defaults to false. | +| - [region](#hosting_anyOf_i0_frameworksBackend_region ) | No | string | No | - | HTTP functions can override global options and can specify multiple regions to deploy to. | +| - [secrets](#hosting_anyOf_i0_frameworksBackend_secrets ) | No | array of string | No | - | A list of secrets used in this app. | +| - [serviceAccount](#hosting_anyOf_i0_frameworksBackend_serviceAccount ) | No | string | No | - | Specific service account for the function to run as. | +| - [timeoutSeconds](#hosting_anyOf_i0_frameworksBackend_timeoutSeconds ) | No | number | No | - | Timeout for the function in seconds, possible values are 0 to 540.
HTTPS functions can specify a higher timeout. | +| - [vpcConnector](#hosting_anyOf_i0_frameworksBackend_vpcConnector ) | No | string | No | - | Connect cloud function to specified VPC connector. | +| - [vpcConnectorEgressSettings](#hosting_anyOf_i0_frameworksBackend_vpcConnectorEgressSettings ) | No | enum (of string) | No | - | Egress settings for VPC connector. | + +##### 9.1.3.1. Property `root > hosting > anyOf > item 0 > frameworksBackend > concurrency` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** Number of requests a function can serve at once. + +##### 9.1.3.2. Property `root > hosting > anyOf > item 0 > frameworksBackend > cors` + +| | | +| ------------ | ------------------- | +| **Type** | `string or boolean` | +| **Required** | No | + +**Description:** If true, allows CORS on requests to this function. +If this is a `string` or `RegExp`, allows requests from domains that match the provided value. +If this is an `Array`, allows requests from domains matching at least one entry of the array. +Defaults to true for {@link https.CallableFunction} and false otherwise. + +##### 9.1.3.3. Property `root > hosting > anyOf > item 0 > frameworksBackend > cpu` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** Fractional number of CPUs to allocate to a function. + +| Any of(Option) | +| ---------------------------------------------------------- | +| [item 0](#hosting_anyOf_i0_frameworksBackend_cpu_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_frameworksBackend_cpu_anyOf_i1) | + +###### 9.1.3.3.1. Property `root > hosting > anyOf > item 0 > frameworksBackend > cpu > anyOf > item 0` + +| | | +| ------------ | ------- | +| **Type** | `const` | +| **Required** | No | + +Specific value: `"gcf_gen1"` + +###### 9.1.3.3.2. Property `root > hosting > anyOf > item 0 > frameworksBackend > cpu > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +##### 9.1.3.4. Property `root > hosting > anyOf > item 0 > frameworksBackend > enforceAppCheck` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Determines whether Firebase AppCheck is enforced. Defaults to false. + +##### 9.1.3.5. Property `root > hosting > anyOf > item 0 > frameworksBackend > ingressSettings` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Ingress settings which control where this function can be called from. + +Must be one of: +* "ALLOW_ALL" +* "ALLOW_INTERNAL_AND_GCLB" +* "ALLOW_INTERNAL_ONLY" + +##### 9.1.3.6. Property `root > hosting > anyOf > item 0 > frameworksBackend > invoker` + +| | | +| ------------ | ------- | +| **Type** | `const` | +| **Required** | No | + +**Description:** Invoker to set access control on https functions. + +Specific value: `"public"` + +##### 9.1.3.7. Property `root > hosting > anyOf > item 0 > frameworksBackend > labels` + +| | | +| ------------------------- | ----------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/Record | + +**Description:** User labels to set on the function. + +##### 9.1.3.8. Property `root > hosting > anyOf > item 0 > frameworksBackend > maxInstances` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** Max number of instances to be running in parallel. + +##### 9.1.3.9. Property `root > hosting > anyOf > item 0 > frameworksBackend > memory` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Amount of memory to allocate to a function. + +Must be one of: +* "128MiB" +* "16GiB" +* "1GiB" +* "256MiB" +* "2GiB" +* "32GiB" +* "4GiB" +* "512MiB" +* "8GiB" + +##### 9.1.3.10. Property `root > hosting > anyOf > item 0 > frameworksBackend > minInstances` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** Min number of actual instances to be running at a given time. + +##### 9.1.3.11. Property `root > hosting > anyOf > item 0 > frameworksBackend > omit` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, do not deploy or emulate this function. + +##### 9.1.3.12. Property `root > hosting > anyOf > item 0 > frameworksBackend > preserveExternalChanges` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** Controls whether function configuration modified outside of function source is preserved. Defaults to false. + +##### 9.1.3.13. Property `root > hosting > anyOf > item 0 > frameworksBackend > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** HTTP functions can override global options and can specify multiple regions to deploy to. + +##### 9.1.3.14. Property `root > hosting > anyOf > item 0 > frameworksBackend > secrets` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of secrets used in this app. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------ | ----------- | +| [secrets items](#hosting_anyOf_i0_frameworksBackend_secrets_items) | - | + +###### 9.1.3.14.1. root > hosting > anyOf > item 0 > frameworksBackend > secrets > secrets items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 9.1.3.15. Property `root > hosting > anyOf > item 0 > frameworksBackend > serviceAccount` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Specific service account for the function to run as. + +##### 9.1.3.16. Property `root > hosting > anyOf > item 0 > frameworksBackend > timeoutSeconds` + +| | | +| ------------ | -------- | +| **Type** | `number` | +| **Required** | No | + +**Description:** Timeout for the function in seconds, possible values are 0 to 540. +HTTPS functions can specify a higher timeout. + +##### 9.1.3.17. Property `root > hosting > anyOf > item 0 > frameworksBackend > vpcConnector` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Connect cloud function to specified VPC connector. + +##### 9.1.3.18. Property `root > hosting > anyOf > item 0 > frameworksBackend > vpcConnectorEgressSettings` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +**Description:** Egress settings for VPC connector. + +Must be one of: +* "ALL_TRAFFIC" +* "PRIVATE_RANGES_ONLY" + +#### 9.1.4. Property `root > hosting > anyOf > item 0 > headers` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of extra headers to send when serving specific paths on this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------- | --------------------------------------------------------- | +| [HostingHeaders](#hosting_anyOf_i0_headers_items) | Extra headers that should be sent when serving this path. | + +##### 9.1.4.1. root > hosting > anyOf > item 0 > headers > HostingHeaders + +| | | +| ------------------------- | ---------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/HostingHeaders | + +**Description:** Extra headers that should be sent when serving this path. + +| Any of(Option) | +| -------------------------------------------------- | +| [item 0](#hosting_anyOf_i0_headers_items_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_headers_items_anyOf_i1) | +| [item 2](#hosting_anyOf_i0_headers_items_anyOf_i2) | + +###### 9.1.4.1.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [glob](#hosting_anyOf_i0_headers_items_anyOf_i0_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | +| + [headers](#hosting_anyOf_i0_headers_items_anyOf_i0_headers ) | No | array of object | No | - | - | + +###### 9.1.4.1.1.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.4.1.1.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0 > headers` + +| | | +| ------------ | ----------------- | +| **Type** | `array of object` | +| **Required** | Yes | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ----------- | +| [headers items](#hosting_anyOf_i0_headers_items_anyOf_i0_headers_items) | - | + +###### 9.1.4.1.1.2.1. root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0 > headers > headers items + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | -------------------------------- | +| + [key](#hosting_anyOf_i0_headers_items_anyOf_i0_headers_items_key ) | No | string | No | - | The header to set. | +| + [value](#hosting_anyOf_i0_headers_items_anyOf_i0_headers_items_value ) | No | string | No | - | The value to set this header to. | + +###### 9.1.4.1.1.2.1.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0 > headers > headers items > key` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The header to set. + +###### 9.1.4.1.1.2.1.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 0 > headers > headers items > value` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The value to set this header to. + +###### 9.1.4.1.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | ---------------------------------------------- | +| + [headers](#hosting_anyOf_i0_headers_items_anyOf_i1_headers ) | No | array of object | No | - | - | +| + [source](#hosting_anyOf_i0_headers_items_anyOf_i1_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.4.1.2.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1 > headers` + +| | | +| ------------ | ----------------- | +| **Type** | `array of object` | +| **Required** | Yes | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ----------- | +| [headers items](#hosting_anyOf_i0_headers_items_anyOf_i1_headers_items) | - | + +###### 9.1.4.1.2.1.1. root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1 > headers > headers items + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | -------------------------------- | +| + [key](#hosting_anyOf_i0_headers_items_anyOf_i1_headers_items_key ) | No | string | No | - | The header to set. | +| + [value](#hosting_anyOf_i0_headers_items_anyOf_i1_headers_items_value ) | No | string | No | - | The value to set this header to. | + +###### 9.1.4.1.2.1.1.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1 > headers > headers items > key` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The header to set. + +###### 9.1.4.1.2.1.1.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1 > headers > headers items > value` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The value to set this header to. + +###### 9.1.4.1.2.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 1 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.4.1.3. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------- | ------- | --------------- | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [headers](#hosting_anyOf_i0_headers_items_anyOf_i2_headers ) | No | array of object | No | - | - | +| + [regex](#hosting_anyOf_i0_headers_items_anyOf_i2_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | + +###### 9.1.4.1.3.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2 > headers` + +| | | +| ------------ | ----------------- | +| **Type** | `array of object` | +| **Required** | Yes | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ----------- | +| [headers items](#hosting_anyOf_i0_headers_items_anyOf_i2_headers_items) | - | + +###### 9.1.4.1.3.1.1. root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2 > headers > headers items + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | -------------------------------- | +| + [key](#hosting_anyOf_i0_headers_items_anyOf_i2_headers_items_key ) | No | string | No | - | The header to set. | +| + [value](#hosting_anyOf_i0_headers_items_anyOf_i2_headers_items_value ) | No | string | No | - | The value to set this header to. | + +###### 9.1.4.1.3.1.1.1. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2 > headers > headers items > key` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The header to set. + +###### 9.1.4.1.3.1.1.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2 > headers > headers items > value` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The value to set this header to. + +###### 9.1.4.1.3.2. Property `root > hosting > anyOf > item 0 > headers > headers items > anyOf > item 2 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +#### 9.1.5. Property `root > hosting > anyOf > item 0 > i18n` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Internationalization config for this site. +See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites +for instructions on how to enable interntionalization for your site. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------- | +| + [root](#hosting_anyOf_i0_i18n_root ) | No | string | No | - | The directory containing internationalization rewrites. | + +##### 9.1.5.1. Property `root > hosting > anyOf > item 0 > i18n > root` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The directory containing internationalization rewrites. + +#### 9.1.6. Property `root > hosting > anyOf > item 0 > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of paths or globs within the source directory that should not be included in the uploaded archive. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------- | ----------- | +| [ignore items](#hosting_anyOf_i0_ignore_items) | - | + +##### 9.1.6.1. root > hosting > anyOf > item 0 > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 9.1.7. Property `root > hosting > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ----------------------------------------------- | +| [item 0](#hosting_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_postdeploy_anyOf_i1) | + +##### 9.1.7.1. Property `root > hosting > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 9.1.7.1.1. root > hosting > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 9.1.7.2. Property `root > hosting > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 9.1.8. Property `root > hosting > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ---------------------------------------------- | +| [item 0](#hosting_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_predeploy_anyOf_i1) | + +##### 9.1.8.1. Property `root > hosting > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 9.1.8.1.1. root > hosting > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 9.1.8.2. Property `root > hosting > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 9.1.9. Property `root > hosting > anyOf > item 0 > public` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Whether this site should publically available. + +#### 9.1.10. Property `root > hosting > anyOf > item 0 > redirects` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of redirects for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | -------------------------------------------------------------------------------------- | +| [HostingRedirects](#hosting_anyOf_i0_redirects_items) | URL redirects for a hosting site. Use these to prevent broken links when moving pages. | + +##### 9.1.10.1. root > hosting > anyOf > item 0 > redirects > HostingRedirects + +| | | +| ------------------------- | ------------------------------ | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/HostingRedirects | + +**Description:** URL redirects for a hosting site. Use these to prevent broken links when moving pages. + +| Any of(Option) | +| ---------------------------------------------------- | +| [item 0](#hosting_anyOf_i0_redirects_items_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_redirects_items_anyOf_i1) | +| [item 2](#hosting_anyOf_i0_redirects_items_anyOf_i2) | + +###### 9.1.10.1.1. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ----------------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------- | +| + [destination](#hosting_anyOf_i0_redirects_items_anyOf_i0_destination ) | No | string | No | - | The destination to redirect to. | +| + [glob](#hosting_anyOf_i0_redirects_items_anyOf_i0_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | +| - [type](#hosting_anyOf_i0_redirects_items_anyOf_i0_type ) | No | enum (of integer) | No | - | The type of redirect.
Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) | + +###### 9.1.10.1.1.1. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 0 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The destination to redirect to. + +###### 9.1.10.1.1.2. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 0 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.10.1.1.3. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 0 > type` + +| | | +| ------------ | ------------------- | +| **Type** | `enum (of integer)` | +| **Required** | No | + +**Description:** The type of redirect. +Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) + +Must be one of: +* 301 +* 302 + +###### 9.1.10.1.2. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ----------------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------- | +| + [destination](#hosting_anyOf_i0_redirects_items_anyOf_i1_destination ) | No | string | No | - | The destination to redirect to. | +| + [source](#hosting_anyOf_i0_redirects_items_anyOf_i1_source ) | No | string | No | - | A file path that this setting should apply to. | +| - [type](#hosting_anyOf_i0_redirects_items_anyOf_i1_type ) | No | enum (of integer) | No | - | The type of redirect.
Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) | + +###### 9.1.10.1.2.1. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 1 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The destination to redirect to. + +###### 9.1.10.1.2.2. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 1 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.10.1.2.3. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 1 > type` + +| | | +| ------------ | ------------------- | +| **Type** | `enum (of integer)` | +| **Required** | No | + +**Description:** The type of redirect. +Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) + +Must be one of: +* 301 +* 302 + +###### 9.1.10.1.3. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 2` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ----------------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------- | +| + [destination](#hosting_anyOf_i0_redirects_items_anyOf_i2_destination ) | No | string | No | - | The destination to redirect to. | +| + [regex](#hosting_anyOf_i0_redirects_items_anyOf_i2_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | +| - [type](#hosting_anyOf_i0_redirects_items_anyOf_i2_type ) | No | enum (of integer) | No | - | The type of redirect.
Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) | + +###### 9.1.10.1.3.1. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 2 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The destination to redirect to. + +###### 9.1.10.1.3.2. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 2 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +###### 9.1.10.1.3.3. Property `root > hosting > anyOf > item 0 > redirects > redirects items > anyOf > item 2 > type` + +| | | +| ------------ | ------------------- | +| **Type** | `enum (of integer)` | +| **Required** | No | + +**Description:** The type of redirect. +Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) + +Must be one of: +* 301 +* 302 + +#### 9.1.11. Property `root > hosting > anyOf > item 0 > rewrites` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list o rewrites for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| [HostingRewrites](#hosting_anyOf_i0_rewrites_items) | Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. | + +##### 9.1.11.1. root > hosting > anyOf > item 0 > rewrites > HostingRewrites + +| | | +| ------------------------- | ----------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Defined in** | #/definitions/HostingRewrites | + +**Description:** Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. + +| Any of(Option) | +| ----------------------------------------------------- | +| [item 0](#hosting_anyOf_i0_rewrites_items_anyOf_i0) | +| [item 1](#hosting_anyOf_i0_rewrites_items_anyOf_i1) | +| [item 2](#hosting_anyOf_i0_rewrites_items_anyOf_i2) | +| [item 3](#hosting_anyOf_i0_rewrites_items_anyOf_i3) | +| [item 4](#hosting_anyOf_i0_rewrites_items_anyOf_i4) | +| [item 5](#hosting_anyOf_i0_rewrites_items_anyOf_i5) | +| [item 6](#hosting_anyOf_i0_rewrites_items_anyOf_i6) | +| [item 7](#hosting_anyOf_i0_rewrites_items_anyOf_i7) | +| [item 8](#hosting_anyOf_i0_rewrites_items_anyOf_i8) | +| [item 9](#hosting_anyOf_i0_rewrites_items_anyOf_i9) | +| [item 10](#hosting_anyOf_i0_rewrites_items_anyOf_i10) | +| [item 11](#hosting_anyOf_i0_rewrites_items_anyOf_i11) | +| [item 12](#hosting_anyOf_i0_rewrites_items_anyOf_i12) | +| [item 13](#hosting_anyOf_i0_rewrites_items_anyOf_i13) | +| [item 14](#hosting_anyOf_i0_rewrites_items_anyOf_i14) | + +###### 9.1.11.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [destination](#hosting_anyOf_i0_rewrites_items_anyOf_i0_destination ) | No | string | No | - | - | +| + [glob](#hosting_anyOf_i0_rewrites_items_anyOf_i0_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | + +###### 9.1.11.1.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 0 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 0 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.11.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i1_function ) | No | string | No | - | - | +| + [glob](#hosting_anyOf_i0_rewrites_items_anyOf_i1_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i1_region ) | No | string | No | - | - | + +###### 9.1.11.1.2.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 1 > function` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.2.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 1 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.11.1.2.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 1 > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.1.11.1.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i2_function ) | No | object | No | - | - | +| + [glob](#hosting_anyOf_i0_rewrites_items_anyOf_i2_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | + +###### 9.1.11.1.3.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2 > function` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------------------------------- | +| + [functionId](#hosting_anyOf_i0_rewrites_items_anyOf_i2_function_functionId ) | No | string | No | - | The ID of the Cloud Function to rewrite to. | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i2_function_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running version of the Cloud Function. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i2_function_region ) | No | string | No | - | The region of the Cloud Function to rewrite to. | + +###### 9.1.11.1.3.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2 > function > functionId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Function to rewrite to. + +###### 9.1.11.1.3.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2 > function > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running version of the Cloud Function. + +###### 9.1.11.1.3.1.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2 > function > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Function to rewrite to. + +###### 9.1.11.1.3.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 2 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.11.1.4. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [glob](#hosting_anyOf_i0_rewrites_items_anyOf_i3_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | +| + [run](#hosting_anyOf_i0_rewrites_items_anyOf_i3_run ) | No | object | No | - | - | + +###### 9.1.11.1.4.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.11.1.4.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3 > run` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------- | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i3_run_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i3_run_region ) | No | string | No | - | The region of the Cloud Run service to rewrite to. | +| + [serviceId](#hosting_anyOf_i0_rewrites_items_anyOf_i3_run_serviceId ) | No | string | No | - | The ID of the Cloud Run service to rewrite to. | + +###### 9.1.11.1.4.2.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3 > run > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. + +###### 9.1.11.1.4.2.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3 > run > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Run service to rewrite to. + +###### 9.1.11.1.4.2.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 3 > run > serviceId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Run service to rewrite to. + +###### 9.1.11.1.5. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 4` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------------------------------- | +| + [dynamicLinks](#hosting_anyOf_i0_rewrites_items_anyOf_i4_dynamicLinks ) | No | boolean | No | - | - | +| + [glob](#hosting_anyOf_i0_rewrites_items_anyOf_i4_glob ) | No | string | No | - | A glob pattern describing the paths that this setting should apply to. | + +###### 9.1.11.1.5.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 4 > dynamicLinks` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | Yes | + +###### 9.1.11.1.5.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 4 > glob` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A glob pattern describing the paths that this setting should apply to. + +###### 9.1.11.1.6. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 5` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------- | +| + [destination](#hosting_anyOf_i0_rewrites_items_anyOf_i5_destination ) | No | string | No | - | - | +| + [source](#hosting_anyOf_i0_rewrites_items_anyOf_i5_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.11.1.6.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 5 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.6.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 5 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.11.1.7. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 6` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i6_function ) | No | string | No | - | - | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i6_region ) | No | string | No | - | - | +| + [source](#hosting_anyOf_i0_rewrites_items_anyOf_i6_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.11.1.7.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 6 > function` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.7.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 6 > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.1.11.1.7.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 6 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.11.1.8. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i7_function ) | No | object | No | - | - | +| + [source](#hosting_anyOf_i0_rewrites_items_anyOf_i7_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.11.1.8.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7 > function` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------------------------------- | +| + [functionId](#hosting_anyOf_i0_rewrites_items_anyOf_i7_function_functionId ) | No | string | No | - | The ID of the Cloud Function to rewrite to. | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i7_function_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running version of the Cloud Function. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i7_function_region ) | No | string | No | - | The region of the Cloud Function to rewrite to. | + +###### 9.1.11.1.8.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7 > function > functionId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Function to rewrite to. + +###### 9.1.11.1.8.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7 > function > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running version of the Cloud Function. + +###### 9.1.11.1.8.1.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7 > function > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Function to rewrite to. + +###### 9.1.11.1.8.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 7 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.11.1.9. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------- | ------- | ------ | ---------- | ---------- | ---------------------------------------------- | +| + [run](#hosting_anyOf_i0_rewrites_items_anyOf_i8_run ) | No | object | No | - | - | +| + [source](#hosting_anyOf_i0_rewrites_items_anyOf_i8_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.11.1.9.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8 > run` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------- | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i8_run_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i8_run_region ) | No | string | No | - | The region of the Cloud Run service to rewrite to. | +| + [serviceId](#hosting_anyOf_i0_rewrites_items_anyOf_i8_run_serviceId ) | No | string | No | - | The ID of the Cloud Run service to rewrite to. | + +###### 9.1.11.1.9.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8 > run > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. + +###### 9.1.11.1.9.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8 > run > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Run service to rewrite to. + +###### 9.1.11.1.9.1.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8 > run > serviceId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Run service to rewrite to. + +###### 9.1.11.1.9.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 8 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.11.1.10. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 9` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ---------------------------------------------- | +| + [dynamicLinks](#hosting_anyOf_i0_rewrites_items_anyOf_i9_dynamicLinks ) | No | boolean | No | - | - | +| + [source](#hosting_anyOf_i0_rewrites_items_anyOf_i9_source ) | No | string | No | - | A file path that this setting should apply to. | + +###### 9.1.11.1.10.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 9 > dynamicLinks` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | Yes | + +###### 9.1.11.1.10.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 9 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A file path that this setting should apply to. + +###### 9.1.11.1.11. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 10` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [destination](#hosting_anyOf_i0_rewrites_items_anyOf_i10_destination ) | No | string | No | - | - | +| + [regex](#hosting_anyOf_i0_rewrites_items_anyOf_i10_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | + +###### 9.1.11.1.11.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 10 > destination` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.11.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 10 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +###### 9.1.11.1.12. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 11` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i11_function ) | No | string | No | - | - | +| + [regex](#hosting_anyOf_i0_rewrites_items_anyOf_i11_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i11_region ) | No | string | No | - | - | + +###### 9.1.11.1.12.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 11 > function` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +###### 9.1.11.1.12.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 11 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +###### 9.1.11.1.12.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 11 > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.1.11.1.13. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [function](#hosting_anyOf_i0_rewrites_items_anyOf_i12_function ) | No | object | No | - | - | +| + [regex](#hosting_anyOf_i0_rewrites_items_anyOf_i12_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | + +###### 9.1.11.1.13.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12 > function` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | ------------------------------------------------------------------------------------------- | +| + [functionId](#hosting_anyOf_i0_rewrites_items_anyOf_i12_function_functionId ) | No | string | No | - | The ID of the Cloud Function to rewrite to. | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i12_function_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running version of the Cloud Function. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i12_function_region ) | No | string | No | - | The region of the Cloud Function to rewrite to. | + +###### 9.1.11.1.13.1.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12 > function > functionId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Function to rewrite to. + +###### 9.1.11.1.13.1.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12 > function > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running version of the Cloud Function. + +###### 9.1.11.1.13.1.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12 > function > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Function to rewrite to. + +###### 9.1.11.1.13.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 12 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +###### 9.1.11.1.14. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------ | ------- | ------ | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [regex](#hosting_anyOf_i0_rewrites_items_anyOf_i13_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | +| + [run](#hosting_anyOf_i0_rewrites_items_anyOf_i13_run ) | No | object | No | - | - | + +###### 9.1.11.1.14.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +###### 9.1.11.1.14.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13 > run` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | Yes | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ------------------------------------------------------------------------ | ------- | ------- | ---------- | ---------- | ----------------------------------------------------------------------------------------------- | +| - [pinTag](#hosting_anyOf_i0_rewrites_items_anyOf_i13_run_pinTag ) | No | boolean | No | - | If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. | +| - [region](#hosting_anyOf_i0_rewrites_items_anyOf_i13_run_region ) | No | string | No | - | The region of the Cloud Run service to rewrite to. | +| + [serviceId](#hosting_anyOf_i0_rewrites_items_anyOf_i13_run_serviceId ) | No | string | No | - | The ID of the Cloud Run service to rewrite to. | + +###### 9.1.11.1.14.2.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13 > run > pinTag` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +**Description:** If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. + +###### 9.1.11.1.14.2.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13 > run > region` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The region of the Cloud Run service to rewrite to. + +###### 9.1.11.1.14.2.3. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 13 > run > serviceId` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The ID of the Cloud Run service to rewrite to. + +###### 9.1.11.1.15. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 14` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------- | ------- | ------- | ---------- | ---------- | --------------------------------------------------------------------------- | +| + [dynamicLinks](#hosting_anyOf_i0_rewrites_items_anyOf_i14_dynamicLinks ) | No | boolean | No | - | - | +| + [regex](#hosting_anyOf_i0_rewrites_items_anyOf_i14_regex ) | No | string | No | - | A regex pattern that matches the paths that this setting should apply to. * | + +###### 9.1.11.1.15.1. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 14 > dynamicLinks` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | Yes | + +###### 9.1.11.1.15.2. Property `root > hosting > anyOf > item 0 > rewrites > rewrites items > anyOf > item 14 > regex` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A regex pattern that matches the paths that this setting should apply to. * + +#### 9.1.12. Property `root > hosting > anyOf > item 0 > site` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The site to deploy. + +#### 9.1.13. Property `root > hosting > anyOf > item 0 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory containing this site's source code. This will be archived and uploaded during deployment. + +#### 9.1.14. Property `root > hosting > anyOf > item 0 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The deploy target to deploy. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +#### 9.1.15. Property `root > hosting > anyOf > item 0 > trailingSlash` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +### 9.2. Property `root > hosting > anyOf > item 1` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** Deployment options for a list of Firebase Hosting sites. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------- | ----------- | +| [item 1 items](#hosting_anyOf_i1_items) | - | + +#### 9.2.1. root > hosting > anyOf > item 1 > item 1 items + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +| Any of(Option) | +| ------------------------------------------ | +| [item 0](#hosting_anyOf_i1_items_anyOf_i0) | +| [item 1](#hosting_anyOf_i1_items_anyOf_i1) | + +##### 9.2.1.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [appAssociation](#hosting_anyOf_i1_items_anyOf_i0_appAssociation ) | No | enum (of string) | No | - | - | +| - [cleanUrls](#hosting_anyOf_i1_items_anyOf_i0_cleanUrls ) | No | boolean | No | - | - | +| - [frameworksBackend](#hosting_anyOf_i1_items_anyOf_i0_frameworksBackend ) | No | object | No | Same as [frameworksBackend](#hosting_anyOf_i0_frameworksBackend ) | Options for this sites web frameworks backend. | +| - [headers](#hosting_anyOf_i1_items_anyOf_i0_headers ) | No | array | No | - | A list of extra headers to send when serving specific paths on this site. | +| - [i18n](#hosting_anyOf_i1_items_anyOf_i0_i18n ) | No | object | No | - | Internationalization config for this site.
See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
for instructions on how to enable interntionalization for your site. | +| - [ignore](#hosting_anyOf_i1_items_anyOf_i0_ignore ) | No | array of string | No | - | A list of paths or globs within the source directory that should not be included in the uploaded archive. | +| - [postdeploy](#hosting_anyOf_i1_items_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#hosting_anyOf_i1_items_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [public](#hosting_anyOf_i1_items_anyOf_i0_public ) | No | string | No | - | Whether this site should publically available. | +| - [redirects](#hosting_anyOf_i1_items_anyOf_i0_redirects ) | No | array | No | - | A list of redirects for this site. | +| - [rewrites](#hosting_anyOf_i1_items_anyOf_i0_rewrites ) | No | array | No | - | A list o rewrites for this site. | +| - [site](#hosting_anyOf_i1_items_anyOf_i0_site ) | No | string | No | - | The site to deploy | +| - [source](#hosting_anyOf_i1_items_anyOf_i0_source ) | No | string | No | - | Path to the directory containing this site's source code. This will be archived and uploaded during deployment. | +| + [target](#hosting_anyOf_i1_items_anyOf_i0_target ) | No | string | No | - | The deploy target to deploy.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | +| - [trailingSlash](#hosting_anyOf_i1_items_anyOf_i0_trailingSlash ) | No | boolean | No | - | - | + +###### 9.2.1.1.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > appAssociation` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +Must be one of: +* "AUTO" +* "NONE" + +###### 9.2.1.1.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > cleanUrls` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +###### 9.2.1.1.3. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > frameworksBackend` + +| | | +| ------------------------- | -------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [frameworksBackend](#hosting_anyOf_i0_frameworksBackend) | + +**Description:** Options for this sites web frameworks backend. + +###### 9.2.1.1.4. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > headers` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of extra headers to send when serving specific paths on this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------- | --------------------------------------------------------- | +| [HostingHeaders](#hosting_anyOf_i1_items_anyOf_i0_headers_items) | Extra headers that should be sent when serving this path. | + +###### 9.2.1.1.4.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > headers > HostingHeaders + +| | | +| ------------------------- | ----------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_headers_items](#hosting_anyOf_i0_headers_items) | + +**Description:** Extra headers that should be sent when serving this path. + +###### 9.2.1.1.5. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > i18n` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Internationalization config for this site. +See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites +for instructions on how to enable interntionalization for your site. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------- | +| + [root](#hosting_anyOf_i1_items_anyOf_i0_i18n_root ) | No | string | No | - | The directory containing internationalization rewrites. | + +###### 9.2.1.1.5.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > i18n > root` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The directory containing internationalization rewrites. + +###### 9.2.1.1.6. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of paths or globs within the source directory that should not be included in the uploaded archive. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------- | ----------- | +| [ignore items](#hosting_anyOf_i1_items_anyOf_i0_ignore_items) | - | + +###### 9.2.1.1.6.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.1.7. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| -------------------------------------------------------------- | +| [item 0](#hosting_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i1) | + +###### 9.2.1.1.7.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i1_items_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 9.2.1.1.7.1.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.1.7.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.1.8. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ------------------------------------------------------------- | +| [item 0](#hosting_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i1) | + +###### 9.2.1.1.8.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i1_items_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 9.2.1.1.8.1.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.1.8.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.1.9. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > public` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Whether this site should publically available. + +###### 9.2.1.1.10. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > redirects` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of redirects for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| [HostingRedirects](#hosting_anyOf_i1_items_anyOf_i0_redirects_items) | URL redirects for a hosting site. Use these to prevent broken links when moving pages. | + +###### 9.2.1.1.10.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > redirects > HostingRedirects + +| | | +| ------------------------- | --------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_redirects_items](#hosting_anyOf_i0_redirects_items) | + +**Description:** URL redirects for a hosting site. Use these to prevent broken links when moving pages. + +###### 9.2.1.1.11. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > rewrites` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list o rewrites for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| [HostingRewrites](#hosting_anyOf_i1_items_anyOf_i0_rewrites_items) | Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. | + +###### 9.2.1.1.11.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > rewrites > HostingRewrites + +| | | +| ------------------------- | ------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_rewrites_items](#hosting_anyOf_i0_rewrites_items) | + +**Description:** Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. + +###### 9.2.1.1.12. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > site` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The site to deploy + +###### 9.2.1.1.13. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory containing this site's source code. This will be archived and uploaded during deployment. + +###### 9.2.1.1.14. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The deploy target to deploy. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +###### 9.2.1.1.15. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 0 > trailingSlash` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +##### 9.2.1.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| -------------------------------------------------------------------------- | ------- | ---------------- | ---------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| - [appAssociation](#hosting_anyOf_i1_items_anyOf_i1_appAssociation ) | No | enum (of string) | No | - | - | +| - [cleanUrls](#hosting_anyOf_i1_items_anyOf_i1_cleanUrls ) | No | boolean | No | - | - | +| - [frameworksBackend](#hosting_anyOf_i1_items_anyOf_i1_frameworksBackend ) | No | object | No | Same as [frameworksBackend](#hosting_anyOf_i0_frameworksBackend ) | Options for this sites web frameworks backend. | +| - [headers](#hosting_anyOf_i1_items_anyOf_i1_headers ) | No | array | No | - | A list of extra headers to send when serving specific paths on this site. | +| - [i18n](#hosting_anyOf_i1_items_anyOf_i1_i18n ) | No | object | No | - | Internationalization config for this site.
See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites
for instructions on how to enable interntionalization for your site. | +| - [ignore](#hosting_anyOf_i1_items_anyOf_i1_ignore ) | No | array of string | No | - | A list of paths or globs within the source directory that should not be included in the uploaded archive. | +| - [postdeploy](#hosting_anyOf_i1_items_anyOf_i1_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#hosting_anyOf_i1_items_anyOf_i1_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| - [public](#hosting_anyOf_i1_items_anyOf_i1_public ) | No | string | No | - | Whether this site should publically available. | +| - [redirects](#hosting_anyOf_i1_items_anyOf_i1_redirects ) | No | array | No | - | A list of redirects for this site. | +| - [rewrites](#hosting_anyOf_i1_items_anyOf_i1_rewrites ) | No | array | No | - | A list o rewrites for this site. | +| + [site](#hosting_anyOf_i1_items_anyOf_i1_site ) | No | string | No | - | The site to deploy | +| - [source](#hosting_anyOf_i1_items_anyOf_i1_source ) | No | string | No | - | Path to the directory containing this site's source code. This will be archived and uploaded during deployment. | +| - [target](#hosting_anyOf_i1_items_anyOf_i1_target ) | No | string | No | - | The deploy target to deploy.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | +| - [trailingSlash](#hosting_anyOf_i1_items_anyOf_i1_trailingSlash ) | No | boolean | No | - | - | + +###### 9.2.1.2.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > appAssociation` + +| | | +| ------------ | ------------------ | +| **Type** | `enum (of string)` | +| **Required** | No | + +Must be one of: +* "AUTO" +* "NONE" + +###### 9.2.1.2.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > cleanUrls` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +###### 9.2.1.2.3. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > frameworksBackend` + +| | | +| ------------------------- | -------------------------------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Same definition as** | [frameworksBackend](#hosting_anyOf_i0_frameworksBackend) | + +**Description:** Options for this sites web frameworks backend. + +###### 9.2.1.2.4. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > headers` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of extra headers to send when serving specific paths on this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------- | --------------------------------------------------------- | +| [HostingHeaders](#hosting_anyOf_i1_items_anyOf_i1_headers_items) | Extra headers that should be sent when serving this path. | + +###### 9.2.1.2.4.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > headers > HostingHeaders + +| | | +| ------------------------- | ----------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_headers_items](#hosting_anyOf_i0_headers_items) | + +**Description:** Extra headers that should be sent when serving this path. + +###### 9.2.1.2.5. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > i18n` + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +**Description:** Internationalization config for this site. +See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites +for instructions on how to enable interntionalization for your site. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------------------- | ------- | ------ | ---------- | ---------- | ------------------------------------------------------- | +| + [root](#hosting_anyOf_i1_items_anyOf_i1_i18n_root ) | No | string | No | - | The directory containing internationalization rewrites. | + +###### 9.2.1.2.5.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > i18n > root` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The directory containing internationalization rewrites. + +###### 9.2.1.2.6. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > ignore` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +**Description:** A list of paths or globs within the source directory that should not be included in the uploaded archive. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------- | ----------- | +| [ignore items](#hosting_anyOf_i1_items_anyOf_i1_ignore_items) | - | + +###### 9.2.1.2.6.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > ignore > ignore items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.2.7. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| -------------------------------------------------------------- | +| [item 0](#hosting_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i1) | + +###### 9.2.1.2.7.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i1_items_anyOf_i1_postdeploy_anyOf_i0_items) | - | + +###### 9.2.1.2.7.1.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.2.7.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.2.8. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ------------------------------------------------------------- | +| [item 0](#hosting_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0) | +| [item 1](#hosting_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i1) | + +###### 9.2.1.2.8.1. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------------- | ----------- | +| [item 0 items](#hosting_anyOf_i1_items_anyOf_i1_predeploy_anyOf_i0_items) | - | + +###### 9.2.1.2.8.1.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.2.8.2. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 9.2.1.2.9. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > public` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Whether this site should publically available. + +###### 9.2.1.2.10. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > redirects` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list of redirects for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| [HostingRedirects](#hosting_anyOf_i1_items_anyOf_i1_redirects_items) | URL redirects for a hosting site. Use these to prevent broken links when moving pages. | + +###### 9.2.1.2.10.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > redirects > HostingRedirects + +| | | +| ------------------------- | --------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_redirects_items](#hosting_anyOf_i0_redirects_items) | + +**Description:** URL redirects for a hosting site. Use these to prevent broken links when moving pages. + +###### 9.2.1.2.11. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > rewrites` + +| | | +| ------------ | ------- | +| **Type** | `array` | +| **Required** | No | + +**Description:** A list o rewrites for this site. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| [HostingRewrites](#hosting_anyOf_i1_items_anyOf_i1_rewrites_items) | Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. | + +###### 9.2.1.2.11.1. root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > rewrites > HostingRewrites + +| | | +| ------------------------- | ------------------------------------------------------------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | +| **Same definition as** | [hosting_anyOf_i0_rewrites_items](#hosting_anyOf_i0_rewrites_items) | + +**Description:** Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. + +###### 9.2.1.2.12. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > site` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The site to deploy + +###### 9.2.1.2.13. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > source` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** Path to the directory containing this site's source code. This will be archived and uploaded during deployment. + +###### 9.2.1.2.14. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The deploy target to deploy. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +###### 9.2.1.2.15. Property `root > hosting > anyOf > item 1 > item 1 items > anyOf > item 1 > trailingSlash` + +| | | +| ------------ | --------- | +| **Type** | `boolean` | +| **Required** | No | + +## 10. Property `root > remoteconfig` + +| | | +| ------------------------- | -------------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/RemoteConfigConfig | + +**Description:** The Remote Config template(s) used by this project. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| ----------------------------------------- | ------- | ----------- | ---------- | ---------- | ----------------------------------------------------------------------------- | +| - [postdeploy](#remoteconfig_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#remoteconfig_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [template](#remoteconfig_template ) | No | string | No | - | A path to a CJSON file containing a Remote Config template. | + +### 10.1. Property `root > remoteconfig > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ------------------------------------------- | +| [item 0](#remoteconfig_postdeploy_anyOf_i0) | +| [item 1](#remoteconfig_postdeploy_anyOf_i1) | + +#### 10.1.1. Property `root > remoteconfig > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [item 0 items](#remoteconfig_postdeploy_anyOf_i0_items) | - | + +##### 10.1.1.1. root > remoteconfig > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 10.1.2. Property `root > remoteconfig > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +### 10.2. Property `root > remoteconfig > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ------------------------------------------ | +| [item 0](#remoteconfig_predeploy_anyOf_i0) | +| [item 1](#remoteconfig_predeploy_anyOf_i1) | + +#### 10.2.1. Property `root > remoteconfig > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ------------------------------------------------------ | ----------- | +| [item 0 items](#remoteconfig_predeploy_anyOf_i0_items) | - | + +##### 10.2.1.1. root > remoteconfig > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 10.2.2. Property `root > remoteconfig > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +### 10.3. Property `root > remoteconfig > template` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** A path to a CJSON file containing a Remote Config template. + +## 11. Property `root > storage` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** The Firebase Storage rules that should be deployed or emulated. + +| Any of(Option) | +| ---------------------------------- | +| [StorageSingle](#storage_anyOf_i0) | +| [item 1](#storage_anyOf_i1) | + +### 11.1. Property `root > storage > anyOf > StorageSingle` + +| | | +| ------------------------- | --------------------------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | +| **Defined in** | #/definitions/StorageSingle | + +**Description:** Deployment options for a single Firebase storage bucket. + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------- | ------- | ----------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| - [postdeploy](#storage_anyOf_i0_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#storage_anyOf_i0_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [rules](#storage_anyOf_i0_rules ) | No | string | No | - | Path to the rules files for this Firebase Storage bucket. | +| - [target](#storage_anyOf_i0_target ) | No | string | No | - | The deploy target to these Storage rules to.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | + +#### 11.1.1. Property `root > storage > anyOf > item 0 > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ----------------------------------------------- | +| [item 0](#storage_anyOf_i0_postdeploy_anyOf_i0) | +| [item 1](#storage_anyOf_i0_postdeploy_anyOf_i1) | + +##### 11.1.1.1. Property `root > storage > anyOf > item 0 > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------- | +| [item 0 items](#storage_anyOf_i0_postdeploy_anyOf_i0_items) | - | + +###### 11.1.1.1.1. root > storage > anyOf > item 0 > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 11.1.1.2. Property `root > storage > anyOf > item 0 > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 11.1.2. Property `root > storage > anyOf > item 0 > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ---------------------------------------------- | +| [item 0](#storage_anyOf_i0_predeploy_anyOf_i0) | +| [item 1](#storage_anyOf_i0_predeploy_anyOf_i1) | + +##### 11.1.2.1. Property `root > storage > anyOf > item 0 > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------- | ----------- | +| [item 0 items](#storage_anyOf_i0_predeploy_anyOf_i0_items) | - | + +###### 11.1.2.1.1. root > storage > anyOf > item 0 > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 11.1.2.2. Property `root > storage > anyOf > item 0 > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +#### 11.1.3. Property `root > storage > anyOf > item 0 > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Path to the rules files for this Firebase Storage bucket. + +#### 11.1.4. Property `root > storage > anyOf > item 0 > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The deploy target to these Storage rules to. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +### 11.2. Property `root > storage > anyOf > item 1` + +| | | +| ------------ | ----------------- | +| **Type** | `array of object` | +| **Required** | No | + +**Description:** Deployment options for multiple Firebase storage buckets. + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| --------------------------------------- | ----------- | +| [item 1 items](#storage_anyOf_i1_items) | - | + +#### 11.2.1. root > storage > anyOf > item 1 > item 1 items + +| | | +| ------------------------- | ----------- | +| **Type** | `object` | +| **Required** | No | +| **Additional properties** | Not allowed | + +| Property | Pattern | Type | Deprecated | Definition | Title/Description | +| --------------------------------------------------- | ------- | ----------- | ---------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| + [bucket](#storage_anyOf_i1_items_bucket ) | No | string | No | - | The Firebase Storage bucket that this config is for. | +| - [postdeploy](#storage_anyOf_i1_items_postdeploy ) | No | Combination | No | - | A script or list of scripts that will be ran after this product is deployed. | +| - [predeploy](#storage_anyOf_i1_items_predeploy ) | No | Combination | No | - | A script or list of scripts that will be ran before this product is deployed. | +| + [rules](#storage_anyOf_i1_items_rules ) | No | string | No | - | Path to the rules files for this Firebase Storage bucket. | +| - [target](#storage_anyOf_i1_items_target ) | No | string | No | - | The deploy target to these Storage rules to.
See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. | + +##### 11.2.1.1. Property `root > storage > anyOf > item 1 > item 1 items > bucket` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** The Firebase Storage bucket that this config is for. + +##### 11.2.1.2. Property `root > storage > anyOf > item 1 > item 1 items > postdeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran after this product is deployed. + +| Any of(Option) | +| ----------------------------------------------------- | +| [item 0](#storage_anyOf_i1_items_postdeploy_anyOf_i0) | +| [item 1](#storage_anyOf_i1_items_postdeploy_anyOf_i1) | + +###### 11.2.1.2.1. Property `root > storage > anyOf > item 1 > item 1 items > postdeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------- | ----------- | +| [item 0 items](#storage_anyOf_i1_items_postdeploy_anyOf_i0_items) | - | + +###### 11.2.1.2.1.1. root > storage > anyOf > item 1 > item 1 items > postdeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 11.2.1.2.2. Property `root > storage > anyOf > item 1 > item 1 items > postdeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 11.2.1.3. Property `root > storage > anyOf > item 1 > item 1 items > predeploy` + +| | | +| ------------------------- | ---------------- | +| **Type** | `combining` | +| **Required** | No | +| **Additional properties** | Any type allowed | + +**Description:** A script or list of scripts that will be ran before this product is deployed. + +| Any of(Option) | +| ---------------------------------------------------- | +| [item 0](#storage_anyOf_i1_items_predeploy_anyOf_i0) | +| [item 1](#storage_anyOf_i1_items_predeploy_anyOf_i1) | + +###### 11.2.1.3.1. Property `root > storage > anyOf > item 1 > item 1 items > predeploy > anyOf > item 0` + +| | | +| ------------ | ----------------- | +| **Type** | `array of string` | +| **Required** | No | + +| | Array restrictions | +| -------------------- | ------------------ | +| **Min items** | N/A | +| **Max items** | N/A | +| **Items unicity** | False | +| **Additional items** | False | +| **Tuple validation** | See below | + +| Each item of this array must be | Description | +| ---------------------------------------------------------------- | ----------- | +| [item 0 items](#storage_anyOf_i1_items_predeploy_anyOf_i0_items) | - | + +###### 11.2.1.3.1.1. root > storage > anyOf > item 1 > item 1 items > predeploy > anyOf > item 0 > item 0 items + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +###### 11.2.1.3.2. Property `root > storage > anyOf > item 1 > item 1 items > predeploy > anyOf > item 1` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +##### 11.2.1.4. Property `root > storage > anyOf > item 1 > item 1 items > rules` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | Yes | + +**Description:** Path to the rules files for this Firebase Storage bucket. + +##### 11.2.1.5. Property `root > storage > anyOf > item 1 > item 1 items > target` + +| | | +| ------------ | -------- | +| **Type** | `string` | +| **Required** | No | + +**Description:** The deploy target to these Storage rules to. +See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + +---------------------------------------------------------------------------------------------------------------------------- +Generated using [json-schema-for-humans](https://github.com/coveooss/json-schema-for-humans) on 2025-06-17 at 07:38:46 -0700 diff --git a/schema/docs/index.md b/schema/docs/index.md new file mode 100644 index 00000000000..a6ffb51eef9 --- /dev/null +++ b/schema/docs/index.md @@ -0,0 +1,11 @@ +# Index +- [connector-yaml.html](connector-yaml.html) +- [connector-yaml](connector-yaml.md) +- [dataconnect-yaml.html](dataconnect-yaml.html) +- [dataconnect-yaml](dataconnect-yaml.md) +- [extension-yaml.html](extension-yaml.html) +- [extension-yaml](extension-yaml.md) +- [firebase-config.html](firebase-config.html) +- [firebase-config](firebase-config.md) +- [schema_doc.css](schema_doc.css) +- [schema_doc.min.js](schema_doc.min.js) diff --git a/schema/docs/schema_doc.css b/schema/docs/schema_doc.css new file mode 100644 index 00000000000..e1f3a5112e3 --- /dev/null +++ b/schema/docs/schema_doc.css @@ -0,0 +1,181 @@ +body { + font: 16px/1.5em "Overpass", "Open Sans", Helvetica, sans-serif; + color: #333; + font-weight: 300; + padding: 40px; +} + +.btn.btn-link { + font-size: 18px; + user-select: text; +} + +.jsfh-animated-property { + animation: eclair; + animation-iteration-count: 1; + animation-fill-mode: forwards; + animation-duration: .75s; + +} + +@keyframes eclair { + 0%,100% { + transform: scale(1); + } + 50% { + transform: scale(1.03); + } +} + +.btn.btn-primary { + margin: 10px; +} + +.btn.example-show.collapsed:before { + content: "show" +} + +.btn.example-show:before { + content: "hide" +} + +.description.collapse:not(.show) { + max-height: 100px !important; + overflow: hidden; + + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.description.collapsing { + min-height: 100px !important; +} + +.collapse-description-link.collapsed:after { + content: '+ Read More'; +} + +.collapse-description-link:not(.collapsed):after { + content: '- Read Less'; +} + +.badge { + font-size: 100%; + margin-bottom: 0.5rem; + margin-top: 0.5rem; +} + +.badge.value-type { + font-size: 120%; + margin-right: 5px; + margin-bottom: 10px; +} + + +.badge.default-value { + font-size: 120%; + margin-left: 5px; + margin-bottom: 10px; +} + +.badge.restriction { + display: inline-block; +} + +.badge.required-property,.badge.deprecated-property,.badge.pattern-property,.badge.no-additional { + font-size: 100%; + margin-left: 10px; +} + +.accordion div.card:only-child { + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.examples { + padding: 1rem !important; +} + +.examples pre { + margin-bottom: 0; +} + +.highlight.jumbotron { + padding: 1rem !important; +} + +.generated-by-footer { + margin-top: 1em; + text-align: right; +} + +/* From https://github.com/richleland/pygments-css/blob/master/friendly.css, see https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks */ +.highlight { background: #e9ecef; } /* Changed from #f0f0f0 in the original style to be the same as bootstrap's jumbotron */ +.highlight .hll { background-color: #ffffcc } +.highlight .c { color: #60a0b0; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #40a070 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #40a070 } /* Literal.Number.Bin */ +.highlight .mf { color: #40a070 } /* Literal.Number.Float */ +.highlight .mh { color: #40a070 } /* Literal.Number.Hex */ +.highlight .mi { color: #40a070 } /* Literal.Number.Integer */ +.highlight .mo { color: #40a070 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ diff --git a/schema/docs/schema_doc.min.js b/schema/docs/schema_doc.min.js new file mode 100644 index 00000000000..17eceaf59a3 --- /dev/null +++ b/schema/docs/schema_doc.min.js @@ -0,0 +1 @@ +$(document).on("click",'a[href^="#"]',function(event){event.preventDefault();history.pushState({},"",this.href)});function flashElement(elementId){myElement=document.getElementById(elementId);myElement.classList.add("jsfh-animated-property");setTimeout(function(){myElement.classList.remove("jsfh-animated-property")},1e3)}function setAnchor(anchorLinkDestination){history.pushState({},"",anchorLinkDestination)}function anchorOnLoad(){let linkTarget=decodeURIComponent(window.location.hash.split("?")[0].split("&")[0]);if(linkTarget[0]==="#"){linkTarget=linkTarget.substr(1)}if(linkTarget.length>0){anchorLink(linkTarget)}}function anchorLink(linkTarget){const target=$("#"+linkTarget);target.parents().addBack().filter(".collapse:not(.show), .tab-pane, [role='tab']").each(function(index){if($(this).hasClass("collapse")){$(this).collapse("show")}else if($(this).hasClass("tab-pane")){const tabToShow=$("a[href='#"+$(this).attr("id")+"']");if(tabToShow){tabToShow.tab("show")}}else if($(this).attr("role")==="tab"){$(this).tab("show")}});setTimeout(function(){let targetElement=document.getElementById(linkTarget);if(targetElement){targetElement.scrollIntoView({block:"center",behavior:"smooth"});setTimeout(function(){flashElement(linkTarget)},500)}},1e3)} \ No newline at end of file diff --git a/schema/extension-yaml.json b/schema/extension-yaml.json index 261da16c4a9..a7699c2b04a 100644 --- a/schema/extension-yaml.json +++ b/schema/extension-yaml.json @@ -1,5 +1,7 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "extension.yaml", + "description": "extension.yaml declares the resources and configurable parameters for a Firebase Extension.", "additionalProperties": false, "definitions": { "author": { @@ -336,8 +338,11 @@ "properties": { "attribute": { "type": "string", - "description": "The event attribute to filter on", - "value": "The value to filter for" + "description": "The event attribute to filter on" + }, + "value": { + "type": "string", + "description": "The value to filter for" } } } diff --git a/schema/firebase-config.json b/schema/firebase-config.json index 546d045af00..1251eda023d 100644 --- a/schema/firebase-config.json +++ b/schema/firebase-config.json @@ -4,6 +4,7 @@ "definitions": { "DataConnectSingle": { "additionalProperties": false, + "description": "A single Data Connect deployment configs", "properties": { "postdeploy": { "anyOf": [ @@ -16,7 +17,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -29,9 +31,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "source": { + "description": "The directory containing dataconnect.yaml for this service", "type": "string" } }, @@ -42,6 +46,7 @@ }, "DatabaseSingle": { "additionalProperties": false, + "description": "Deployment options for a single Realtime Database instance.", "properties": { "postdeploy": { "anyOf": [ @@ -54,7 +59,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -67,9 +73,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "The rules files for this Realtime Database instance.", "type": "string" } }, @@ -80,18 +88,23 @@ }, "ExtensionsConfig": { "additionalProperties": false, + "description": "The Firebase Extensions that should be deployed to this project.\nThis is a map of instance ID to extension reference (/@)- ie:\n\"my-firestore-export\": \"firebase/firestore-bigquery-export@1.2.3\"\n\nVersion can also be a semver range.", "type": "object" }, "FirestoreSingle": { "additionalProperties": false, + "description": "Deployment options for a single Firestore database.", "properties": { "database": { + "description": "The id of the Firestore database to deploy. If omitted, defaults to '(default)'", "type": "string" }, "indexes": { + "description": "Path to the firestore indexes file", "type": "string" }, "location": { + "description": "The region of the Firestore database to deploy. Required when 'database' is set.", "type": "string" }, "postdeploy": { @@ -105,7 +118,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -118,9 +132,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "Path to the firestore rules file", "type": "string" } }, @@ -210,6 +226,7 @@ "type": "string" }, "secrets": { + "description": "A list of secrets used in this app.", "items": { "type": "string" }, @@ -242,9 +259,11 @@ "additionalProperties": false, "properties": { "codebase": { + "description": "The codebase that these functions are part of. You can use codebases to control which functions are deployed\n ie: `firebase deploy --only functions:my-codebase`", "type": "string" }, "ignore": { + "description": "Files in the source directory that should not be uploaed during dpeloyment.", "items": { "type": "string" }, @@ -261,7 +280,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -274,9 +294,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "runtime": { + "description": "The runtime these functions should use.", "enum": [ "nodejs20", "nodejs22", @@ -288,6 +310,7 @@ "type": "string" }, "source": { + "description": "The directory containing your functions source code.\nThis directory will be archived and uploaded during deployment.\nFiles outside of this directory will not be included and should not be referenced from your functions code.", "type": "string" } }, @@ -299,6 +322,7 @@ "additionalProperties": false, "properties": { "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" }, "headers": { @@ -306,9 +330,11 @@ "additionalProperties": false, "properties": { "key": { + "description": "The header to set.", "type": "string" }, "value": { + "description": "The value to set this header to.", "type": "string" } }, @@ -335,9 +361,11 @@ "additionalProperties": false, "properties": { "key": { + "description": "The header to set.", "type": "string" }, "value": { + "description": "The value to set this header to.", "type": "string" } }, @@ -350,6 +378,7 @@ "type": "array" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -367,9 +396,11 @@ "additionalProperties": false, "properties": { "key": { + "description": "The header to set.", "type": "string" }, "value": { + "description": "The value to set this header to.", "type": "string" } }, @@ -382,6 +413,7 @@ "type": "array" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" } }, @@ -391,7 +423,8 @@ ], "type": "object" } - ] + ], + "description": "Extra headers that should be sent when serving this path." }, "HostingRedirects": { "anyOf": [ @@ -399,12 +432,19 @@ "additionalProperties": false, "properties": { "destination": { + "description": "The destination to redirect to.", "type": "string" }, "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" }, "type": { + "description": "The type of redirect.\nUse 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)", + "enum": [ + 301, + 302 + ], "type": "number" } }, @@ -418,12 +458,19 @@ "additionalProperties": false, "properties": { "destination": { + "description": "The destination to redirect to.", "type": "string" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" }, "type": { + "description": "The type of redirect.\nUse 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)", + "enum": [ + 301, + 302 + ], "type": "number" } }, @@ -437,12 +484,19 @@ "additionalProperties": false, "properties": { "destination": { + "description": "The destination to redirect to.", "type": "string" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" }, "type": { + "description": "The type of redirect.\nUse 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect)", + "enum": [ + 301, + 302 + ], "type": "number" } }, @@ -452,7 +506,8 @@ ], "type": "object" } - ] + ], + "description": "URL redirects for a hosting site. Use these to prevent broken links when moving pages." }, "HostingRewrites": { "anyOf": [ @@ -463,6 +518,7 @@ "type": "string" }, "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" } }, @@ -479,6 +535,7 @@ "type": "string" }, "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" }, "region": { @@ -498,12 +555,15 @@ "additionalProperties": false, "properties": { "functionId": { + "description": "The ID of the Cloud Function to rewrite to.", "type": "string" }, "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running version of the Cloud Function.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Function to rewrite to.", "type": "string" } }, @@ -513,6 +573,7 @@ "type": "object" }, "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" } }, @@ -526,18 +587,22 @@ "additionalProperties": false, "properties": { "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" }, "run": { "additionalProperties": false, "properties": { "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Run service to rewrite to.", "type": "string" }, "serviceId": { + "description": "The ID of the Cloud Run service to rewrite to.", "type": "string" } }, @@ -560,6 +625,7 @@ "type": "boolean" }, "glob": { + "description": "A glob pattern describing the paths that this setting should apply to.", "type": "string" } }, @@ -576,6 +642,7 @@ "type": "string" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -595,6 +662,7 @@ "type": "string" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -611,12 +679,15 @@ "additionalProperties": false, "properties": { "functionId": { + "description": "The ID of the Cloud Function to rewrite to.", "type": "string" }, "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running version of the Cloud Function.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Function to rewrite to.", "type": "string" } }, @@ -626,6 +697,7 @@ "type": "object" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -642,12 +714,15 @@ "additionalProperties": false, "properties": { "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Run service to rewrite to.", "type": "string" }, "serviceId": { + "description": "The ID of the Cloud Run service to rewrite to.", "type": "string" } }, @@ -657,6 +732,7 @@ "type": "object" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -673,6 +749,7 @@ "type": "boolean" }, "source": { + "description": "A file path that this setting should apply to.", "type": "string" } }, @@ -689,6 +766,7 @@ "type": "string" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" } }, @@ -705,6 +783,7 @@ "type": "string" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" }, "region": { @@ -724,12 +803,15 @@ "additionalProperties": false, "properties": { "functionId": { + "description": "The ID of the Cloud Function to rewrite to.", "type": "string" }, "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running version of the Cloud Function.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Function to rewrite to.", "type": "string" } }, @@ -739,6 +821,7 @@ "type": "object" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" } }, @@ -752,18 +835,22 @@ "additionalProperties": false, "properties": { "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" }, "run": { "additionalProperties": false, "properties": { "pinTag": { + "description": "If true, the rewrite will be pinned to the currently running revision of the Cloud Run service.", "type": "boolean" }, "region": { + "description": "The region of the Cloud Run service to rewrite to.", "type": "string" }, "serviceId": { + "description": "The ID of the Cloud Run service to rewrite to.", "type": "string" } }, @@ -786,6 +873,7 @@ "type": "boolean" }, "regex": { + "description": "A regex pattern that matches the paths that this setting should apply to. *", "type": "string" } }, @@ -795,10 +883,12 @@ ], "type": "object" } - ] + ], + "description": "Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service." }, "HostingSingle": { "additionalProperties": false, + "description": "Deployment options for a single Firebase Hosting site.", "properties": { "appAssociation": { "enum": [ @@ -811,9 +901,11 @@ "type": "boolean" }, "frameworksBackend": { - "$ref": "#/definitions/FrameworksBackendOptions" + "$ref": "#/definitions/FrameworksBackendOptions", + "description": "Options for this sites web frameworks backend." }, "headers": { + "description": "A list of extra headers to send when serving specific paths on this site.", "items": { "$ref": "#/definitions/HostingHeaders" }, @@ -821,8 +913,10 @@ }, "i18n": { "additionalProperties": false, + "description": "Internationalization config for this site.\nSee https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites\nfor instructions on how to enable interntionalization for your site.", "properties": { "root": { + "description": "The directory containing internationalization rewrites.", "type": "string" } }, @@ -832,6 +926,7 @@ "type": "object" }, "ignore": { + "description": "A list of paths or globs within the source directory that should not be included in the uploaded archive.", "items": { "type": "string" }, @@ -848,7 +943,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -861,30 +957,37 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "public": { + "description": "Whether this site should publically available.", "type": "string" }, "redirects": { + "description": "A list of redirects for this site.", "items": { "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { + "description": "A list o rewrites for this site.", "items": { "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, "site": { + "description": "The site to deploy.", "type": "string" }, "source": { + "description": "Path to the directory containing this site's source code. This will be archived and uploaded during deployment.", "type": "string" }, "target": { + "description": "The deploy target to deploy.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" }, "trailingSlash": { @@ -899,6 +1002,7 @@ }, "RemoteConfigConfig": { "additionalProperties": false, + "description": "A Remote Config template to deploy.", "properties": { "postdeploy": { "anyOf": [ @@ -911,7 +1015,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -924,9 +1029,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "template": { + "description": "A path to a CJSON file containing a Remote Config template.", "type": "string" } }, @@ -937,6 +1044,7 @@ }, "StorageSingle": { "additionalProperties": false, + "description": "Deployment options for a single Firebase storage bucket.", "properties": { "postdeploy": { "anyOf": [ @@ -949,7 +1057,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -962,12 +1071,15 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "Path to the rules files for this Firebase Storage bucket.", "type": "string" }, "target": { + "description": "The deploy target to these Storage rules to.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" } }, @@ -977,8 +1089,10 @@ "type": "object" } }, + "description": "Information about the resources in your Firebase project.\nThis used for declarative deployments via `firebase deploy` and local emulation via `firebase emulators:start`", "properties": { "$schema": { + "description": "Unused. Included in schema so that the schema can be applied to single files.", "format": "uri", "type": "string" }, @@ -986,20 +1100,25 @@ "anyOf": [ { "additionalProperties": false, + "description": "A single App Hosting deployment config", "properties": { "alwaysDeployFromSource": { + "description": "If true, this backend will only be deployed from local source, not from source control.", "type": "boolean" }, "backendId": { + "description": "The ID of the backend that should be deployed.", "type": "string" }, "ignore": { + "description": "A list of file paths to exclude from the archive that is uploaded for this backend.", "items": { "type": "string" }, "type": "array" }, "rootDir": { + "description": "The root directory of your app. This directory will be archived and uploaded during dpeloyment.", "type": "string" } }, @@ -1011,22 +1130,28 @@ "type": "object" }, { + "description": "A list of App Hosting deployment configs", "items": { "additionalProperties": false, + "description": "A single App Hosting deployment config", "properties": { "alwaysDeployFromSource": { + "description": "If true, this backend will only be deployed from local source, not from source control.", "type": "boolean" }, "backendId": { + "description": "The ID of the backend that should be deployed.", "type": "string" }, "ignore": { + "description": "A list of file paths to exclude from the archive that is uploaded for this backend.", "items": { "type": "string" }, "type": "array" }, "rootDir": { + "description": "The root directory of your app. This directory will be archived and uploaded during dpeloyment.", "type": "string" } }, @@ -1039,20 +1164,24 @@ }, "type": "array" } - ] + ], + "description": "The App Hosting backend(s) that should be deployed or emulated." }, "database": { "anyOf": [ { - "$ref": "#/definitions/DatabaseSingle" + "$ref": "#/definitions/DatabaseSingle", + "description": "Deployment options for a single Realtime Database instance." }, { + "description": "Deployment options for a list of Realtime Database instancs.", "items": { "anyOf": [ { "additionalProperties": false, "properties": { "instance": { + "description": "The instance that this rules files is for.", "type": "string" }, "postdeploy": { @@ -1066,7 +1195,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1079,9 +1209,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "The rules files for this Realtime Database instance.", "type": "string" }, "target": { @@ -1098,6 +1230,7 @@ "additionalProperties": false, "properties": { "instance": { + "description": "The instance that this rules files is for.", "type": "string" }, "postdeploy": { @@ -1111,7 +1244,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1124,9 +1258,11 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "The rules files for this Realtime Database instance.", "type": "string" }, "target": { @@ -1143,37 +1279,47 @@ }, "type": "array" } - ] + ], + "description": "The Realtime Database rules that should be deployed or emulated." }, "dataconnect": { "anyOf": [ { - "$ref": "#/definitions/DataConnectSingle" + "$ref": "#/definitions/DataConnectSingle", + "description": "A single Data Connect deployment configs" }, { + "description": "A list of Data Connect deployment configs", "items": { "$ref": "#/definitions/DataConnectSingle" }, "type": "array" } - ] + ], + "description": "The Data Connect service(s) that should be deployed or emulated." }, "emulators": { "additionalProperties": false, + "description": "Hosts, ports, and configuration options for the Firebase Emulator suite.", "properties": { "apphosting": { "additionalProperties": false, + "description": "Config for the App Hosting emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" }, "rootDirectory": { + "description": "The root directory of your app. The start command will ran from this directory.", "type": "string" }, "startCommand": { + "description": "The command that will be run to start your app when emulating your App Hosting backend", "type": "string" }, "startCommandOverride": { @@ -1184,11 +1330,14 @@ }, "auth": { "additionalProperties": false, + "description": "Config for the Auth emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1196,11 +1345,14 @@ }, "database": { "additionalProperties": false, + "description": "Config for the Realtime Database emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1208,20 +1360,26 @@ }, "dataconnect": { "additionalProperties": false, + "description": "Config for the Data Connect emulator.", "properties": { "dataDir": { + "description": "The directory to persist emulator data to. If set, data will be saved between runs automatically.\nIf the --import flag is used, the current data will be overwritten by the imported data.", "type": "string" }, "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" }, "postgresHost": { + "description": "Host for the Postgres database that backs the Data Connect emulator.", "type": "string" }, "postgresPort": { + "description": "Port for the Postgres database that backs the Data Connect emulator.", "type": "number" } }, @@ -1229,27 +1387,34 @@ }, "eventarc": { "additionalProperties": false, + "description": "Config for the EventArc emulator.", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, "type": "object" }, "extensions": { + "description": "Placeholder - the Extensions emulator has no configuration options.", "properties": {}, "type": "object" }, "firestore": { "additionalProperties": false, + "description": "Config for the Firestore emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" }, "websocketPort": { @@ -1258,25 +1423,16 @@ }, "type": "object" }, - "functions": { - "additionalProperties": false, - "properties": { - "host": { - "type": "string" - }, - "port": { - "type": "number" - } - }, - "type": "object" - }, "hosting": { "additionalProperties": false, + "description": "Config for the Firebase Hosting emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1284,11 +1440,14 @@ }, "hub": { "additionalProperties": false, + "description": "Config for the emulator suite hub.", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1296,11 +1455,14 @@ }, "logging": { "additionalProperties": false, + "description": "Config for the logging emulator.", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1308,26 +1470,33 @@ }, "pubsub": { "additionalProperties": false, + "description": "Config for the Pub/Sub emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, "type": "object" }, "singleProjectMode": { + "description": "If true, the Emulator Suite will only allow a single project to be used at a time.", "type": "boolean" }, "storage": { "additionalProperties": false, + "description": "Config for the Firebase Storage emulator", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1335,11 +1504,14 @@ }, "tasks": { "additionalProperties": false, + "description": "Config for the Cloud Tasks emulator.", "properties": { "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1347,14 +1519,18 @@ }, "ui": { "additionalProperties": false, + "description": "Config for the Emulator UI.", "properties": { "enabled": { + "description": "If false, the Emulator UI will not be served.", "type": "boolean" }, "host": { + "description": "The host that this emulator will serve on.", "type": "string" }, "port": { + "description": "The port that this emulator will serve on.", "type": "number" } }, @@ -1364,23 +1540,28 @@ "type": "object" }, "extensions": { - "$ref": "#/definitions/ExtensionsConfig" + "$ref": "#/definitions/ExtensionsConfig", + "description": "The Firebase Extension(s) that should be deployed or emulated." }, "firestore": { "anyOf": [ { - "$ref": "#/definitions/FirestoreSingle" + "$ref": "#/definitions/FirestoreSingle", + "description": "Deployment options for a single Firestore database." }, { + "description": "Deployment options for a list of Firestore databases.", "items": { "anyOf": [ { "additionalProperties": false, "properties": { "database": { + "description": "The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases.", "type": "string" }, "indexes": { + "description": "Path to the firestore indexes file for this database", "type": "string" }, "postdeploy": { @@ -1394,7 +1575,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1407,12 +1589,15 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "Path to the firestore rules file for this database", "type": "string" }, "target": { + "description": "The deploy target these rules and indexes should be deployed to.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" } }, @@ -1425,9 +1610,11 @@ "additionalProperties": false, "properties": { "database": { + "description": "The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases.", "type": "string" }, "indexes": { + "description": "Path to the firestore indexes file for this database", "type": "string" }, "postdeploy": { @@ -1441,7 +1628,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1454,12 +1642,15 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "Path to the firestore rules file for this database", "type": "string" }, "target": { + "description": "The deploy target these rules and indexes should be deployed to.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" } }, @@ -1472,7 +1663,8 @@ }, "type": "array" } - ] + ], + "description": "The Firestore rules and indexes that should be deployed or emulated." }, "functions": { "anyOf": [ @@ -1485,14 +1677,17 @@ }, "type": "array" } - ] + ], + "description": "The Cloud Functions for Firebase that should be deployed or emulated." }, "hosting": { "anyOf": [ { - "$ref": "#/definitions/HostingSingle" + "$ref": "#/definitions/HostingSingle", + "description": "Deployment options for a single Firebase Hosting site." }, { + "description": "Deployment options for a list of Firebase Hosting sites.", "items": { "anyOf": [ { @@ -1509,9 +1704,11 @@ "type": "boolean" }, "frameworksBackend": { - "$ref": "#/definitions/FrameworksBackendOptions" + "$ref": "#/definitions/FrameworksBackendOptions", + "description": "Options for this sites web frameworks backend." }, "headers": { + "description": "A list of extra headers to send when serving specific paths on this site.", "items": { "$ref": "#/definitions/HostingHeaders" }, @@ -1519,8 +1716,10 @@ }, "i18n": { "additionalProperties": false, + "description": "Internationalization config for this site.\nSee https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites\nfor instructions on how to enable interntionalization for your site.", "properties": { "root": { + "description": "The directory containing internationalization rewrites.", "type": "string" } }, @@ -1530,6 +1729,7 @@ "type": "object" }, "ignore": { + "description": "A list of paths or globs within the source directory that should not be included in the uploaded archive.", "items": { "type": "string" }, @@ -1546,7 +1746,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1559,30 +1760,37 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "public": { + "description": "Whether this site should publically available.", "type": "string" }, "redirects": { + "description": "A list of redirects for this site.", "items": { "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { + "description": "A list o rewrites for this site.", "items": { "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, "site": { + "description": "The site to deploy", "type": "string" }, "source": { + "description": "Path to the directory containing this site's source code. This will be archived and uploaded during deployment.", "type": "string" }, "target": { + "description": "The deploy target to deploy.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" }, "trailingSlash": { @@ -1608,9 +1816,11 @@ "type": "boolean" }, "frameworksBackend": { - "$ref": "#/definitions/FrameworksBackendOptions" + "$ref": "#/definitions/FrameworksBackendOptions", + "description": "Options for this sites web frameworks backend." }, "headers": { + "description": "A list of extra headers to send when serving specific paths on this site.", "items": { "$ref": "#/definitions/HostingHeaders" }, @@ -1618,8 +1828,10 @@ }, "i18n": { "additionalProperties": false, + "description": "Internationalization config for this site.\nSee https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites\nfor instructions on how to enable interntionalization for your site.", "properties": { "root": { + "description": "The directory containing internationalization rewrites.", "type": "string" } }, @@ -1629,6 +1841,7 @@ "type": "object" }, "ignore": { + "description": "A list of paths or globs within the source directory that should not be included in the uploaded archive.", "items": { "type": "string" }, @@ -1645,7 +1858,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1658,30 +1872,37 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "public": { + "description": "Whether this site should publically available.", "type": "string" }, "redirects": { + "description": "A list of redirects for this site.", "items": { "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { + "description": "A list o rewrites for this site.", "items": { "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, "site": { + "description": "The site to deploy", "type": "string" }, "source": { + "description": "Path to the directory containing this site's source code. This will be archived and uploaded during deployment.", "type": "string" }, "target": { + "description": "The deploy target to deploy.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" }, "trailingSlash": { @@ -1697,21 +1918,26 @@ }, "type": "array" } - ] + ], + "description": "The Firebase Hosting site(s) that should be deployed or emulated." }, "remoteconfig": { - "$ref": "#/definitions/RemoteConfigConfig" + "$ref": "#/definitions/RemoteConfigConfig", + "description": "The Remote Config template(s) used by this project." }, "storage": { "anyOf": [ { - "$ref": "#/definitions/StorageSingle" + "$ref": "#/definitions/StorageSingle", + "description": "Deployment options for a single Firebase storage bucket." }, { + "description": "Deployment options for multiple Firebase storage buckets.", "items": { "additionalProperties": false, "properties": { "bucket": { + "description": "The Firebase Storage bucket that this config is for.", "type": "string" }, "postdeploy": { @@ -1725,7 +1951,8 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran after this product is deployed." }, "predeploy": { "anyOf": [ @@ -1738,12 +1965,15 @@ { "type": "string" } - ] + ], + "description": "A script or list of scripts that will be ran before this product is deployed." }, "rules": { + "description": "Path to the rules files for this Firebase Storage bucket.", "type": "string" }, "target": { + "description": "The deploy target to these Storage rules to.\nSee https://firebase.google.com/docs/cli/targets to learn more about deploy targets.", "type": "string" } }, @@ -1755,7 +1985,8 @@ }, "type": "array" } - ] + ], + "description": "The Firebase Storage rules that should be deployed or emulated." } }, "type": "object" diff --git a/scripts/docs-gen/index.js b/scripts/docs-gen/index.js new file mode 100644 index 00000000000..33496e3b1bf --- /dev/null +++ b/scripts/docs-gen/index.js @@ -0,0 +1,13 @@ +const JsonSchemaStaticDocs = require("json-schema-static-docs"); + +(async () => { + const jsonSchemaStaticDocs = new JsonSchemaStaticDocs({ + inputPath: "../../schema", + outputPath: "../../schema/docs", + ajvOptions: { + allowUnionTypes: true, + }, + }); + await jsonSchemaStaticDocs.generate(); + console.log("Documents generated."); +})(); diff --git a/scripts/docs-gen/jsfh-config.yaml b/scripts/docs-gen/jsfh-config.yaml new file mode 100644 index 00000000000..f78051b50cb --- /dev/null +++ b/scripts/docs-gen/jsfh-config.yaml @@ -0,0 +1,2 @@ +template_name: md +show_toc: false \ No newline at end of file diff --git a/scripts/docs-gen/package-lock.json b/scripts/docs-gen/package-lock.json new file mode 100644 index 00000000000..59744d197d3 --- /dev/null +++ b/scripts/docs-gen/package-lock.json @@ -0,0 +1,1049 @@ +{ + "name": "docs-gen", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs-gen", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "json-schema-static-docs": "^0.28.1" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", + "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.11", + "@types/lodash.clonedeep": "^4.5.7", + "js-yaml": "^4.1.0", + "lodash.clonedeep": "^4.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.17.tgz", + "integrity": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==", + "license": "MIT" + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.9", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", + "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-static-docs": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/json-schema-static-docs/-/json-schema-static-docs-0.28.1.tgz", + "integrity": "sha512-Ti4UO5wK1GqWzCuij57twgfT04NSoluPgLlnf8Sz9ex6tVEgCM2Z1niRSDkZgw7C4MNJM9MCwGdjtUGSbjO/eA==", + "license": "GPL-3.0-only", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^10.1.0", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "extend": "^3.0.2", + "fast-glob": "^3.3.1", + "handlebars": "^4.7.7", + "jsonpointer": "^5.0.1", + "lodash": ">=4.17.21", + "make-dir": "^3.1.0", + "mkdirp": "^2.1.6", + "optimist": "^0.5.2", + "rimraf": "^5.0.10", + "yaml": "^2.2.2" + }, + "bin": { + "json-schema-static-docs": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/optimist": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.5.2.tgz", + "integrity": "sha512-r9M8ZpnM9SXV5Wii7TCqienfcaY3tAiJe9Jchof87icbmbruKgK0xKXngmrnowTDnEawmmI1Qbha59JEoBkBGA==", + "license": "MIT/X11", + "dependencies": { + "wordwrap": "~0.0.2" + } + }, + "node_modules/optimist/node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + } + } +} diff --git a/scripts/docs-gen/package.json b/scripts/docs-gen/package.json new file mode 100644 index 00000000000..9bf5b26f0b1 --- /dev/null +++ b/scripts/docs-gen/package.json @@ -0,0 +1,15 @@ +{ + "name": "docs-gen", + "version": "1.0.0", + "description": "Generate markdown docs for firebase.json and other schemas", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "generate-docs": "node index.js" + }, + "author": "", + "license": "ISC", + "dependencies": { + "json-schema-static-docs": "^0.28.1" + } +} diff --git a/src/deploy/functions/runtimes/supported/types.ts b/src/deploy/functions/runtimes/supported/types.ts index 7c127e4569a..cb3c8a3bace 100644 --- a/src/deploy/functions/runtimes/supported/types.ts +++ b/src/deploy/functions/runtimes/supported/types.ts @@ -123,4 +123,7 @@ export type DecommissionedRuntime = { : never; }[keyof typeof RUNTIMES]; +/** + * The Cloud Functions runtimes that currently can be deployed by `firebase deploy`. + */ export type ActiveRuntime = Exclude; diff --git a/src/firebaseConfig.ts b/src/firebaseConfig.ts index b0c46bee651..4fd534dfd00 100644 --- a/src/firebaseConfig.ts +++ b/src/firebaseConfig.ts @@ -1,7 +1,9 @@ // // NOTE: // The contents of this file are used to generate the JSON Schema documents in -// the schema/ directory. After changing this file you will need to run +// the schema/ directory. +// Comments in /** */ this file become the description in the JSON schema - please treat them as public documentation. +// After changing this file you will need to run // 'npm run generate:json-schema' to regenerate the schema files. // @@ -19,63 +21,167 @@ export type RequireAtLeastOne = { [K in keyof T]-?: Required> & Partial>>; }[keyof T]; +/** + * Common configuration options for all Firebase products that can be deployed by the Firebase CLI. + */ export type Deployable = { + /** + * A script or list of scripts that will be ran before this product is deployed. + */ predeploy?: string | string[]; + /** + * A script or list of scripts that will be ran after this product is deployed. + */ postdeploy?: string | string[]; }; +/** + * Deployment options for a single Realtime Database instance. + */ type DatabaseSingle = { + /** + * The rules files for this Realtime Database instance. + */ rules: string; } & Deployable; +/** + * Deployment options for a list of Realtime Database instancs. + */ type DatabaseMultiple = ({ + /** + * The rules files for this Realtime Database instance. + */ rules: string; } & RequireAtLeastOne<{ + /** + * The instance that this rules files is for. + */ instance: string; target: string; }> & Deployable)[]; +/** + * Deployment options for a single Firestore database. + */ type FirestoreSingle = { + /** + * The id of the Firestore database to deploy. If omitted, defaults to '(default)' + */ database?: string; + /** + * The region of the Firestore database to deploy. Required when 'database' is set. + */ location?: string; + /** + * Path to the firestore rules file + */ rules?: string; + /** + * Path to the firestore indexes file + */ indexes?: string; } & Deployable; +/** + * Deployment options for a list of Firestore databases. + */ type FirestoreMultiple = ({ + /** + * Path to the firestore rules file for this database + */ rules?: string; + /** + * Path to the firestore indexes file for this database + */ indexes?: string; } & RequireAtLeastOne<{ + /** + * The ID of the Firestore database to deploy. Required when deploying multiple Firestore databases. + */ database: string; + /** + * The deploy target these rules and indexes should be deployed to. + * See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + */ target: string; }> & Deployable)[]; -export type HostingSource = { glob: string } | { source: string } | { regex: string }; +export type HostingSource = + | { + /** A glob pattern describing the paths that this setting should apply to. */ + glob: string; + } + | { + /** A file path that this setting should apply to.*/ + source: string; + } + | { + /** A regex pattern that matches the paths that this setting should apply to. **/ + regex: string; + }; +/** + * URL redirects for a hosting site. Use these to prevent broken links when moving pages. + */ export type HostingRedirects = HostingSource & { + /** + * The destination to redirect to. + */ destination: string; - type?: number; + /** + * The type of redirect. + * Use 301 for 'Moved Permanently' or 302 for 'Found' (Temporary Redirect) + */ + type?: 301 | 302; }; +/** + * A simple rewrite from one path to another. + */ export type DestinationRewrite = { destination: string }; +/** + * DEPRECATED: A Hosting rewrite to a Cloud Function. + */ export type LegacyFunctionsRewrite = { function: string; region?: string }; +/** + * A Hosting rewrite to a Cloud Function. + */ export type FunctionsRewrite = { function: { + /** The ID of the Cloud Function to rewrite to. */ functionId: string; + /** The region of the Cloud Function to rewrite to. */ region?: string; + /** + * If true, the rewrite will be pinned to the currently running version of the Cloud Function. + * */ pinTag?: boolean; }; }; +/** + * A Hosting rewrite to a Cloud Run service. + */ export type RunRewrite = { run: { + /** The ID of the Cloud Run service to rewrite to. */ serviceId: string; + /** The region of the Cloud Run service to rewrite to. */ region?: string; + /** If true, the rewrite will be pinned to the currently running revision of the Cloud Run service. */ pinTag?: boolean; }; }; + +/** + * DEPRECATED: A Hosting rewrite ot a Firebase Dynamic Link. + */ export type DynamicLinksRewrite = { dynamicLinks: boolean }; +/** + * Defines a Hosting rewrite. Rewrites allow you to redirect URLs to a different path, Cloud function or Cloud Run service. + */ export type HostingRewrites = HostingSource & ( | DestinationRewrite @@ -85,9 +191,18 @@ export type HostingRewrites = HostingSource & | DynamicLinksRewrite ); +/** + * Extra headers that should be sent when serving this path. + */ export type HostingHeaders = HostingSource & { headers: { + /** + * The header to set. + */ key: string; + /** + * The value to set this header to. + */ value: string; }[]; }; @@ -107,6 +222,7 @@ interface FrameworksBackendOptions extends HttpsOptions { vpcConnectorEgressSettings?: VpcEgressSetting; serviceAccount?: string; ingressSettings?: IngressSetting; + /** A list of secrets used in this app. */ secrets?: string[]; // Only allow a single region to be specified region?: string; @@ -115,180 +231,393 @@ interface FrameworksBackendOptions extends HttpsOptions { } export type HostingBase = { + /** + * Whether this site should publically available. + */ public?: string; + /** + * Path to the directory containing this site's source code. This will be archived and uploaded during deployment. + */ source?: string; + /** + * A list of paths or globs within the source directory that should not be included in the uploaded archive. + */ ignore?: string[]; appAssociation?: "AUTO" | "NONE"; cleanUrls?: boolean; trailingSlash?: boolean; + /** + * A list of redirects for this site. + */ redirects?: HostingRedirects[]; + /** + * A list o rewrites for this site. + */ rewrites?: HostingRewrites[]; + /** + * A list of extra headers to send when serving specific paths on this site. + */ headers?: HostingHeaders[]; + /** + * Internationalization config for this site. + * See https://firebase.google.com/docs/hosting/i18n-rewrites#set-up-i18n-rewrites + * for instructions on how to enable interntionalization for your site. + */ i18n?: { + /** + * The directory containing internationalization rewrites. + */ root: string; }; + /** + * Options for this sites web frameworks backend. + */ frameworksBackend?: FrameworksBackendOptions; }; +/** + * Deployment options for a single Firebase Hosting site. + */ export type HostingSingle = HostingBase & { + /** + * The site to deploy. + */ site?: string; + /** + * The deploy target to deploy. + * See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + */ target?: string; } & Deployable; -// N.B. You would expect that a HostingMultiple is a HostingSingle[], but not -// quite. When you only have one hosting object you can omit both `site` and -// `target` because the default site will be looked up and provided for you. -// When you have a list of hosting targets, though, we require all configs -// to specify which site is being targeted. -// If you can assume we've resolved targets, you probably want to use -// HostingResolved, which says you must have site and may have target. +/** + * Deployment options for a list of Firebase Hosting sites. + */ export type HostingMultiple = (HostingBase & RequireAtLeastOne<{ + /** + * The site to deploy + */ site: string; + /** + * The deploy target to deploy. + * See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + */ target: string; }> & Deployable)[]; +/** + * Deployment options for a single Firebase storage bucket. + */ type StorageSingle = { + /** + * Path to the rules files for this Firebase Storage bucket. + */ rules: string; + /** + * The deploy target to these Storage rules to. + * See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + */ target?: string; } & Deployable; +/** + * Deployment options for multiple Firebase storage buckets. + */ type StorageMultiple = ({ + /** + * Path to the rules files for this Firebase Storage bucket. + */ rules: string; + /** + * The Firebase Storage bucket that this config is for. + */ bucket: string; + /** + * The deploy target to these Storage rules to. + * See https://firebase.google.com/docs/cli/targets to learn more about deploy targets. + */ target?: string; } & Deployable)[]; -// Full Configs +/** + * A single or list of Realtime Database deployment configs + */ export type DatabaseConfig = DatabaseSingle | DatabaseMultiple; +/** + * A single or list of Firestore deployment configs + */ export type FirestoreConfig = FirestoreSingle | FirestoreMultiple; export type FunctionConfig = { + /** + * The directory containing your functions source code. + * This directory will be archived and uploaded during deployment. + * Files outside of this directory will not be included and should not be referenced from your functions code. + */ source?: string; + /** + * Files in the source directory that should not be uploaed during dpeloyment. + */ ignore?: string[]; + /** + * The runtime these functions should use. + */ runtime?: ActiveRuntime; + /** + * The codebase that these functions are part of. You can use codebases to control which functions are deployed + * ie: `firebase deploy --only functions:my-codebase` + */ codebase?: string; } & Deployable; +/** + * A single or list of Cloud Functions for Firebase deployment configs + */ export type FunctionsConfig = FunctionConfig | FunctionConfig[]; +/** + * A single or list of Firebase Hosting deployment configs + */ export type HostingConfig = HostingSingle | HostingMultiple; +/** + * A single or list of Firebase Storage deployment configs + */ export type StorageConfig = StorageSingle | StorageMultiple; +/** + * A Remote Config template to deploy. + */ export type RemoteConfigConfig = { + /** + * A path to a CJSON file containing a Remote Config template. + */ template: string; } & Deployable; +/** + * Configures the host and port an emulator will be served. If omitted, the emulator suite will + * automatically discover available ports. + */ +type EmulatorServingConfig = { + /** + * The host that this emulator will serve on. + */ + host?: string; + /** + * The port that this emulator will serve on. + */ + port?: number; +}; + +/** + * Hosts, ports, and configuration options for the Firebase Emulator suite. + */ export type EmulatorsConfig = { - auth?: { - host?: string; - port?: number; - }; - database?: { - host?: string; - port?: number; - }; - firestore?: { - host?: string; - port?: number; + /** + * Config for the Auth emulator + */ + auth?: EmulatorServingConfig; + /** + * Config for the Realtime Database emulator + */ + database?: EmulatorServingConfig; + /** + * Config for the Firestore emulator + */ + firestore?: EmulatorServingConfig & { websocketPort?: number; }; - functions?: { - host?: string; - port?: number; - }; - hosting?: { - host?: string; - port?: number; - }; - apphosting?: { - host?: string; - port?: number; + /** + * Config for the Firebase Hosting emulator + */ + hosting?: EmulatorServingConfig; + /** + * Config for the App Hosting emulator + */ + apphosting?: EmulatorServingConfig & { + /** The command that will be run to start your app when emulating your App Hosting backend */ startCommand?: string; /** * @deprecated */ startCommandOverride?: string; + /** The root directory of your app. The start command will ran from this directory. */ rootDirectory?: string; }; - pubsub?: { - host?: string; - port?: number; - }; - storage?: { - host?: string; - port?: number; - }; - logging?: { - host?: string; - port?: number; - }; - hub?: { - host?: string; - port?: number; - }; - ui?: { + /** + * Config for the Pub/Sub emulator + */ + pubsub?: EmulatorServingConfig; + /** + * Config for the Firebase Storage emulator + */ + storage?: EmulatorServingConfig; + /** + * Config for the logging emulator. + */ + logging?: EmulatorServingConfig; + /** + * Config for the emulator suite hub. + */ + hub?: EmulatorServingConfig; + /** + * Config for the Emulator UI. + */ + ui?: EmulatorServingConfig & { + /** + * If false, the Emulator UI will not be served. + */ enabled?: boolean; - host?: string; - port?: number; }; + /** + * Placeholder - the Extensions emulator has no configuration options. + */ extensions?: {}; - eventarc?: { - host?: string; - port?: number; - }; + /** + * Config for the EventArc emulator. + */ + eventarc?: EmulatorServingConfig; + /** + * If true, the Emulator Suite will only allow a single project to be used at a time. + */ singleProjectMode?: boolean; - dataconnect?: { - host?: string; - port?: number; + /** + * Config for the Data Connect emulator. + */ + dataconnect?: EmulatorServingConfig & { + /** + * Host for the Postgres database that backs the Data Connect emulator. + */ postgresHost?: string; + /** + * Port for the Postgres database that backs the Data Connect emulator. + */ postgresPort?: number; + /** + * The directory to persist emulator data to. If set, data will be saved between runs automatically. + * If the --import flag is used, the current data will be overwritten by the imported data. + */ dataDir?: string; }; - tasks?: { - host?: string; - port?: number; - }; + /** + * Config for the Cloud Tasks emulator. + */ + tasks?: EmulatorServingConfig; }; +/** + * The Firebase Extensions that should be deployed to this project. + * This is a map of instance ID to extension reference (/@)- ie: + * "my-firestore-export": "firebase/firestore-bigquery-export@1.2.3" + * + * Version can also be a semver range. + */ export type ExtensionsConfig = Record; +/** + * A single Data Connect deployment configs + */ export type DataConnectSingle = { - // The directory containing dataconnect.yaml for this service + /** + * The directory containing dataconnect.yaml for this service + */ source: string; } & Deployable; +/** + * A list of Data Connect deployment configs + */ export type DataConnectMultiple = DataConnectSingle[]; +/** + * A single or list of Data Connect deployment configs + */ export type DataConnectConfig = DataConnectSingle | DataConnectMultiple; +/** + * A single App Hosting deployment config + */ export type AppHostingSingle = { + /** + * The ID of the backend that should be deployed. + */ backendId: string; + /** + * The root directory of your app. This directory will be archived and uploaded during dpeloyment. + */ rootDir: string; + /** + * A list of file paths to exclude from the archive that is uploaded for this backend. + */ ignore: string[]; + /** + * If true, this backend will only be deployed from local source, not from source control. + */ alwaysDeployFromSource?: boolean; }; +/** + * A list of App Hosting deployment configs + */ export type AppHostingMultiple = AppHostingSingle[]; +/** + * A single or list of App Hosting deployment configs + */ export type AppHostingConfig = AppHostingSingle | AppHostingMultiple; +/** + * Information about the resources in your Firebase project. + * This used for declarative deployments via `firebase deploy` and local emulation via `firebase emulators:start` + */ export type FirebaseConfig = { /** - * @TJS-format uri + * The Realtime Database rules that should be deployed or emulated. */ - $schema?: string; database?: DatabaseConfig; + /** + * The Firestore rules and indexes that should be deployed or emulated. + */ firestore?: FirestoreConfig; + /** + * The Cloud Functions for Firebase that should be deployed or emulated. + */ functions?: FunctionsConfig; + /** + * The Firebase Hosting site(s) that should be deployed or emulated. + */ hosting?: HostingConfig; + /** + * The Firebase Storage rules that should be deployed or emulated. + */ storage?: StorageConfig; + /** + * The Remote Config template(s) used by this project. + */ remoteconfig?: RemoteConfigConfig; - emulators?: EmulatorsConfig; + /** + * The Firebase Extension(s) that should be deployed or emulated. + */ extensions?: ExtensionsConfig; + /** + * The Data Connect service(s) that should be deployed or emulated. + */ dataconnect?: DataConnectConfig; + /** + * The App Hosting backend(s) that should be deployed or emulated. + */ apphosting?: AppHostingConfig; + /** + * Hosts, ports, and configuration options for the Firebase Emulator suite. + */ + emulators?: EmulatorsConfig; + /** + * Unused. Included in schema so that the schema can be applied to single files. + * @TJS-format uri + */ + $schema?: string; };