{
  "name": "algolia",
  "version": "0.6.2",
  "description": "A Pulumi provider dynamically bridged from algolia.",
  "attribution": "This Pulumi package is based on the [`algolia` Terraform Provider](https://github.com/k-yomo/terraform-provider-algolia).",
  "repository": "https://github.com/k-yomo/terraform-provider-algolia",
  "publisher": "k-yomo",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "generateExtraInputTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true,
      "rootPackageName": "algolia"
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "packageDescription": "A Pulumi provider dynamically bridged from algolia.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/k-yomo/terraform-provider-algolia)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-algolia` repo](https://github.com/k-yomo/terraform-provider-algolia/issues).",
      "respectSchemaVersion": true
    },
    "python": {
      "compatibility": "tfbridge20",
      "pyproject": {
        "enabled": true
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/k-yomo/terraform-provider-algolia)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-algolia` repo](https://github.com/k-yomo/terraform-provider-algolia/issues).",
      "respectSchemaVersion": true
    }
  },
  "config": {
    "variables": {
      "apiKey": {
        "type": "string",
        "description": "The API key to access algolia resources. Defaults to the env variable `ALGOLIA_API_KEY`.\n",
        "secret": true
      },
      "appId": {
        "type": "string",
        "description": "The ID of the application. Defaults to the env variable `ALGOLIA_APP_ID`.\n"
      }
    }
  },
  "types": {
    "algolia:index/IndexAdvancedConfig:IndexAdvancedConfig": {
      "properties": {
        "attributeCriteriaComputedByMinProximity": {
          "type": "boolean",
          "description": "When attribute is ranked above proximity in your ranking formula, proximity is used to select which searchable attribute is matched in the **attribute ranking stage**.\n"
        },
        "attributeForDistinct": {
          "type": "string",
          "description": "Name of the de-duplication attribute to be used with the `distinct` feature.\n"
        },
        "distinct": {
          "type": "number",
          "description": "Whether to enable de-duplication or grouping of results.\n- When set to `0`, you disable de-duplication and grouping.\n- When set to `1`, you enable **de-duplication**, in which only the most relevant result is returned for all records that have the same value in the distinct attribute. This is similar to the SQL `distinct` keyword.\nif `distinct` is set to 1 (de-duplication):\n- When set to `N (where N > 1)`, you enable grouping, in which most N hits will be returned with the same value for the distinct attribute.\nthen the N most relevant episodes for every show are kept, with similar consequences.\n"
        },
        "maxFacetHits": {
          "type": "number",
          "description": "Maximum number of facet hits to return during a search for facet values.\n"
        },
        "minProximity": {
          "type": "number",
          "description": "Precision of the `proximity` ranking criterion.\n"
        },
        "replaceSynonymsInHighlight": {
          "type": "boolean",
          "description": "Whether to highlight and snippet the original word that matches the synonym or the synonym itself.\n"
        },
        "responseFields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The fields the response will contain. Applies to search and browse queries.\nThis parameter is mainly intended to **limit the response size.** For example, in complex queries, echoing of request parameters in the response’s params field can be undesirable.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexAttributesConfig:IndexAttributesConfig": {
      "properties": {
        "attributesForFacetings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The complete list of attributes that will be used for faceting.\n"
        },
        "attributesToRetrieves": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to be retrieved at query time.\n"
        },
        "searchableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The complete list of attributes used for searching.\n"
        },
        "unretrievableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes that cannot be retrieved at query time.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexFacetingConfig:IndexFacetingConfig": {
      "properties": {
        "maxValuesPerFacet": {
          "type": "number",
          "description": "Maximum number of facet values to return for each facet during a regular search.\n"
        },
        "sortFacetValuesBy": {
          "type": "string",
          "description": "Parameter to controls how the facet values are sorted within each faceted attribute.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexHighlightAndSnippetConfig:IndexHighlightAndSnippetConfig": {
      "properties": {
        "attributesToHighlights": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to highlight.\n"
        },
        "attributesToSnippets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to snippet, with an optional maximum number of words to snippet.\n"
        },
        "highlightPostTag": {
          "type": "string",
          "description": "The HTML string to insert after the highlighted parts in all highlight and snippet results.\n"
        },
        "highlightPreTag": {
          "type": "string",
          "description": "The HTML string to insert before the highlighted parts in all highlight and snippet results.\n"
        },
        "restrictHighlightAndSnippetArrays": {
          "type": "boolean",
          "description": "Restrict highlighting and snippeting to items that matched the query.\n"
        },
        "snippetEllipsisText": {
          "type": "string",
          "description": "String used as an ellipsis indicator when a snippet is truncated.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributesToHighlights",
            "attributesToSnippets"
          ]
        }
      }
    },
    "algolia:index/IndexLanguagesConfig:IndexLanguagesConfig": {
      "properties": {
        "attributesToTransliterates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to apply transliteration\n"
        },
        "camelCaseAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which to do a decomposition of camel case words.\n"
        },
        "customNormalization": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom normalization which overrides the engine’s default normalization\n"
        },
        "decompoundQuery": {
          "type": "boolean",
          "description": "Whether to split compound words into their composing atoms in the query.\n"
        },
        "decompoundedAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FIndexLanguagesConfigDecompoundedAttribute:IndexLanguagesConfigDecompoundedAttribute"
          },
          "description": "List of attributes to apply word segmentation, also known as decompounding.\n"
        },
        "ignorePlurals": {
          "type": "boolean",
          "description": "Whether to treat singular, plurals, and other forms of declensions as matching terms.\n"
        },
        "ignorePluralsFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Whether to treat singular, plurals, and other forms of declensions as matching terms in target languages.\nList of supported languages are listed on http://nhttps//www.algolia.com/doc/api-reference/api-parameters/ignorePlurals/#usage-notes\n"
        },
        "indexLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages at the index level for language-specific processing such as tokenization and normalization.\n"
        },
        "keepDiacriticsOnCharacters": {
          "type": "string",
          "description": "List of characters that the engine shouldn’t automatically normalize.\n"
        },
        "queryLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection.\n"
        },
        "removeStopWords": {
          "type": "boolean",
          "description": "Whether to removes stop (common) words from the query before executing it.\n"
        },
        "removeStopWordsFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages to removes stop (common) words from the query before executing it.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributesToTransliterates"
          ]
        }
      }
    },
    "algolia:index/IndexLanguagesConfigDecompoundedAttribute:IndexLanguagesConfigDecompoundedAttribute": {
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributes",
        "language"
      ]
    },
    "algolia:index/IndexPaginationConfig:IndexPaginationConfig": {
      "properties": {
        "hitsPerPage": {
          "type": "number",
          "description": "The number of hits per page.\n"
        },
        "paginationLimitedTo": {
          "type": "number",
          "description": "The maximum number of hits accessible via pagination\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexPerformanceConfig:IndexPerformanceConfig": {
      "properties": {
        "allowCompressionOfIntegerArray": {
          "type": "boolean",
          "description": "Whether to enable compression of large integer arrays.\n"
        },
        "numericAttributesForFilterings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of numeric attributes that can be used as numerical filters.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexQueryStrategyConfig:IndexQueryStrategyConfig": {
      "properties": {
        "advancedSyntax": {
          "type": "boolean",
          "description": "Whether to enable the advanced query syntax.\n"
        },
        "advancedSyntaxFeatures": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Advanced syntax features to be activated when ‘advancedSyntax’ is enabled\n"
        },
        "alternativesAsExacts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of alternatives that should be considered an exact match by the exact ranking criterion.\n"
        },
        "disableExactOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable the exact ranking criterion.\n"
        },
        "disablePrefixOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable prefix matching.\n"
        },
        "exactOnSingleWordQuery": {
          "type": "string",
          "description": "Controls how the exact ranking criterion is computed when the query contains only one word.\n"
        },
        "optionalWords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of words that should be considered as optional when found in the query.\n"
        },
        "queryType": {
          "type": "string",
          "description": "Query type to control if and how query words are interpreted as prefixes.\n"
        },
        "removeWordsIfNoResults": {
          "type": "string",
          "description": "Strategy to remove words from the query when it doesn’t match any hits.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexRankingConfig:IndexRankingConfig": {
      "properties": {
        "customRankings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes for custom ranking criterion.\n"
        },
        "rankings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of ranking criteria.\n"
        },
        "relevancyStrictness": {
          "type": "number",
          "description": "Relevancy threshold below which less relevant results aren’t included in the results\n"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexTimeouts:IndexTimeouts": {
      "properties": {
        "default": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "algolia:index/IndexTyposConfig:IndexTyposConfig": {
      "properties": {
        "allowTyposOnNumericTokens": {
          "type": "boolean",
          "description": "Whether to allow typos on numbers (“numeric tokens”) in the query str\n"
        },
        "disableTypoToleranceOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable typo tolerance.\n"
        },
        "disableTypoToleranceOnWords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of words on which typo tolerance will be disabled.\n"
        },
        "minWordSizeFor1Typo": {
          "type": "number",
          "description": "Minimum number of characters a word in the query string must contain to accept matches with 1 typo.\n"
        },
        "minWordSizeFor2Typos": {
          "type": "number",
          "description": "Minimum number of characters a word in the query string must contain to accept matches with 2 typos.\n"
        },
        "separatorsToIndex": {
          "type": "string",
          "description": "Separators (punctuation characters) to index. By default, separators are not indexed.\n"
        },
        "typoTolerance": {
          "type": "string",
          "description": "Whether typo tolerance is enabled and how it is applied\n"
        }
      },
      "type": "object"
    },
    "algolia:index/QuerySuggestionsSourceIndex:QuerySuggestionsSourceIndex": {
      "properties": {
        "analyticsTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of analytics tags to filter the popular searches per tag.\n"
        },
        "externals": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of external indices to use to generate custom Query Suggestions.\n"
        },
        "facets": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FQuerySuggestionsSourceIndexFacet:QuerySuggestionsSourceIndexFacet"
          },
          "description": "A list of facets to define as categories for the query suggestions.\n"
        },
        "generates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": "List of facet attributes used to generate Query Suggestions. The resulting suggestions are every combination of the facets in the nested list\n(e.g., (facetA and facetB) and facetC).\n`\n[\n[\"facetA\", \"facetB\"],\n[\"facetC\"]\n]\n`\n"
        },
        "indexName": {
          "type": "string",
          "description": "Index name to target.\n"
        },
        "minHits": {
          "type": "number",
          "description": "Minimum number of hits (e.g., matching records in the source index) to generate a suggestions.\n"
        },
        "minLetters": {
          "type": "number",
          "description": "Minimum number of required letters for a suggestion to remain.\n"
        }
      },
      "type": "object",
      "required": [
        "indexName"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "indexName",
            "minHits",
            "minLetters"
          ]
        }
      }
    },
    "algolia:index/QuerySuggestionsSourceIndexFacet:QuerySuggestionsSourceIndexFacet": {
      "properties": {
        "amount": {
          "type": "number",
          "description": "How many of the top categories to show\n"
        },
        "attribute": {
          "type": "string",
          "description": "Category attribute in your index\n"
        }
      },
      "type": "object",
      "required": [
        "amount",
        "attribute"
      ]
    },
    "algolia:index/RuleCondition:RuleCondition": {
      "properties": {
        "alternatives": {
          "type": "boolean",
          "description": "Whether the `pattern` matches on plurals, synonyms, and typos.\n\nThis parameter goes hand in hand with the `pattern`  parameter. If the `pattern` is “shoe” and `alternatives` is `true`, the `pattern` matches on “shoes”, as well as synonyms and typos of “shoe”.\n"
        },
        "anchoring": {
          "type": "string",
          "description": "Whether the pattern parameter must match the beginning or the end of the query string, or both, or none.\nPossible values are `is`, `startsWith`, `endsWith` and `contains`.\nThis parameter goes hand in hand with the `pattern` parameter. If you’re creating a Rule that depends on a specific query, you must specify the `pattern` and `anchoring`.\n\nOtherwise, you can omit both.\n"
        },
        "context": {
          "type": "string",
          "description": "Rule context (format: `[A-Za-z0-9_-]+`). When specified, the Rule is only applied when the same context is specified at query time (using the `ruleContexts` parameter). When absent, the Rule is generic and always applies (provided that its other conditions are met, of course).\n"
        },
        "pattern": {
          "type": "string",
          "description": "Query pattern syntax.\nQuery patterns are expressed as a string with a specific syntax. A pattern is a sequence of tokens, which can be either:\n\n- Facet value placeholder: `{facet:$facet_name}`. Example: `{facet:brand}`.\n- Literal: the world itself. Example: Algolia.\nSpecial characters (`*`, `{`, `}`, `:` and `\\`) must be escaped by preceding them with a backslash (\\) if they are to be treated as literals.\n\nThis parameter goes hand in hand with the `anchoring` parameter. If you’re creating a Rule that depends on a specific query, you must specify the pattern and anchoring. The empty `\"\"` pattern is only allowed when `anchoring` is set to `is`.\n\nOtherwise, you can omit both.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/RuleConsequence:RuleConsequence": {
      "properties": {
        "hides": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of object IDs to hide from hits.\n"
        },
        "params": {
          "$ref": "#/types/algolia:index%2FRuleConsequenceParams:RuleConsequenceParams",
          "description": "**Deprecated:** Use `params_json` instead. Additional search parameters. Any valid search parameter is allowed. Specific treatment is applied to these fields: `query`, `automaticFacetFilters`, `automaticOptionalFacetFilters`.\n",
          "deprecationMessage": "Deprecated"
        },
        "paramsJson": {
          "type": "string",
          "description": "Additional search parameters in JSON format. Any valid search parameter is allowed. Specific treatment is applied to these fields: `query`, `automaticFacetFilters`, `automaticOptionalFacetFilters`.\n"
        },
        "promotes": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleConsequencePromote:RuleConsequencePromote"
          },
          "description": "Objects to promote as hits.\n"
        },
        "userData": {
          "type": "string",
          "description": "Custom JSON formatted string that will be appended to the userData array in the response. This object is not interpreted by the API. It is limited to 1kB of minified JSON.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/RuleConsequenceParams:RuleConsequenceParams": {
      "properties": {
        "automaticFacetFilters": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleConsequenceParamsAutomaticFacetFilter:RuleConsequenceParamsAutomaticFacetFilter"
          },
          "description": "Names of facets to which automatic filtering must be applied; they must match the facet name of a facet value placeholder in the query pattern.\n"
        },
        "automaticOptionalFacetFilters": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleConsequenceParamsAutomaticOptionalFacetFilter:RuleConsequenceParamsAutomaticOptionalFacetFilter"
          },
          "description": "Same syntax as `automatic_facet_filters`, but the engine treats the filters as optional. Behaves like [optionalFilters](https://www.algolia.com/doc/api-reference/api-parameters/optionalFilters/).\n"
        },
        "objectQueries": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleConsequenceParamsObjectQuery:RuleConsequenceParamsObjectQuery"
          },
          "description": "It describes incremental edits to be made to the query string. Either one of `query` or `object_query` can be set.\n"
        },
        "query": {
          "type": "string",
          "description": "It replaces the entire query string. Either one of `query` or `object_query` can be set.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/RuleConsequenceParamsAutomaticFacetFilter:RuleConsequenceParamsAutomaticFacetFilter": {
      "properties": {
        "disjunctive": {
          "type": "boolean",
          "description": "Whether the filter is disjunctive (true) or conjunctive (false). If the filter applies multiple times, e.g. because the query string contains multiple values of the same facet, the multiple occurrences are combined with an `AND` operator by default (conjunctive mode). If the filter is specified as disjunctive, however, multiple occurrences are combined with an `OR` operator instead.\n"
        },
        "facet": {
          "type": "string",
          "description": "Attribute to filter on. This must match a facet placeholder in the Rule’s pattern.\n"
        },
        "score": {
          "type": "number",
          "description": "Score for the filter. Typically used for optional or disjunctive filters.\n"
        }
      },
      "type": "object",
      "required": [
        "facet"
      ]
    },
    "algolia:index/RuleConsequenceParamsAutomaticOptionalFacetFilter:RuleConsequenceParamsAutomaticOptionalFacetFilter": {
      "properties": {
        "disjunctive": {
          "type": "boolean",
          "description": "Whether the filter is disjunctive (true) or conjunctive (false). If the filter applies multiple times, e.g. because the query string contains multiple values of the same facet, the multiple occurrences are combined with an `AND` operator by default (conjunctive mode). If the filter is specified as disjunctive, however, multiple occurrences are combined with an `OR` operator instead.\n"
        },
        "facet": {
          "type": "string",
          "description": "Attribute to filter on. This must match a facet placeholder in the Rule’s pattern.\n"
        },
        "score": {
          "type": "number",
          "description": "Score for the filter. Typically used for optional or disjunctive filters.\n"
        }
      },
      "type": "object",
      "required": [
        "facet"
      ]
    },
    "algolia:index/RuleConsequenceParamsObjectQuery:RuleConsequenceParamsObjectQuery": {
      "properties": {
        "delete": {
          "type": "string",
          "description": "Text or patterns to remove from the query string.\n"
        },
        "insert": {
          "type": "string",
          "description": "Text that should be inserted in place of the removed text inside the query string.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of edit. Must be one of:\n\t- `remove`: when you want to delete some text and not replace it with anything\n\t- `replace`: when you want to delete some text and replace it with something else\n"
        }
      },
      "type": "object",
      "required": [
        "delete",
        "type"
      ]
    },
    "algolia:index/RuleConsequencePromote:RuleConsequencePromote": {
      "properties": {
        "objectIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "position": {
          "type": "number",
          "description": "The position to promote the object(s) to (zero-based). If you pass `object_ids`, we place the objects at this position as a group. For example, if you pass four `object_ids` to position `0`, the objects take the first four positions.\n"
        }
      },
      "type": "object",
      "required": [
        "objectIds",
        "position"
      ]
    },
    "algolia:index/RuleValidity:RuleValidity": {
      "properties": {
        "from": {
          "type": "string",
          "description": "Lower bound of the time range. RFC3339 format.\n"
        },
        "until": {
          "type": "string",
          "description": "Upper bound of the time range. RFC3339 format.\n"
        }
      },
      "type": "object",
      "required": [
        "from",
        "until"
      ]
    },
    "algolia:index/SynonymsSynonym:SynonymsSynonym": {
      "properties": {
        "corrections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of corrections of the `word`. Required if type=`altCorrection1` or type=`altCorrection2`\n"
        },
        "input": {
          "type": "string",
          "description": "Defines the synonym. A word or expression, used as the basis for the array of synonyms. Required if type=`oneWaySynonym`.\n"
        },
        "objectId": {
          "type": "string",
          "description": "Unique identifier for the synonym.It can contain any character, and be of unlimited length.\n"
        },
        "placeholder": {
          "type": "string",
          "description": "Single word, used as the basis for the below array of replacements.  Required if type=`placeholder`\n"
        },
        "replacements": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of replacements of the placeholder. Required if type=`placeholder`\n"
        },
        "synonyms": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of synonyms (up to `20 for type`synonym`and 100 for type`oneWaySynonym`). Required if type=`synonym`or type=`oneWaySynonym`.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the synonym. Possible values are `synonym`, `oneWaySynonym`, `altCorrection1`, `altCorrection2` and `placeholder`.\n"
        },
        "word": {
          "type": "string",
          "description": "Single word, used as the basis for the below array of corrections. Required if type=`altCorrection1` or type=`altCorrection2`\n"
        }
      },
      "type": "object",
      "required": [
        "objectId",
        "type"
      ]
    },
    "algolia:index/VirtualIndexAdvancedConfig:VirtualIndexAdvancedConfig": {
      "properties": {
        "attributeCriteriaComputedByMinProximity": {
          "type": "boolean",
          "description": "When attribute is ranked above proximity in your ranking formula, proximity is used to select which searchable attribute is matched in the **attribute ranking stage**.\n"
        },
        "attributeForDistinct": {
          "type": "string",
          "description": "Name of the de-duplication attribute to be used with the `distinct` feature.\n"
        },
        "distinct": {
          "type": "number",
          "description": "Whether to enable de-duplication or grouping of results.\n- When set to `0`, you disable de-duplication and grouping.\n- When set to `1`, you enable **de-duplication**, in which only the most relevant result is returned for all records that have the same value in the distinct attribute. This is similar to the SQL `distinct` keyword.\nif `distinct` is set to 1 (de-duplication):\n- When set to `N (where N > 1)`, you enable grouping, in which most N hits will be returned with the same value for the distinct attribute.\nthen the N most relevant episodes for every show are kept, with similar consequences.\n"
        },
        "maxFacetHits": {
          "type": "number",
          "description": "Maximum number of facet hits to return during a search for facet values.\n"
        },
        "minProximity": {
          "type": "number",
          "description": "Precision of the `proximity` ranking criterion.\n"
        },
        "replaceSynonymsInHighlight": {
          "type": "boolean",
          "description": "Whether to highlight and snippet the original word that matches the synonym or the synonym itself.\n"
        },
        "responseFields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The fields the response will contain. Applies to search and browse queries.\nThis parameter is mainly intended to **limit the response size.** For example, in complex queries, echoing of request parameters in the response’s params field can be undesirable.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributeForDistinct"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexAttributesConfig:VirtualIndexAttributesConfig": {
      "properties": {
        "attributesForFacetings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The complete list of attributes that will be used for faceting.\n"
        },
        "attributesToRetrieves": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to be retrieved at query time.\n"
        },
        "searchableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The complete list of attributes used for searching.\n"
        },
        "unretrievableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes that cannot be retrieved at query time.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributesForFacetings",
            "searchableAttributes"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexFacetingConfig:VirtualIndexFacetingConfig": {
      "properties": {
        "maxValuesPerFacet": {
          "type": "number",
          "description": "Maximum number of facet values to return for each facet during a regular search.\n"
        },
        "sortFacetValuesBy": {
          "type": "string",
          "description": "Parameter to controls how the facet values are sorted within each faceted attribute.\n"
        }
      },
      "type": "object"
    },
    "algolia:index/VirtualIndexHighlightAndSnippetConfig:VirtualIndexHighlightAndSnippetConfig": {
      "properties": {
        "attributesToHighlights": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to highlight.\n"
        },
        "attributesToSnippets": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to snippet, with an optional maximum number of words to snippet.\n"
        },
        "highlightPostTag": {
          "type": "string",
          "description": "The HTML string to insert after the highlighted parts in all highlight and snippet results.\n"
        },
        "highlightPreTag": {
          "type": "string",
          "description": "The HTML string to insert before the highlighted parts in all highlight and snippet results.\n"
        },
        "restrictHighlightAndSnippetArrays": {
          "type": "boolean",
          "description": "Restrict highlighting and snippeting to items that matched the query.\n"
        },
        "snippetEllipsisText": {
          "type": "string",
          "description": "String used as an ellipsis indicator when a snippet is truncated.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributesToHighlights",
            "attributesToSnippets"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexLanguagesConfig:VirtualIndexLanguagesConfig": {
      "properties": {
        "attributesToTransliterates": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes to apply transliteration\n"
        },
        "camelCaseAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which to do a decomposition of camel case words.\n"
        },
        "customNormalization": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom normalization which overrides the engine’s default normalization\n"
        },
        "decompoundQuery": {
          "type": "boolean",
          "description": "Whether to split compound words into their composing atoms in the query.\n"
        },
        "decompoundedAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FVirtualIndexLanguagesConfigDecompoundedAttribute:VirtualIndexLanguagesConfigDecompoundedAttribute"
          },
          "description": "List of attributes to apply word segmentation, also known as decompounding.\n"
        },
        "ignorePlurals": {
          "type": "boolean",
          "description": "Whether to treat singular, plurals, and other forms of declensions as matching terms.\n"
        },
        "ignorePluralsFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Whether to treat singular, plurals, and other forms of declensions as matching terms in target languages.\nList of supported languages are listed on http://nhttps//www.algolia.com/doc/api-reference/api-parameters/ignorePlurals/#usage-notes\n"
        },
        "indexLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages at the index level for language-specific processing such as tokenization and normalization.\n"
        },
        "keepDiacriticsOnCharacters": {
          "type": "string",
          "description": "List of characters that the engine shouldn’t automatically normalize.\n"
        },
        "queryLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection.\n"
        },
        "removeStopWords": {
          "type": "boolean",
          "description": "Whether to removes stop (common) words from the query before executing it.\n"
        },
        "removeStopWordsFors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of languages to removes stop (common) words from the query before executing it.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "attributesToTransliterates",
            "camelCaseAttributes",
            "customNormalization",
            "decompoundedAttributes",
            "indexLanguages",
            "keepDiacriticsOnCharacters"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexLanguagesConfigDecompoundedAttribute:VirtualIndexLanguagesConfigDecompoundedAttribute": {
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributes",
        "language"
      ]
    },
    "algolia:index/VirtualIndexPaginationConfig:VirtualIndexPaginationConfig": {
      "properties": {
        "hitsPerPage": {
          "type": "number",
          "description": "The number of hits per page.\n"
        },
        "paginationLimitedTo": {
          "type": "number",
          "description": "The maximum number of hits accessible via pagination\n"
        }
      },
      "type": "object"
    },
    "algolia:index/VirtualIndexPerformanceConfig:VirtualIndexPerformanceConfig": {
      "properties": {
        "allowCompressionOfIntegerArray": {
          "type": "boolean"
        },
        "numericAttributesForFilterings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "allowCompressionOfIntegerArray",
        "numericAttributesForFilterings"
      ]
    },
    "algolia:index/VirtualIndexQueryStrategyConfig:VirtualIndexQueryStrategyConfig": {
      "properties": {
        "advancedSyntax": {
          "type": "boolean",
          "description": "Whether to enable the advanced query syntax.\n"
        },
        "advancedSyntaxFeatures": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Advanced syntax features to be activated when ‘advancedSyntax’ is enabled\n"
        },
        "alternativesAsExacts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of alternatives that should be considered an exact match by the exact ranking criterion.\n"
        },
        "disableExactOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable the exact ranking criterion.\n"
        },
        "disablePrefixOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable prefix matching.\n"
        },
        "exactOnSingleWordQuery": {
          "type": "string",
          "description": "Controls how the exact ranking criterion is computed when the query contains only one word.\n"
        },
        "optionalWords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of words that should be considered as optional when found in the query.\n"
        },
        "queryType": {
          "type": "string",
          "description": "Query type to control if and how query words are interpreted as prefixes.\n"
        },
        "removeWordsIfNoResults": {
          "type": "string",
          "description": "Strategy to remove words from the query when it doesn’t match any hits.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "disableExactOnAttributes",
            "disablePrefixOnAttributes",
            "optionalWords"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexRankingConfig:VirtualIndexRankingConfig": {
      "properties": {
        "customRankings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes for custom ranking criterion.\n"
        },
        "rankings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of ranking criteria.\n"
        },
        "relevancyStrictness": {
          "type": "number",
          "description": "Relevancy threshold below which less relevant results aren’t included in the results\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "rankings"
          ]
        }
      }
    },
    "algolia:index/VirtualIndexTimeouts:VirtualIndexTimeouts": {
      "properties": {
        "default": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "algolia:index/VirtualIndexTyposConfig:VirtualIndexTyposConfig": {
      "properties": {
        "allowTyposOnNumericTokens": {
          "type": "boolean",
          "description": "Whether to allow typos on numbers (“numeric tokens”) in the query str\n"
        },
        "disableTypoToleranceOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of attributes on which you want to disable typo tolerance.\n"
        },
        "disableTypoToleranceOnWords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of words on which typo tolerance will be disabled.\n"
        },
        "minWordSizeFor1Typo": {
          "type": "number",
          "description": "Minimum number of characters a word in the query string must contain to accept matches with 1 typo.\n"
        },
        "minWordSizeFor2Typos": {
          "type": "number",
          "description": "Minimum number of characters a word in the query string must contain to accept matches with 2 typos.\n"
        },
        "separatorsToIndex": {
          "type": "string",
          "description": "Separators (punctuation characters) to index. By default, separators are not indexed.\n"
        },
        "typoTolerance": {
          "type": "string",
          "description": "Whether typo tolerance is enabled and how it is applied\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "disableTypoToleranceOnAttributes",
            "disableTypoToleranceOnWords"
          ]
        }
      }
    },
    "algolia:index/getIndexAdvancedConfig:getIndexAdvancedConfig": {
      "properties": {
        "attributeCriteriaComputedByMinProximity": {
          "type": "boolean"
        },
        "attributeForDistinct": {
          "type": "string"
        },
        "distinct": {
          "type": "number"
        },
        "maxFacetHits": {
          "type": "number"
        },
        "minProximity": {
          "type": "number"
        },
        "replaceSynonymsInHighlight": {
          "type": "boolean"
        },
        "responseFields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributeCriteriaComputedByMinProximity",
        "attributeForDistinct",
        "distinct",
        "maxFacetHits",
        "minProximity",
        "replaceSynonymsInHighlight",
        "responseFields"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexAttributesConfig:getIndexAttributesConfig": {
      "properties": {
        "attributesForFacetings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attributesToRetrieves": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "searchableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "unretrievableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributesForFacetings",
        "attributesToRetrieves",
        "searchableAttributes",
        "unretrievableAttributes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexFacetingConfig:getIndexFacetingConfig": {
      "properties": {
        "maxValuesPerFacet": {
          "type": "number"
        },
        "sortFacetValuesBy": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "maxValuesPerFacet",
        "sortFacetValuesBy"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexHighlightAndSnippetConfig:getIndexHighlightAndSnippetConfig": {
      "properties": {
        "attributesToHighlights": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attributesToSnippets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "highlightPostTag": {
          "type": "string"
        },
        "highlightPreTag": {
          "type": "string"
        },
        "restrictHighlightAndSnippetArrays": {
          "type": "boolean"
        },
        "snippetEllipsisText": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributesToHighlights",
        "attributesToSnippets",
        "highlightPostTag",
        "highlightPreTag",
        "restrictHighlightAndSnippetArrays",
        "snippetEllipsisText"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexLanguagesConfig:getIndexLanguagesConfig": {
      "properties": {
        "attributesToTransliterates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "camelCaseAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customNormalization": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "decompoundQuery": {
          "type": "boolean"
        },
        "decompoundedAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FgetIndexLanguagesConfigDecompoundedAttribute:getIndexLanguagesConfigDecompoundedAttribute"
          }
        },
        "ignorePlurals": {
          "type": "boolean"
        },
        "ignorePluralsFors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "indexLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "keepDiacriticsOnCharacters": {
          "type": "string"
        },
        "queryLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeStopWords": {
          "type": "boolean"
        },
        "removeStopWordsFors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributesToTransliterates",
        "camelCaseAttributes",
        "customNormalization",
        "decompoundQuery",
        "decompoundedAttributes",
        "ignorePlurals",
        "ignorePluralsFors",
        "indexLanguages",
        "keepDiacriticsOnCharacters",
        "queryLanguages",
        "removeStopWords",
        "removeStopWordsFors"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexLanguagesConfigDecompoundedAttribute:getIndexLanguagesConfigDecompoundedAttribute": {
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributes",
        "language"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexPaginationConfig:getIndexPaginationConfig": {
      "properties": {
        "hitsPerPage": {
          "type": "number",
          "description": "The number of hits per page.\n"
        },
        "paginationLimitedTo": {
          "type": "number",
          "description": "The maximum number of hits accessible via pagination\n"
        }
      },
      "type": "object",
      "required": [
        "hitsPerPage",
        "paginationLimitedTo"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexPerformanceConfig:getIndexPerformanceConfig": {
      "properties": {
        "allowCompressionOfIntegerArray": {
          "type": "boolean"
        },
        "numericAttributesForFilterings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "allowCompressionOfIntegerArray",
        "numericAttributesForFilterings"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexQueryStrategyConfig:getIndexQueryStrategyConfig": {
      "properties": {
        "advancedSyntax": {
          "type": "boolean"
        },
        "advancedSyntaxFeatures": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "alternativesAsExacts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disableExactOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disablePrefixOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exactOnSingleWordQuery": {
          "type": "string"
        },
        "optionalWords": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "queryType": {
          "type": "string"
        },
        "removeWordsIfNoResults": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "advancedSyntax",
        "advancedSyntaxFeatures",
        "alternativesAsExacts",
        "disableExactOnAttributes",
        "disablePrefixOnAttributes",
        "exactOnSingleWordQuery",
        "optionalWords",
        "queryType",
        "removeWordsIfNoResults"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexRankingConfig:getIndexRankingConfig": {
      "properties": {
        "customRankings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "rankings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "relevancyStrictness": {
          "type": "number"
        },
        "replicas": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "customRankings",
        "rankings",
        "relevancyStrictness",
        "replicas"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getIndexTyposConfig:getIndexTyposConfig": {
      "properties": {
        "allowTyposOnNumericTokens": {
          "type": "boolean"
        },
        "disableTypoToleranceOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disableTypoToleranceOnWords": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "minWordSizeFor1Typo": {
          "type": "number"
        },
        "minWordSizeFor2Typos": {
          "type": "number"
        },
        "separatorsToIndex": {
          "type": "string"
        },
        "typoTolerance": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "allowTyposOnNumericTokens",
        "disableTypoToleranceOnAttributes",
        "disableTypoToleranceOnWords",
        "minWordSizeFor1Typo",
        "minWordSizeFor2Typos",
        "separatorsToIndex",
        "typoTolerance"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexAdvancedConfig:getVirtualIndexAdvancedConfig": {
      "properties": {
        "attributeCriteriaComputedByMinProximity": {
          "type": "boolean"
        },
        "attributeForDistinct": {
          "type": "string"
        },
        "distinct": {
          "type": "number"
        },
        "maxFacetHits": {
          "type": "number"
        },
        "minProximity": {
          "type": "number"
        },
        "replaceSynonymsInHighlight": {
          "type": "boolean"
        },
        "responseFields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributeCriteriaComputedByMinProximity",
        "attributeForDistinct",
        "distinct",
        "maxFacetHits",
        "minProximity",
        "replaceSynonymsInHighlight",
        "responseFields"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexAttributesConfig:getVirtualIndexAttributesConfig": {
      "properties": {
        "attributesForFacetings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attributesToRetrieves": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "searchableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "unretrievableAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributesForFacetings",
        "attributesToRetrieves",
        "searchableAttributes",
        "unretrievableAttributes"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexFacetingConfig:getVirtualIndexFacetingConfig": {
      "properties": {
        "maxValuesPerFacet": {
          "type": "number"
        },
        "sortFacetValuesBy": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "maxValuesPerFacet",
        "sortFacetValuesBy"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexHighlightAndSnippetConfig:getVirtualIndexHighlightAndSnippetConfig": {
      "properties": {
        "attributesToHighlights": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attributesToSnippets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "highlightPostTag": {
          "type": "string"
        },
        "highlightPreTag": {
          "type": "string"
        },
        "restrictHighlightAndSnippetArrays": {
          "type": "boolean"
        },
        "snippetEllipsisText": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributesToHighlights",
        "attributesToSnippets",
        "highlightPostTag",
        "highlightPreTag",
        "restrictHighlightAndSnippetArrays",
        "snippetEllipsisText"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexLanguagesConfig:getVirtualIndexLanguagesConfig": {
      "properties": {
        "attributesToTransliterates": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "camelCaseAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customNormalization": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "decompoundQuery": {
          "type": "boolean"
        },
        "decompoundedAttributes": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FgetVirtualIndexLanguagesConfigDecompoundedAttribute:getVirtualIndexLanguagesConfigDecompoundedAttribute"
          }
        },
        "ignorePlurals": {
          "type": "boolean"
        },
        "ignorePluralsFors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "indexLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "keepDiacriticsOnCharacters": {
          "type": "string"
        },
        "queryLanguages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removeStopWords": {
          "type": "boolean"
        },
        "removeStopWordsFors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "attributesToTransliterates",
        "camelCaseAttributes",
        "customNormalization",
        "decompoundQuery",
        "decompoundedAttributes",
        "ignorePlurals",
        "ignorePluralsFors",
        "indexLanguages",
        "keepDiacriticsOnCharacters",
        "queryLanguages",
        "removeStopWords",
        "removeStopWordsFors"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexLanguagesConfigDecompoundedAttribute:getVirtualIndexLanguagesConfigDecompoundedAttribute": {
      "properties": {
        "attributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "language": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "attributes",
        "language"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexPaginationConfig:getVirtualIndexPaginationConfig": {
      "properties": {
        "hitsPerPage": {
          "type": "number",
          "description": "The number of hits per page.\n"
        },
        "paginationLimitedTo": {
          "type": "number",
          "description": "The maximum number of hits accessible via pagination\n"
        }
      },
      "type": "object",
      "required": [
        "hitsPerPage",
        "paginationLimitedTo"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexPerformanceConfig:getVirtualIndexPerformanceConfig": {
      "properties": {
        "allowCompressionOfIntegerArray": {
          "type": "boolean"
        },
        "numericAttributesForFilterings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "required": [
        "allowCompressionOfIntegerArray",
        "numericAttributesForFilterings"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexQueryStrategyConfig:getVirtualIndexQueryStrategyConfig": {
      "properties": {
        "advancedSyntax": {
          "type": "boolean"
        },
        "advancedSyntaxFeatures": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "alternativesAsExacts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disableExactOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disablePrefixOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exactOnSingleWordQuery": {
          "type": "string"
        },
        "optionalWords": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "queryType": {
          "type": "string"
        },
        "removeWordsIfNoResults": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "advancedSyntax",
        "advancedSyntaxFeatures",
        "alternativesAsExacts",
        "disableExactOnAttributes",
        "disablePrefixOnAttributes",
        "exactOnSingleWordQuery",
        "optionalWords",
        "queryType",
        "removeWordsIfNoResults"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexRankingConfig:getVirtualIndexRankingConfig": {
      "properties": {
        "customRankings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "rankings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "relevancyStrictness": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "customRankings",
        "rankings",
        "relevancyStrictness"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "algolia:index/getVirtualIndexTyposConfig:getVirtualIndexTyposConfig": {
      "properties": {
        "allowTyposOnNumericTokens": {
          "type": "boolean"
        },
        "disableTypoToleranceOnAttributes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disableTypoToleranceOnWords": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "minWordSizeFor1Typo": {
          "type": "number"
        },
        "minWordSizeFor2Typos": {
          "type": "number"
        },
        "separatorsToIndex": {
          "type": "string"
        },
        "typoTolerance": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "allowTyposOnNumericTokens",
        "disableTypoToleranceOnAttributes",
        "disableTypoToleranceOnWords",
        "minWordSizeFor1Typo",
        "minWordSizeFor2Typos",
        "separatorsToIndex",
        "typoTolerance"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the algolia package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "apiKey": {
        "type": "string",
        "description": "The API key to access algolia resources. Defaults to the env variable `ALGOLIA_API_KEY`.\n",
        "secret": true
      },
      "appId": {
        "type": "string",
        "description": "The ID of the application. Defaults to the env variable `ALGOLIA_APP_ID`.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "apiKey": {
        "type": "string",
        "description": "The API key to access algolia resources. Defaults to the env variable `ALGOLIA_API_KEY`.\n",
        "secret": true
      },
      "appId": {
        "type": "string",
        "description": "The ID of the application. Defaults to the env variable `ALGOLIA_APP_ID`.\n"
      }
    }
  },
  "resources": {
    "algolia:index/apiKey:ApiKey": {
      "description": "A configuration for an API key\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst example = new algolia.ApiKey(\"example\", {\n    acls: [\n        \"search\",\n        \"browse\",\n    ],\n    description: \"This is a example api key\",\n    expiresAt: \"2030-01-01T00:00:00Z\",\n    indexes: [\"*\"],\n    maxHitsPerQuery: 100,\n    maxQueriesPerIpPerHour: 10000,\n    referers: [\"https://algolia.com/\\\\*\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nexample = algolia.ApiKey(\"example\",\n    acls=[\n        \"search\",\n        \"browse\",\n    ],\n    description=\"This is a example api key\",\n    expires_at=\"2030-01-01T00:00:00Z\",\n    indexes=[\"*\"],\n    max_hits_per_query=100,\n    max_queries_per_ip_per_hour=10000,\n    referers=[\"https://algolia.com/\\\\*\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Algolia.ApiKey(\"example\", new()\n    {\n        Acls = new[]\n        {\n            \"search\",\n            \"browse\",\n        },\n        Description = \"This is a example api key\",\n        ExpiresAt = \"2030-01-01T00:00:00Z\",\n        Indexes = new[]\n        {\n            \"*\",\n        },\n        MaxHitsPerQuery = 100,\n        MaxQueriesPerIpPerHour = 10000,\n        Referers = new[]\n        {\n            \"https://algolia.com/\\\\*\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := algolia.NewApiKey(ctx, \"example\", &algolia.ApiKeyArgs{\n\t\t\tAcls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"search\"),\n\t\t\t\tpulumi.String(\"browse\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"This is a example api key\"),\n\t\t\tExpiresAt:   pulumi.String(\"2030-01-01T00:00:00Z\"),\n\t\t\tIndexes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"*\"),\n\t\t\t},\n\t\t\tMaxHitsPerQuery:        pulumi.Float64(100),\n\t\t\tMaxQueriesPerIpPerHour: pulumi.Float64(10000),\n\t\t\tReferers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://algolia.com/\\\\*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.ApiKey;\nimport com.pulumi.algolia.ApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ApiKey(\"example\", ApiKeyArgs.builder()\n            .acls(            \n                \"search\",\n                \"browse\")\n            .description(\"This is a example api key\")\n            .expiresAt(\"2030-01-01T00:00:00Z\")\n            .indexes(\"*\")\n            .maxHitsPerQuery(100)\n            .maxQueriesPerIpPerHour(10000)\n            .referers(\"https://algolia.com/\\\\*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: algolia:ApiKey\n    properties:\n      acls:\n        - search\n        - browse\n      description: This is a example api key\n      expiresAt: 2030-01-01T00:00:00Z\n      indexes:\n        - '*'\n      maxHitsPerQuery: 100\n      maxQueriesPerIpPerHour: 10000\n      referers:\n        - https://algolia.com/\\*\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import algolia:index/apiKey:ApiKey default {{key}}\n```\n\n",
      "properties": {
        "acls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of permissions associated with the key. The possible ACLs are: - `search`: allowed to perform search operations. -\n`browse`: allowed to retrieve all index data with the browse endpoint. - `addObject`: allowed to add or update a records\nin the index. - `deleteObject`: allowed to delete an existing record. - `listIndexes`: allowed to get a list of all\nexisting indices. - `deleteIndex`: allowed to delete an index. - `settings`: allowed to read all index settings. -\n`editSettings`: allowed to update all index settings. - `analytics`: allowed to retrieve data with the Analytics API. -\n`recommendation`: allowed to interact with the Recommendation API. - `usage` allowed to retrieve data with the Usage\nAPI. - `nluReadAnswers`: allowed to perform semantic search with the Answers API. - `logs`: allowed to query the logs. -\n`seeUnretrievableAttributes`: allowed to retrieve unretrievableAttributes for all operations that return records.\n"
        },
        "apiKeyId": {
          "type": "string"
        },
        "createdAt": {
          "type": "number",
          "description": "The unix time at which the key has been created.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the API key.\n"
        },
        "expiresAt": {
          "type": "string",
          "description": "Unix timestamp of the date at which the key expires. RFC3339 format. Will not expire per default.\n"
        },
        "indexes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’\ncharacter. For example, “dev_*” matches all indices starting with “dev_” and “*_dev” matches all indices\nending with “_dev”.\n"
        },
        "key": {
          "type": "string",
          "description": "The created key.\n",
          "secret": true
        },
        "maxHitsPerQuery": {
          "type": "number",
          "description": "Maximum number of hits this API key can retrieve in one call. This parameter can be used to protect you from attempts at\nretrieving your entire index contents by massively querying the index.\n"
        },
        "maxQueriesPerIpPerHour": {
          "type": "number",
          "description": "Maximum number of API calls allowed from an IP address per hour.Each time an API call is performed with this key, a\ncheck is performed. If the IP at the source of the call did more than this number of calls in the last hour, a 429 code\nis returned. This parameter can be used to protect you from attempts at retrieving your entire index contents by\nmassively querying the index.\n"
        },
        "referers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of referrers that can perform an operation. You can use the “*” (asterisk) character as a wildcard to match\nsubdomains, or all pages of a website. For example, `\"https://algolia.com/\\*\"` matches all referrers starting with\n`\"https://algolia.com/\"`, and `\"\\*.algolia.com\"` matches all referrers ending with `\".algolia.com\"`. If you want to\nallow all possible referrers from the `algolia.com` domain, you can use `\"\\*algolia.com/\\*\"`.\n"
        }
      },
      "type": "object",
      "required": [
        "acls",
        "apiKeyId",
        "createdAt",
        "key"
      ],
      "inputProperties": {
        "acls": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Set of permissions associated with the key. The possible ACLs are: - `search`: allowed to perform search operations. -\n`browse`: allowed to retrieve all index data with the browse endpoint. - `addObject`: allowed to add or update a records\nin the index. - `deleteObject`: allowed to delete an existing record. - `listIndexes`: allowed to get a list of all\nexisting indices. - `deleteIndex`: allowed to delete an index. - `settings`: allowed to read all index settings. -\n`editSettings`: allowed to update all index settings. - `analytics`: allowed to retrieve data with the Analytics API. -\n`recommendation`: allowed to interact with the Recommendation API. - `usage` allowed to retrieve data with the Usage\nAPI. - `nluReadAnswers`: allowed to perform semantic search with the Answers API. - `logs`: allowed to query the logs. -\n`seeUnretrievableAttributes`: allowed to retrieve unretrievableAttributes for all operations that return records.\n"
        },
        "apiKeyId": {
          "type": "string"
        },
        "description": {
          "type": "string",
          "description": "Description of the API key.\n"
        },
        "expiresAt": {
          "type": "string",
          "description": "Unix timestamp of the date at which the key expires. RFC3339 format. Will not expire per default.\n"
        },
        "indexes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’\ncharacter. For example, “dev_*” matches all indices starting with “dev_” and “*_dev” matches all indices\nending with “_dev”.\n"
        },
        "maxHitsPerQuery": {
          "type": "number",
          "description": "Maximum number of hits this API key can retrieve in one call. This parameter can be used to protect you from attempts at\nretrieving your entire index contents by massively querying the index.\n"
        },
        "maxQueriesPerIpPerHour": {
          "type": "number",
          "description": "Maximum number of API calls allowed from an IP address per hour.Each time an API call is performed with this key, a\ncheck is performed. If the IP at the source of the call did more than this number of calls in the last hour, a 429 code\nis returned. This parameter can be used to protect you from attempts at retrieving your entire index contents by\nmassively querying the index.\n"
        },
        "referers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of referrers that can perform an operation. You can use the “*” (asterisk) character as a wildcard to match\nsubdomains, or all pages of a website. For example, `\"https://algolia.com/\\*\"` matches all referrers starting with\n`\"https://algolia.com/\"`, and `\"\\*.algolia.com\"` matches all referrers ending with `\".algolia.com\"`. If you want to\nallow all possible referrers from the `algolia.com` domain, you can use `\"\\*algolia.com/\\*\"`.\n"
        }
      },
      "requiredInputs": [
        "acls"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ApiKey resources.\n",
        "properties": {
          "acls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of permissions associated with the key. The possible ACLs are: - `search`: allowed to perform search operations. -\n`browse`: allowed to retrieve all index data with the browse endpoint. - `addObject`: allowed to add or update a records\nin the index. - `deleteObject`: allowed to delete an existing record. - `listIndexes`: allowed to get a list of all\nexisting indices. - `deleteIndex`: allowed to delete an index. - `settings`: allowed to read all index settings. -\n`editSettings`: allowed to update all index settings. - `analytics`: allowed to retrieve data with the Analytics API. -\n`recommendation`: allowed to interact with the Recommendation API. - `usage` allowed to retrieve data with the Usage\nAPI. - `nluReadAnswers`: allowed to perform semantic search with the Answers API. - `logs`: allowed to query the logs. -\n`seeUnretrievableAttributes`: allowed to retrieve unretrievableAttributes for all operations that return records.\n"
          },
          "apiKeyId": {
            "type": "string"
          },
          "createdAt": {
            "type": "number",
            "description": "The unix time at which the key has been created.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the API key.\n"
          },
          "expiresAt": {
            "type": "string",
            "description": "Unix timestamp of the date at which the key expires. RFC3339 format. Will not expire per default.\n"
          },
          "indexes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’\ncharacter. For example, “dev_*” matches all indices starting with “dev_” and “*_dev” matches all indices\nending with “_dev”.\n"
          },
          "key": {
            "type": "string",
            "description": "The created key.\n",
            "secret": true
          },
          "maxHitsPerQuery": {
            "type": "number",
            "description": "Maximum number of hits this API key can retrieve in one call. This parameter can be used to protect you from attempts at\nretrieving your entire index contents by massively querying the index.\n"
          },
          "maxQueriesPerIpPerHour": {
            "type": "number",
            "description": "Maximum number of API calls allowed from an IP address per hour.Each time an API call is performed with this key, a\ncheck is performed. If the IP at the source of the call did more than this number of calls in the last hour, a 429 code\nis returned. This parameter can be used to protect you from attempts at retrieving your entire index contents by\nmassively querying the index.\n"
          },
          "referers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of referrers that can perform an operation. You can use the “*” (asterisk) character as a wildcard to match\nsubdomains, or all pages of a website. For example, `\"https://algolia.com/\\*\"` matches all referrers starting with\n`\"https://algolia.com/\"`, and `\"\\*.algolia.com\"` matches all referrers ending with `\".algolia.com\"`. If you want to\nallow all possible referrers from the `algolia.com` domain, you can use `\"\\*algolia.com/\\*\"`.\n"
          }
        },
        "type": "object"
      }
    },
    "algolia:index/index:Index": {
      "description": "A configuration for an index.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst primary = new algolia.Index(\"primary\", {\n    attributesConfig: {\n        searchableAttributes: [\n            \"title\",\n            \"category,tag\",\n            \"unordered(description)\",\n        ],\n        attributesForFacetings: [\"category\"],\n        unretrievableAttributes: [\"author_email\"],\n        attributesToRetrieves: [\n            \"title\",\n            \"category\",\n            \"tag\",\n            \"description\",\n            \"body\",\n        ],\n    },\n    rankingConfig: {\n        rankings: [\n            \"words\",\n            \"proximity\",\n        ],\n    },\n    facetingConfig: {\n        maxValuesPerFacet: 50,\n        sortFacetValuesBy: \"alpha\",\n    },\n    languagesConfig: {\n        removeStopWordsFors: [\"en\"],\n    },\n});\nconst replica = new algolia.Index(\"replica\", {primaryIndexName: primary.name});\n// Configure settings for this replica\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nprimary = algolia.Index(\"primary\",\n    attributes_config={\n        \"searchable_attributes\": [\n            \"title\",\n            \"category,tag\",\n            \"unordered(description)\",\n        ],\n        \"attributes_for_facetings\": [\"category\"],\n        \"unretrievable_attributes\": [\"author_email\"],\n        \"attributes_to_retrieves\": [\n            \"title\",\n            \"category\",\n            \"tag\",\n            \"description\",\n            \"body\",\n        ],\n    },\n    ranking_config={\n        \"rankings\": [\n            \"words\",\n            \"proximity\",\n        ],\n    },\n    faceting_config={\n        \"max_values_per_facet\": 50,\n        \"sort_facet_values_by\": \"alpha\",\n    },\n    languages_config={\n        \"remove_stop_words_fors\": [\"en\"],\n    })\nreplica = algolia.Index(\"replica\", primary_index_name=primary.name)\n# Configure settings for this replica\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() => \n{\n    var primary = new Algolia.Index(\"primary\", new()\n    {\n        AttributesConfig = new Algolia.Inputs.IndexAttributesConfigArgs\n        {\n            SearchableAttributes = new[]\n            {\n                \"title\",\n                \"category,tag\",\n                \"unordered(description)\",\n            },\n            AttributesForFacetings = new[]\n            {\n                \"category\",\n            },\n            UnretrievableAttributes = new[]\n            {\n                \"author_email\",\n            },\n            AttributesToRetrieves = new[]\n            {\n                \"title\",\n                \"category\",\n                \"tag\",\n                \"description\",\n                \"body\",\n            },\n        },\n        RankingConfig = new Algolia.Inputs.IndexRankingConfigArgs\n        {\n            Rankings = new[]\n            {\n                \"words\",\n                \"proximity\",\n            },\n        },\n        FacetingConfig = new Algolia.Inputs.IndexFacetingConfigArgs\n        {\n            MaxValuesPerFacet = 50,\n            SortFacetValuesBy = \"alpha\",\n        },\n        LanguagesConfig = new Algolia.Inputs.IndexLanguagesConfigArgs\n        {\n            RemoveStopWordsFors = new[]\n            {\n                \"en\",\n            },\n        },\n    });\n\n    var replica = new Algolia.Index(\"replica\", new()\n    {\n        PrimaryIndexName = primary.Name,\n    });\n\n    // Configure settings for this replica\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := algolia.NewIndex(ctx, \"primary\", &algolia.IndexArgs{\n\t\t\tAttributesConfig: &algolia.IndexAttributesConfigArgs{\n\t\t\t\tSearchableAttributes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"title\"),\n\t\t\t\t\tpulumi.String(\"category,tag\"),\n\t\t\t\t\tpulumi.String(\"unordered(description)\"),\n\t\t\t\t},\n\t\t\t\tAttributesForFacetings: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"category\"),\n\t\t\t\t},\n\t\t\t\tUnretrievableAttributes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"author_email\"),\n\t\t\t\t},\n\t\t\t\tAttributesToRetrieves: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"title\"),\n\t\t\t\t\tpulumi.String(\"category\"),\n\t\t\t\t\tpulumi.String(\"tag\"),\n\t\t\t\t\tpulumi.String(\"description\"),\n\t\t\t\t\tpulumi.String(\"body\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRankingConfig: &algolia.IndexRankingConfigArgs{\n\t\t\t\tRankings: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"words\"),\n\t\t\t\t\tpulumi.String(\"proximity\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFacetingConfig: &algolia.IndexFacetingConfigArgs{\n\t\t\t\tMaxValuesPerFacet: pulumi.Float64(50),\n\t\t\t\tSortFacetValuesBy: pulumi.String(\"alpha\"),\n\t\t\t},\n\t\t\tLanguagesConfig: &algolia.IndexLanguagesConfigArgs{\n\t\t\t\tRemoveStopWordsFors: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = algolia.NewIndex(ctx, \"replica\", &algolia.IndexArgs{\n\t\t\tPrimaryIndexName: primary.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.Index;\nimport com.pulumi.algolia.IndexArgs;\nimport com.pulumi.algolia.inputs.IndexAttributesConfigArgs;\nimport com.pulumi.algolia.inputs.IndexRankingConfigArgs;\nimport com.pulumi.algolia.inputs.IndexFacetingConfigArgs;\nimport com.pulumi.algolia.inputs.IndexLanguagesConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var primary = new Index(\"primary\", IndexArgs.builder()\n            .attributesConfig(IndexAttributesConfigArgs.builder()\n                .searchableAttributes(                \n                    \"title\",\n                    \"category,tag\",\n                    \"unordered(description)\")\n                .attributesForFacetings(\"category\")\n                .unretrievableAttributes(\"author_email\")\n                .attributesToRetrieves(                \n                    \"title\",\n                    \"category\",\n                    \"tag\",\n                    \"description\",\n                    \"body\")\n                .build())\n            .rankingConfig(IndexRankingConfigArgs.builder()\n                .rankings(                \n                    \"words\",\n                    \"proximity\")\n                .build())\n            .facetingConfig(IndexFacetingConfigArgs.builder()\n                .maxValuesPerFacet(50)\n                .sortFacetValuesBy(\"alpha\")\n                .build())\n            .languagesConfig(IndexLanguagesConfigArgs.builder()\n                .removeStopWordsFors(\"en\")\n                .build())\n            .build());\n\n        var replica = new Index(\"replica\", IndexArgs.builder()\n            .primaryIndexName(primary.name())\n            .build());\n\n        // Configure settings for this replica\n    }\n}\n```\n```yaml\nresources:\n  primary:\n    type: algolia:Index\n    properties:\n      attributesConfig:\n        searchableAttributes:\n          - title\n          - category,tag\n          - unordered(description)\n        attributesForFacetings:\n          - category\n        unretrievableAttributes:\n          - author_email\n        attributesToRetrieves:\n          - title\n          - category\n          - tag\n          - description\n          - body\n      rankingConfig:\n        rankings:\n          - words\n          - proximity\n      facetingConfig:\n        maxValuesPerFacet: 50\n        sortFacetValuesBy: alpha\n      languagesConfig:\n        removeStopWordsFors:\n          - en\n  replica:\n    type: algolia:Index\n    properties:\n      primaryIndexName: ${primary.name}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import algolia:index/index:Index default {{index_name}}\n```\n\n",
      "properties": {
        "advancedConfig": {
          "$ref": "#/types/algolia:index%2FIndexAdvancedConfig:IndexAdvancedConfig",
          "description": "The configuration for advanced features in index setting.\n"
        },
        "attributesConfig": {
          "$ref": "#/types/algolia:index%2FIndexAttributesConfig:IndexAttributesConfig",
          "description": "The configuration for attributes.\n"
        },
        "deletionProtection": {
          "type": "boolean"
        },
        "enablePersonalization": {
          "type": "boolean",
          "description": "Whether to enable the Personalization feature.\n"
        },
        "enableRules": {
          "type": "boolean",
          "description": "Whether Rules should be globally enabled.\n"
        },
        "facetingConfig": {
          "$ref": "#/types/algolia:index%2FIndexFacetingConfig:IndexFacetingConfig",
          "description": "The configuration for faceting.\n"
        },
        "highlightAndSnippetConfig": {
          "$ref": "#/types/algolia:index%2FIndexHighlightAndSnippetConfig:IndexHighlightAndSnippetConfig",
          "description": "The configuration for highlight / snippet in index setting.\n"
        },
        "indexId": {
          "type": "string"
        },
        "languagesConfig": {
          "$ref": "#/types/algolia:index%2FIndexLanguagesConfig:IndexLanguagesConfig",
          "description": "The configuration for languages in index setting.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the index / replica index. For creating virtual replica, use `algolia.VirtualIndex` resource instead.\n"
        },
        "paginationConfig": {
          "$ref": "#/types/algolia:index%2FIndexPaginationConfig:IndexPaginationConfig",
          "description": "The configuration for pagination in index setting.\n"
        },
        "performanceConfig": {
          "$ref": "#/types/algolia:index%2FIndexPerformanceConfig:IndexPerformanceConfig",
          "description": "The configuration for performance in index setting.\n"
        },
        "primaryIndexName": {
          "type": "string",
          "description": "The name of the existing primary index name. This field is used to create a replica index.\n"
        },
        "queryStrategyConfig": {
          "$ref": "#/types/algolia:index%2FIndexQueryStrategyConfig:IndexQueryStrategyConfig",
          "description": "The configuration for query strategy in index setting.\n"
        },
        "rankingConfig": {
          "$ref": "#/types/algolia:index%2FIndexRankingConfig:IndexRankingConfig",
          "description": "The configuration for ranking.\n"
        },
        "timeouts": {
          "$ref": "#/types/algolia:index%2FIndexTimeouts:IndexTimeouts"
        },
        "typosConfig": {
          "$ref": "#/types/algolia:index%2FIndexTyposConfig:IndexTyposConfig",
          "description": "The configuration for typos in index setting.\n"
        },
        "virtual": {
          "type": "boolean",
          "description": "**Deprecated:** Use `algolia.VirtualIndex` resource instead. Whether the index is virtual index. If true, applying the\nparams listed in the\n[doc](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#unsupported-parameters)\nwill be ignored.\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "indexId",
        "name"
      ],
      "inputProperties": {
        "advancedConfig": {
          "$ref": "#/types/algolia:index%2FIndexAdvancedConfig:IndexAdvancedConfig",
          "description": "The configuration for advanced features in index setting.\n"
        },
        "attributesConfig": {
          "$ref": "#/types/algolia:index%2FIndexAttributesConfig:IndexAttributesConfig",
          "description": "The configuration for attributes.\n"
        },
        "deletionProtection": {
          "type": "boolean"
        },
        "enablePersonalization": {
          "type": "boolean",
          "description": "Whether to enable the Personalization feature.\n"
        },
        "enableRules": {
          "type": "boolean",
          "description": "Whether Rules should be globally enabled.\n"
        },
        "facetingConfig": {
          "$ref": "#/types/algolia:index%2FIndexFacetingConfig:IndexFacetingConfig",
          "description": "The configuration for faceting.\n"
        },
        "highlightAndSnippetConfig": {
          "$ref": "#/types/algolia:index%2FIndexHighlightAndSnippetConfig:IndexHighlightAndSnippetConfig",
          "description": "The configuration for highlight / snippet in index setting.\n"
        },
        "indexId": {
          "type": "string"
        },
        "languagesConfig": {
          "$ref": "#/types/algolia:index%2FIndexLanguagesConfig:IndexLanguagesConfig",
          "description": "The configuration for languages in index setting.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the index / replica index. For creating virtual replica, use `algolia.VirtualIndex` resource instead.\n"
        },
        "paginationConfig": {
          "$ref": "#/types/algolia:index%2FIndexPaginationConfig:IndexPaginationConfig",
          "description": "The configuration for pagination in index setting.\n"
        },
        "performanceConfig": {
          "$ref": "#/types/algolia:index%2FIndexPerformanceConfig:IndexPerformanceConfig",
          "description": "The configuration for performance in index setting.\n"
        },
        "primaryIndexName": {
          "type": "string",
          "description": "The name of the existing primary index name. This field is used to create a replica index.\n"
        },
        "queryStrategyConfig": {
          "$ref": "#/types/algolia:index%2FIndexQueryStrategyConfig:IndexQueryStrategyConfig",
          "description": "The configuration for query strategy in index setting.\n"
        },
        "rankingConfig": {
          "$ref": "#/types/algolia:index%2FIndexRankingConfig:IndexRankingConfig",
          "description": "The configuration for ranking.\n"
        },
        "timeouts": {
          "$ref": "#/types/algolia:index%2FIndexTimeouts:IndexTimeouts"
        },
        "typosConfig": {
          "$ref": "#/types/algolia:index%2FIndexTyposConfig:IndexTyposConfig",
          "description": "The configuration for typos in index setting.\n"
        },
        "virtual": {
          "type": "boolean",
          "description": "**Deprecated:** Use `algolia.VirtualIndex` resource instead. Whether the index is virtual index. If true, applying the\nparams listed in the\n[doc](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#unsupported-parameters)\nwill be ignored.\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Index resources.\n",
        "properties": {
          "advancedConfig": {
            "$ref": "#/types/algolia:index%2FIndexAdvancedConfig:IndexAdvancedConfig",
            "description": "The configuration for advanced features in index setting.\n"
          },
          "attributesConfig": {
            "$ref": "#/types/algolia:index%2FIndexAttributesConfig:IndexAttributesConfig",
            "description": "The configuration for attributes.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "enablePersonalization": {
            "type": "boolean",
            "description": "Whether to enable the Personalization feature.\n"
          },
          "enableRules": {
            "type": "boolean",
            "description": "Whether Rules should be globally enabled.\n"
          },
          "facetingConfig": {
            "$ref": "#/types/algolia:index%2FIndexFacetingConfig:IndexFacetingConfig",
            "description": "The configuration for faceting.\n"
          },
          "highlightAndSnippetConfig": {
            "$ref": "#/types/algolia:index%2FIndexHighlightAndSnippetConfig:IndexHighlightAndSnippetConfig",
            "description": "The configuration for highlight / snippet in index setting.\n"
          },
          "indexId": {
            "type": "string"
          },
          "languagesConfig": {
            "$ref": "#/types/algolia:index%2FIndexLanguagesConfig:IndexLanguagesConfig",
            "description": "The configuration for languages in index setting.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the index / replica index. For creating virtual replica, use `algolia.VirtualIndex` resource instead.\n"
          },
          "paginationConfig": {
            "$ref": "#/types/algolia:index%2FIndexPaginationConfig:IndexPaginationConfig",
            "description": "The configuration for pagination in index setting.\n"
          },
          "performanceConfig": {
            "$ref": "#/types/algolia:index%2FIndexPerformanceConfig:IndexPerformanceConfig",
            "description": "The configuration for performance in index setting.\n"
          },
          "primaryIndexName": {
            "type": "string",
            "description": "The name of the existing primary index name. This field is used to create a replica index.\n"
          },
          "queryStrategyConfig": {
            "$ref": "#/types/algolia:index%2FIndexQueryStrategyConfig:IndexQueryStrategyConfig",
            "description": "The configuration for query strategy in index setting.\n"
          },
          "rankingConfig": {
            "$ref": "#/types/algolia:index%2FIndexRankingConfig:IndexRankingConfig",
            "description": "The configuration for ranking.\n"
          },
          "timeouts": {
            "$ref": "#/types/algolia:index%2FIndexTimeouts:IndexTimeouts"
          },
          "typosConfig": {
            "$ref": "#/types/algolia:index%2FIndexTyposConfig:IndexTyposConfig",
            "description": "The configuration for typos in index setting.\n"
          },
          "virtual": {
            "type": "boolean",
            "description": "**Deprecated:** Use `algolia.VirtualIndex` resource instead. Whether the index is virtual index. If true, applying the\nparams listed in the\n[doc](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#unsupported-parameters)\nwill be ignored.\n",
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "algolia:index/querySuggestions:QuerySuggestions": {
      "description": "A configuration that lies behind your Query Suggestions index.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst exampleIndex = new algolia.Index(\"exampleIndex\", {});\nconst exampleSource = new algolia.Index(\"exampleSource\", {});\nconst exampleQuerySuggestions = new algolia.QuerySuggestions(\"exampleQuerySuggestions\", {\n    indexName: exampleIndex.name,\n    sourceIndices: [{\n        indexName: exampleSource.name,\n        minHits: 10,\n        minLetters: 3,\n        generates: [\n            [\"brand\"],\n            [\n                \"brand\",\n                \"category\",\n            ],\n        ],\n    }],\n    languages: [\n        \"en\",\n        \"ja\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nexample_index = algolia.Index(\"exampleIndex\")\nexample_source = algolia.Index(\"exampleSource\")\nexample_query_suggestions = algolia.QuerySuggestions(\"exampleQuerySuggestions\",\n    index_name=example_index.name,\n    source_indices=[{\n        \"index_name\": example_source.name,\n        \"min_hits\": 10,\n        \"min_letters\": 3,\n        \"generates\": [\n            [\"brand\"],\n            [\n                \"brand\",\n                \"category\",\n            ],\n        ],\n    }],\n    languages=[\n        \"en\",\n        \"ja\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleIndex = new Algolia.Index(\"exampleIndex\");\n\n    var exampleSource = new Algolia.Index(\"exampleSource\");\n\n    var exampleQuerySuggestions = new Algolia.QuerySuggestions(\"exampleQuerySuggestions\", new()\n    {\n        IndexName = exampleIndex.Name,\n        SourceIndices = new[]\n        {\n            new Algolia.Inputs.QuerySuggestionsSourceIndexArgs\n            {\n                IndexName = exampleSource.Name,\n                MinHits = 10,\n                MinLetters = 3,\n                Generates = new[]\n                {\n                    new[]\n                    {\n                        \"brand\",\n                    },\n                    new[]\n                    {\n                        \"brand\",\n                        \"category\",\n                    },\n                },\n            },\n        },\n        Languages = new[]\n        {\n            \"en\",\n            \"ja\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleIndex, err := algolia.NewIndex(ctx, \"exampleIndex\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSource, err := algolia.NewIndex(ctx, \"exampleSource\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = algolia.NewQuerySuggestions(ctx, \"exampleQuerySuggestions\", &algolia.QuerySuggestionsArgs{\n\t\t\tIndexName: exampleIndex.Name,\n\t\t\tSourceIndices: algolia.QuerySuggestionsSourceIndexArray{\n\t\t\t\t&algolia.QuerySuggestionsSourceIndexArgs{\n\t\t\t\t\tIndexName:  exampleSource.Name,\n\t\t\t\t\tMinHits:    pulumi.Float64(10),\n\t\t\t\t\tMinLetters: pulumi.Float64(3),\n\t\t\t\t\tGenerates: pulumi.StringArrayArray{\n\t\t\t\t\t\tpulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"brand\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"brand\"),\n\t\t\t\t\t\t\tpulumi.String(\"category\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLanguages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\tpulumi.String(\"ja\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.Index;\nimport com.pulumi.algolia.QuerySuggestions;\nimport com.pulumi.algolia.QuerySuggestionsArgs;\nimport com.pulumi.algolia.inputs.QuerySuggestionsSourceIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleIndex = new Index(\"exampleIndex\");\n\n        var exampleSource = new Index(\"exampleSource\");\n\n        var exampleQuerySuggestions = new QuerySuggestions(\"exampleQuerySuggestions\", QuerySuggestionsArgs.builder()\n            .indexName(exampleIndex.name())\n            .sourceIndices(QuerySuggestionsSourceIndexArgs.builder()\n                .indexName(exampleSource.name())\n                .minHits(10)\n                .minLetters(3)\n                .generates(                \n                    \"brand\",\n                                        \n                        \"brand\",\n                        \"category\")\n                .build())\n            .languages(            \n                \"en\",\n                \"ja\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleIndex:\n    type: algolia:Index\n  exampleSource:\n    type: algolia:Index\n  exampleQuerySuggestions:\n    type: algolia:QuerySuggestions\n    properties:\n      indexName: ${exampleIndex.name}\n      sourceIndices:\n        - indexName: ${exampleSource.name}\n          minHits: 10\n          minLetters: 3\n          generates:\n            - - brand\n            - - brand\n              - category\n      languages:\n        - en\n        - ja\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import algolia:index/querySuggestions:QuerySuggestions default {{region}}/{{index_name}}\n```\n\n",
      "properties": {
        "excludes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of words and patterns to exclude from the Query Suggestions index.\n"
        },
        "indexName": {
          "type": "string",
          "description": "Index name to target.\n"
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of languages used to de-duplicate singular and plural suggestions.\n"
        },
        "querySuggestionsId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Region to create the index in. \"us\", \"eu\", \"de\" are supported. Defaults to \"us\" when not specified.\n"
        },
        "sourceIndices": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FQuerySuggestionsSourceIndex:QuerySuggestionsSourceIndex"
          },
          "description": "A list of source indices used to generate a Query Suggestions index.\n"
        }
      },
      "type": "object",
      "required": [
        "indexName",
        "querySuggestionsId",
        "sourceIndices"
      ],
      "inputProperties": {
        "excludes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of words and patterns to exclude from the Query Suggestions index.\n"
        },
        "indexName": {
          "type": "string",
          "description": "Index name to target.\n"
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of languages used to de-duplicate singular and plural suggestions.\n"
        },
        "querySuggestionsId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "Region to create the index in. \"us\", \"eu\", \"de\" are supported. Defaults to \"us\" when not specified.\n"
        },
        "sourceIndices": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FQuerySuggestionsSourceIndex:QuerySuggestionsSourceIndex"
          },
          "description": "A list of source indices used to generate a Query Suggestions index.\n"
        }
      },
      "requiredInputs": [
        "indexName",
        "sourceIndices"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering QuerySuggestions resources.\n",
        "properties": {
          "excludes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of words and patterns to exclude from the Query Suggestions index.\n"
          },
          "indexName": {
            "type": "string",
            "description": "Index name to target.\n"
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of languages used to de-duplicate singular and plural suggestions.\n"
          },
          "querySuggestionsId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "Region to create the index in. \"us\", \"eu\", \"de\" are supported. Defaults to \"us\" when not specified.\n"
          },
          "sourceIndices": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FQuerySuggestionsSourceIndex:QuerySuggestionsSourceIndex"
            },
            "description": "A list of source indices used to generate a Query Suggestions index.\n"
          }
        },
        "type": "object"
      }
    },
    "algolia:index/rule:Rule": {
      "description": "A configuration for a Rule.  To get more information about rules, see the [Official Documentation](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst example = new algolia.Rule(\"example\", {\n    indexName: \"example_index\",\n    objectId: \"example\",\n    conditions: [{\n        pattern: \"{facet:category}\",\n        anchoring: \"contains\",\n    }],\n    consequence: {\n        paramsJson: JSON.stringify({\n            automaticFacetFilters: {\n                facet: \"category\",\n                disjunctive: true,\n            },\n        }),\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_algolia as algolia\n\nexample = algolia.Rule(\"example\",\n    index_name=\"example_index\",\n    object_id=\"example\",\n    conditions=[{\n        \"pattern\": \"{facet:category}\",\n        \"anchoring\": \"contains\",\n    }],\n    consequence={\n        \"params_json\": json.dumps({\n            \"automaticFacetFilters\": {\n                \"facet\": \"category\",\n                \"disjunctive\": True,\n            },\n        }),\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Algolia.Rule(\"example\", new()\n    {\n        IndexName = \"example_index\",\n        ObjectId = \"example\",\n        Conditions = new[]\n        {\n            new Algolia.Inputs.RuleConditionArgs\n            {\n                Pattern = \"{facet:category}\",\n                Anchoring = \"contains\",\n            },\n        },\n        Consequence = new Algolia.Inputs.RuleConsequenceArgs\n        {\n            ParamsJson = JsonSerializer.Serialize(new Dictionary<string, object?>\n            {\n                [\"automaticFacetFilters\"] = new Dictionary<string, object?>\n                {\n                    [\"facet\"] = \"category\",\n                    [\"disjunctive\"] = true,\n                },\n            }),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"automaticFacetFilters\": map[string]interface{}{\n\t\t\t\t\"facet\":       \"category\",\n\t\t\t\t\"disjunctive\": true,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = algolia.NewRule(ctx, \"example\", &algolia.RuleArgs{\n\t\t\tIndexName: pulumi.String(\"example_index\"),\n\t\t\tObjectId:  pulumi.String(\"example\"),\n\t\t\tConditions: algolia.RuleConditionArray{\n\t\t\t\t&algolia.RuleConditionArgs{\n\t\t\t\t\tPattern:   pulumi.String(\"{facet:category}\"),\n\t\t\t\t\tAnchoring: pulumi.String(\"contains\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConsequence: &algolia.RuleConsequenceArgs{\n\t\t\t\tParamsJson: pulumi.String(json0),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.Rule;\nimport com.pulumi.algolia.RuleArgs;\nimport com.pulumi.algolia.inputs.RuleConditionArgs;\nimport com.pulumi.algolia.inputs.RuleConsequenceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Rule(\"example\", RuleArgs.builder()\n            .indexName(\"example_index\")\n            .objectId(\"example\")\n            .conditions(RuleConditionArgs.builder()\n                .pattern(\"{facet:category}\")\n                .anchoring(\"contains\")\n                .build())\n            .consequence(RuleConsequenceArgs.builder()\n                .paramsJson(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"automaticFacetFilters\", jsonObject(\n                            jsonProperty(\"facet\", \"category\"),\n                            jsonProperty(\"disjunctive\", true)\n                        ))\n                    )))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: algolia:Rule\n    properties:\n      indexName: example_index\n      objectId: example\n      conditions:\n        - pattern: '{facet:category}'\n          anchoring: contains\n      consequence:\n        paramsJson:\n          fn::toJSON:\n            automaticFacetFilters:\n              facet: category\n              disjunctive: true\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import algolia:index/rule:Rule default {{index_name}}/{{object_id}}\n```\n\n",
      "properties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleCondition:RuleCondition"
          },
          "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
        },
        "consequence": {
          "$ref": "#/types/algolia:index%2FRuleConsequence:RuleConsequence",
          "description": "Consequence of the Rule. At least one of the following object must be used: - params - promote - hide - user_data\n"
        },
        "description": {
          "type": "string",
          "description": "This field is intended for Rule management purposes, in particular to ease searching for Rules and presenting them to\nhuman readers. It is not interpreted by the API.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the Rule is enabled. Disabled Rules remain in the index, but are not applied at query time.\n"
        },
        "indexName": {
          "type": "string",
          "description": "Name of the index to apply rule.\n"
        },
        "objectId": {
          "type": "string",
          "description": "Unique identifier for the Rule (format: `[A-Za-z0-9_-]+`).\n"
        },
        "ruleId": {
          "type": "string"
        },
        "validities": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleValidity:RuleValidity"
          },
          "description": "Objects to promote as hits.\n"
        }
      },
      "type": "object",
      "required": [
        "consequence",
        "indexName",
        "objectId",
        "ruleId"
      ],
      "inputProperties": {
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleCondition:RuleCondition"
          },
          "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
        },
        "consequence": {
          "$ref": "#/types/algolia:index%2FRuleConsequence:RuleConsequence",
          "description": "Consequence of the Rule. At least one of the following object must be used: - params - promote - hide - user_data\n"
        },
        "description": {
          "type": "string",
          "description": "This field is intended for Rule management purposes, in particular to ease searching for Rules and presenting them to\nhuman readers. It is not interpreted by the API.\n"
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the Rule is enabled. Disabled Rules remain in the index, but are not applied at query time.\n"
        },
        "indexName": {
          "type": "string",
          "description": "Name of the index to apply rule.\n"
        },
        "objectId": {
          "type": "string",
          "description": "Unique identifier for the Rule (format: `[A-Za-z0-9_-]+`).\n"
        },
        "ruleId": {
          "type": "string"
        },
        "validities": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FRuleValidity:RuleValidity"
          },
          "description": "Objects to promote as hits.\n"
        }
      },
      "requiredInputs": [
        "consequence",
        "indexName",
        "objectId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Rule resources.\n",
        "properties": {
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FRuleCondition:RuleCondition"
            },
            "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
          },
          "consequence": {
            "$ref": "#/types/algolia:index%2FRuleConsequence:RuleConsequence",
            "description": "Consequence of the Rule. At least one of the following object must be used: - params - promote - hide - user_data\n"
          },
          "description": {
            "type": "string",
            "description": "This field is intended for Rule management purposes, in particular to ease searching for Rules and presenting them to\nhuman readers. It is not interpreted by the API.\n"
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the Rule is enabled. Disabled Rules remain in the index, but are not applied at query time.\n"
          },
          "indexName": {
            "type": "string",
            "description": "Name of the index to apply rule.\n"
          },
          "objectId": {
            "type": "string",
            "description": "Unique identifier for the Rule (format: `[A-Za-z0-9_-]+`).\n"
          },
          "ruleId": {
            "type": "string"
          },
          "validities": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FRuleValidity:RuleValidity"
            },
            "description": "Objects to promote as hits.\n"
          }
        },
        "type": "object"
      }
    },
    "algolia:index/synonyms:Synonyms": {
      "description": "A configuration for synonyms. To get more information about synonyms, see the [Official Documentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/adding-synonyms/).\n\n※ **It replaces any existing synonyms set for the index.** So you can't have multiple `algolia.Synonyms` resources for the same index.\n\n## Import\n\n```sh\n$ pulumi import algolia:index/synonyms:Synonyms default {{index_name}}\n```\n\n",
      "properties": {
        "indexName": {
          "type": "string",
          "description": "Name of the index to apply synonyms.\n"
        },
        "synonyms": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FSynonymsSynonym:SynonymsSynonym"
          },
          "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
        },
        "synonymsId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "type": "object",
      "required": [
        "indexName",
        "synonyms",
        "synonymsId"
      ],
      "inputProperties": {
        "indexName": {
          "type": "string",
          "description": "Name of the index to apply synonyms.\n"
        },
        "synonyms": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FSynonymsSynonym:SynonymsSynonym"
          },
          "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
        },
        "synonymsId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "requiredInputs": [
        "indexName",
        "synonyms"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Synonyms resources.\n",
        "properties": {
          "indexName": {
            "type": "string",
            "description": "Name of the index to apply synonyms.\n"
          },
          "synonyms": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FSynonymsSynonym:SynonymsSynonym"
            },
            "description": "A list of conditions that should apply to activate a Rule. You can use up to 25 conditions per Rule.\n"
          },
          "synonymsId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      }
    },
    "algolia:index/virtualIndex:VirtualIndex": {
      "description": "A configuration for a virtual index.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst example = new algolia.Index(\"example\", {attributesConfig: {\n    searchableAttributes: [\n        \"title\",\n        \"description\",\n    ],\n    attributesToRetrieves: [\"*\"],\n}});\nconst exampleVirtualReplica = new algolia.VirtualIndex(\"exampleVirtualReplica\", {\n    primaryIndexName: example.name,\n    attributesConfig: {\n        unretrievableAttributes: [\"author_email\"],\n        attributesToRetrieves: [\"*\"],\n    },\n    rankingConfig: {\n        customRankings: [\"desc(likes)\"],\n    },\n    facetingConfig: {\n        maxValuesPerFacet: 50,\n        sortFacetValuesBy: \"alpha\",\n    },\n    languagesConfig: {\n        removeStopWordsFors: [\"en\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nexample = algolia.Index(\"example\", attributes_config={\n    \"searchable_attributes\": [\n        \"title\",\n        \"description\",\n    ],\n    \"attributes_to_retrieves\": [\"*\"],\n})\nexample_virtual_replica = algolia.VirtualIndex(\"exampleVirtualReplica\",\n    primary_index_name=example.name,\n    attributes_config={\n        \"unretrievable_attributes\": [\"author_email\"],\n        \"attributes_to_retrieves\": [\"*\"],\n    },\n    ranking_config={\n        \"custom_rankings\": [\"desc(likes)\"],\n    },\n    faceting_config={\n        \"max_values_per_facet\": 50,\n        \"sort_facet_values_by\": \"alpha\",\n    },\n    languages_config={\n        \"remove_stop_words_fors\": [\"en\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Algolia.Index(\"example\", new()\n    {\n        AttributesConfig = new Algolia.Inputs.IndexAttributesConfigArgs\n        {\n            SearchableAttributes = new[]\n            {\n                \"title\",\n                \"description\",\n            },\n            AttributesToRetrieves = new[]\n            {\n                \"*\",\n            },\n        },\n    });\n\n    var exampleVirtualReplica = new Algolia.VirtualIndex(\"exampleVirtualReplica\", new()\n    {\n        PrimaryIndexName = example.Name,\n        AttributesConfig = new Algolia.Inputs.VirtualIndexAttributesConfigArgs\n        {\n            UnretrievableAttributes = new[]\n            {\n                \"author_email\",\n            },\n            AttributesToRetrieves = new[]\n            {\n                \"*\",\n            },\n        },\n        RankingConfig = new Algolia.Inputs.VirtualIndexRankingConfigArgs\n        {\n            CustomRankings = new[]\n            {\n                \"desc(likes)\",\n            },\n        },\n        FacetingConfig = new Algolia.Inputs.VirtualIndexFacetingConfigArgs\n        {\n            MaxValuesPerFacet = 50,\n            SortFacetValuesBy = \"alpha\",\n        },\n        LanguagesConfig = new Algolia.Inputs.VirtualIndexLanguagesConfigArgs\n        {\n            RemoveStopWordsFors = new[]\n            {\n                \"en\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := algolia.NewIndex(ctx, \"example\", &algolia.IndexArgs{\n\t\t\tAttributesConfig: &algolia.IndexAttributesConfigArgs{\n\t\t\t\tSearchableAttributes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"title\"),\n\t\t\t\t\tpulumi.String(\"description\"),\n\t\t\t\t},\n\t\t\t\tAttributesToRetrieves: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = algolia.NewVirtualIndex(ctx, \"exampleVirtualReplica\", &algolia.VirtualIndexArgs{\n\t\t\tPrimaryIndexName: example.Name,\n\t\t\tAttributesConfig: &algolia.VirtualIndexAttributesConfigArgs{\n\t\t\t\tUnretrievableAttributes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"author_email\"),\n\t\t\t\t},\n\t\t\t\tAttributesToRetrieves: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRankingConfig: &algolia.VirtualIndexRankingConfigArgs{\n\t\t\t\tCustomRankings: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"desc(likes)\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFacetingConfig: &algolia.VirtualIndexFacetingConfigArgs{\n\t\t\t\tMaxValuesPerFacet: pulumi.Float64(50),\n\t\t\t\tSortFacetValuesBy: pulumi.String(\"alpha\"),\n\t\t\t},\n\t\t\tLanguagesConfig: &algolia.VirtualIndexLanguagesConfigArgs{\n\t\t\t\tRemoveStopWordsFors: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"en\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.Index;\nimport com.pulumi.algolia.IndexArgs;\nimport com.pulumi.algolia.inputs.IndexAttributesConfigArgs;\nimport com.pulumi.algolia.VirtualIndex;\nimport com.pulumi.algolia.VirtualIndexArgs;\nimport com.pulumi.algolia.inputs.VirtualIndexAttributesConfigArgs;\nimport com.pulumi.algolia.inputs.VirtualIndexRankingConfigArgs;\nimport com.pulumi.algolia.inputs.VirtualIndexFacetingConfigArgs;\nimport com.pulumi.algolia.inputs.VirtualIndexLanguagesConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Index(\"example\", IndexArgs.builder()\n            .attributesConfig(IndexAttributesConfigArgs.builder()\n                .searchableAttributes(                \n                    \"title\",\n                    \"description\")\n                .attributesToRetrieves(\"*\")\n                .build())\n            .build());\n\n        var exampleVirtualReplica = new VirtualIndex(\"exampleVirtualReplica\", VirtualIndexArgs.builder()\n            .primaryIndexName(example.name())\n            .attributesConfig(VirtualIndexAttributesConfigArgs.builder()\n                .unretrievableAttributes(\"author_email\")\n                .attributesToRetrieves(\"*\")\n                .build())\n            .rankingConfig(VirtualIndexRankingConfigArgs.builder()\n                .customRankings(\"desc(likes)\")\n                .build())\n            .facetingConfig(VirtualIndexFacetingConfigArgs.builder()\n                .maxValuesPerFacet(50)\n                .sortFacetValuesBy(\"alpha\")\n                .build())\n            .languagesConfig(VirtualIndexLanguagesConfigArgs.builder()\n                .removeStopWordsFors(\"en\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: algolia:Index\n    properties:\n      attributesConfig:\n        searchableAttributes:\n          - title\n          - description\n        attributesToRetrieves:\n          - '*'\n  exampleVirtualReplica:\n    type: algolia:VirtualIndex\n    properties:\n      primaryIndexName: ${example.name}\n      attributesConfig:\n        unretrievableAttributes:\n          - author_email\n        attributesToRetrieves:\n          - '*'\n      rankingConfig:\n        customRankings:\n          - desc(likes)\n      facetingConfig:\n        maxValuesPerFacet: 50\n        sortFacetValuesBy: alpha\n      languagesConfig:\n        removeStopWordsFors:\n          - en\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n```sh\n$ pulumi import algolia:index/virtualIndex:VirtualIndex default {{index_name}}\n```\n\n",
      "properties": {
        "advancedConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexAdvancedConfig:VirtualIndexAdvancedConfig",
          "description": "The configuration for advanced features in index setting.\n"
        },
        "attributesConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexAttributesConfig:VirtualIndexAttributesConfig",
          "description": "The configuration for attributes.\n"
        },
        "deletionProtection": {
          "type": "boolean"
        },
        "enablePersonalization": {
          "type": "boolean",
          "description": "Whether to enable the Personalization feature.\n"
        },
        "enableRules": {
          "type": "boolean",
          "description": "Whether Rules should be globally enabled.\n"
        },
        "facetingConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexFacetingConfig:VirtualIndexFacetingConfig",
          "description": "The configuration for faceting.\n"
        },
        "highlightAndSnippetConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexHighlightAndSnippetConfig:VirtualIndexHighlightAndSnippetConfig",
          "description": "The configuration for highlight / snippet in index setting.\n"
        },
        "languagesConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexLanguagesConfig:VirtualIndexLanguagesConfig",
          "description": "The configuration for languages in index setting.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the virtual index. Its name should NOT be surrounded with `virtual()`.\n"
        },
        "paginationConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexPaginationConfig:VirtualIndexPaginationConfig",
          "description": "The configuration for pagination in index setting.\n"
        },
        "performanceConfigs": {
          "type": "array",
          "items": {
            "$ref": "#/types/algolia:index%2FVirtualIndexPerformanceConfig:VirtualIndexPerformanceConfig"
          },
          "description": "The configuration for performance in index setting.\n"
        },
        "primaryIndexName": {
          "type": "string",
          "description": "The name of the existing primary index name.\n"
        },
        "queryStrategyConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexQueryStrategyConfig:VirtualIndexQueryStrategyConfig",
          "description": "The configuration for query strategy in index setting.\n"
        },
        "rankingConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexRankingConfig:VirtualIndexRankingConfig",
          "description": "The configuration for ranking.\n"
        },
        "timeouts": {
          "$ref": "#/types/algolia:index%2FVirtualIndexTimeouts:VirtualIndexTimeouts"
        },
        "typosConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexTyposConfig:VirtualIndexTyposConfig",
          "description": "The configuration for typos in index setting.\n"
        },
        "virtualIndexId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "performanceConfigs",
        "primaryIndexName",
        "virtualIndexId"
      ],
      "inputProperties": {
        "advancedConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexAdvancedConfig:VirtualIndexAdvancedConfig",
          "description": "The configuration for advanced features in index setting.\n"
        },
        "attributesConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexAttributesConfig:VirtualIndexAttributesConfig",
          "description": "The configuration for attributes.\n"
        },
        "deletionProtection": {
          "type": "boolean"
        },
        "enablePersonalization": {
          "type": "boolean",
          "description": "Whether to enable the Personalization feature.\n"
        },
        "enableRules": {
          "type": "boolean",
          "description": "Whether Rules should be globally enabled.\n"
        },
        "facetingConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexFacetingConfig:VirtualIndexFacetingConfig",
          "description": "The configuration for faceting.\n"
        },
        "highlightAndSnippetConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexHighlightAndSnippetConfig:VirtualIndexHighlightAndSnippetConfig",
          "description": "The configuration for highlight / snippet in index setting.\n"
        },
        "languagesConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexLanguagesConfig:VirtualIndexLanguagesConfig",
          "description": "The configuration for languages in index setting.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the virtual index. Its name should NOT be surrounded with `virtual()`.\n"
        },
        "paginationConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexPaginationConfig:VirtualIndexPaginationConfig",
          "description": "The configuration for pagination in index setting.\n"
        },
        "primaryIndexName": {
          "type": "string",
          "description": "The name of the existing primary index name.\n"
        },
        "queryStrategyConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexQueryStrategyConfig:VirtualIndexQueryStrategyConfig",
          "description": "The configuration for query strategy in index setting.\n"
        },
        "rankingConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexRankingConfig:VirtualIndexRankingConfig",
          "description": "The configuration for ranking.\n"
        },
        "timeouts": {
          "$ref": "#/types/algolia:index%2FVirtualIndexTimeouts:VirtualIndexTimeouts"
        },
        "typosConfig": {
          "$ref": "#/types/algolia:index%2FVirtualIndexTyposConfig:VirtualIndexTyposConfig",
          "description": "The configuration for typos in index setting.\n"
        },
        "virtualIndexId": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "primaryIndexName"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualIndex resources.\n",
        "properties": {
          "advancedConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexAdvancedConfig:VirtualIndexAdvancedConfig",
            "description": "The configuration for advanced features in index setting.\n"
          },
          "attributesConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexAttributesConfig:VirtualIndexAttributesConfig",
            "description": "The configuration for attributes.\n"
          },
          "deletionProtection": {
            "type": "boolean"
          },
          "enablePersonalization": {
            "type": "boolean",
            "description": "Whether to enable the Personalization feature.\n"
          },
          "enableRules": {
            "type": "boolean",
            "description": "Whether Rules should be globally enabled.\n"
          },
          "facetingConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexFacetingConfig:VirtualIndexFacetingConfig",
            "description": "The configuration for faceting.\n"
          },
          "highlightAndSnippetConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexHighlightAndSnippetConfig:VirtualIndexHighlightAndSnippetConfig",
            "description": "The configuration for highlight / snippet in index setting.\n"
          },
          "languagesConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexLanguagesConfig:VirtualIndexLanguagesConfig",
            "description": "The configuration for languages in index setting.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the virtual index. Its name should NOT be surrounded with `virtual()`.\n"
          },
          "paginationConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexPaginationConfig:VirtualIndexPaginationConfig",
            "description": "The configuration for pagination in index setting.\n"
          },
          "performanceConfigs": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FVirtualIndexPerformanceConfig:VirtualIndexPerformanceConfig"
            },
            "description": "The configuration for performance in index setting.\n"
          },
          "primaryIndexName": {
            "type": "string",
            "description": "The name of the existing primary index name.\n"
          },
          "queryStrategyConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexQueryStrategyConfig:VirtualIndexQueryStrategyConfig",
            "description": "The configuration for query strategy in index setting.\n"
          },
          "rankingConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexRankingConfig:VirtualIndexRankingConfig",
            "description": "The configuration for ranking.\n"
          },
          "timeouts": {
            "$ref": "#/types/algolia:index%2FVirtualIndexTimeouts:VirtualIndexTimeouts"
          },
          "typosConfig": {
            "$ref": "#/types/algolia:index%2FVirtualIndexTyposConfig:VirtualIndexTyposConfig",
            "description": "The configuration for typos in index setting.\n"
          },
          "virtualIndexId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "algolia:index/getIndex:getIndex": {
      "description": "Data source for an index.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst example = algolia.getIndex({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nexample = algolia.get_index(name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Algolia.GetIndex.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := algolia.LookupIndex(ctx, \u0026algolia.LookupIndexArgs{\n\t\t\tName: \"example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.AlgoliaFunctions;\nimport com.pulumi.algolia.inputs.GetIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlgoliaFunctions.getIndex(GetIndexArgs.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: algolia:getIndex\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getIndex.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the index.\n"
          },
          "paginationConfigs": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexPaginationConfig:getIndexPaginationConfig"
            },
            "description": "The configuration for pagination in index setting.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getIndex.\n",
        "properties": {
          "advancedConfigs": {
            "description": "The configuration for advanced features in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexAdvancedConfig:getIndexAdvancedConfig"
            },
            "type": "array"
          },
          "attributesConfigs": {
            "description": "The configuration for attributes.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexAttributesConfig:getIndexAttributesConfig"
            },
            "type": "array"
          },
          "enablePersonalization": {
            "description": "Whether to enable the Personalization feature.\n",
            "type": "boolean"
          },
          "enableRules": {
            "description": "Whether Rules should be globally enabled.\n",
            "type": "boolean"
          },
          "facetingConfigs": {
            "description": "The configuration for faceting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexFacetingConfig:getIndexFacetingConfig"
            },
            "type": "array"
          },
          "highlightAndSnippetConfigs": {
            "description": "The configuration for highlight / snippet in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexHighlightAndSnippetConfig:getIndexHighlightAndSnippetConfig"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "languagesConfigs": {
            "description": "The configuration for languages in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexLanguagesConfig:getIndexLanguagesConfig"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the index.\n",
            "type": "string"
          },
          "paginationConfigs": {
            "description": "The configuration for pagination in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexPaginationConfig:getIndexPaginationConfig"
            },
            "type": "array"
          },
          "performanceConfigs": {
            "description": "The configuration for performance in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexPerformanceConfig:getIndexPerformanceConfig"
            },
            "type": "array"
          },
          "primaryIndexName": {
            "description": "The name of the existing primary index name. This field is filled when the index is a replica index.\n",
            "type": "string"
          },
          "queryStrategyConfigs": {
            "description": "The configuration for query strategy in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexQueryStrategyConfig:getIndexQueryStrategyConfig"
            },
            "type": "array"
          },
          "rankingConfigs": {
            "description": "The configuration for ranking.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexRankingConfig:getIndexRankingConfig"
            },
            "type": "array"
          },
          "typosConfigs": {
            "description": "The configuration for typos in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetIndexTyposConfig:getIndexTyposConfig"
            },
            "type": "array"
          },
          "virtual": {
            "description": "Whether the index is virtual index.\n",
            "type": "boolean"
          }
        },
        "required": [
          "advancedConfigs",
          "attributesConfigs",
          "enablePersonalization",
          "enableRules",
          "facetingConfigs",
          "highlightAndSnippetConfigs",
          "id",
          "languagesConfigs",
          "name",
          "performanceConfigs",
          "primaryIndexName",
          "queryStrategyConfigs",
          "rankingConfigs",
          "typosConfigs",
          "virtual"
        ],
        "type": "object"
      }
    },
    "algolia:index/getVirtualIndex:getVirtualIndex": {
      "description": "Data source for a virtual index.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as algolia from \"@pulumi/algolia\";\n\nconst example = algolia.getVirtualIndex({\n    name: \"example_virtual_replica\",\n});\n```\n```python\nimport pulumi\nimport pulumi_algolia as algolia\n\nexample = algolia.get_virtual_index(name=\"example_virtual_replica\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Algolia = Pulumi.Algolia;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Algolia.GetVirtualIndex.Invoke(new()\n    {\n        Name = \"example_virtual_replica\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/algolia/algolia\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := algolia.LookupVirtualIndex(ctx, \u0026algolia.LookupVirtualIndexArgs{\n\t\t\tName: \"example_virtual_replica\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.algolia.AlgoliaFunctions;\nimport com.pulumi.algolia.inputs.GetVirtualIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlgoliaFunctions.getVirtualIndex(GetVirtualIndexArgs.builder()\n            .name(\"example_virtual_replica\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: algolia:getVirtualIndex\n      arguments:\n        name: example_virtual_replica\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualIndex.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the index.\n"
          },
          "paginationConfigs": {
            "type": "array",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexPaginationConfig:getVirtualIndexPaginationConfig"
            },
            "description": "The configuration for pagination in index setting.\n"
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualIndex.\n",
        "properties": {
          "advancedConfigs": {
            "description": "The configuration for advanced features in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexAdvancedConfig:getVirtualIndexAdvancedConfig"
            },
            "type": "array"
          },
          "attributesConfigs": {
            "description": "The configuration for attributes.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexAttributesConfig:getVirtualIndexAttributesConfig"
            },
            "type": "array"
          },
          "enablePersonalization": {
            "description": "Whether to enable the Personalization feature.\n",
            "type": "boolean"
          },
          "enableRules": {
            "description": "Whether Rules should be globally enabled.\n",
            "type": "boolean"
          },
          "facetingConfigs": {
            "description": "The configuration for faceting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexFacetingConfig:getVirtualIndexFacetingConfig"
            },
            "type": "array"
          },
          "highlightAndSnippetConfigs": {
            "description": "The configuration for highlight / snippet in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexHighlightAndSnippetConfig:getVirtualIndexHighlightAndSnippetConfig"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "languagesConfigs": {
            "description": "The configuration for languages in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexLanguagesConfig:getVirtualIndexLanguagesConfig"
            },
            "type": "array"
          },
          "name": {
            "description": "Name of the index.\n",
            "type": "string"
          },
          "paginationConfigs": {
            "description": "The configuration for pagination in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexPaginationConfig:getVirtualIndexPaginationConfig"
            },
            "type": "array"
          },
          "performanceConfigs": {
            "description": "The configuration for performance in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexPerformanceConfig:getVirtualIndexPerformanceConfig"
            },
            "type": "array"
          },
          "primaryIndexName": {
            "description": "The name of the existing primary index name. This field is filled when the index is a replica index.\n",
            "type": "string"
          },
          "queryStrategyConfigs": {
            "description": "The configuration for query strategy in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexQueryStrategyConfig:getVirtualIndexQueryStrategyConfig"
            },
            "type": "array"
          },
          "rankingConfigs": {
            "description": "The configuration for ranking.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexRankingConfig:getVirtualIndexRankingConfig"
            },
            "type": "array"
          },
          "typosConfigs": {
            "description": "The configuration for typos in index setting.\n",
            "items": {
              "$ref": "#/types/algolia:index%2FgetVirtualIndexTyposConfig:getVirtualIndexTyposConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "advancedConfigs",
          "attributesConfigs",
          "enablePersonalization",
          "enableRules",
          "facetingConfigs",
          "highlightAndSnippetConfigs",
          "id",
          "languagesConfigs",
          "name",
          "performanceConfigs",
          "primaryIndexName",
          "queryStrategyConfigs",
          "rankingConfigs",
          "typosConfigs"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2steW9tby9hbGdvbGlhIiwidmVyc2lvbiI6IjAuNi4yIn19"
  }
}
