# Schema

- [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#SCHEMA_REPRESENTATION)
- [ObjectDefinition](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition.SCHEMA_REPRESENTATION)
- [ObjectOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.SCHEMA_REPRESENTATION)
- [ObjectOptions.FreshnessOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.FreshnessOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.FreshnessOptions.SCHEMA_REPRESENTATION)
- [ObjectDisplayOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.SCHEMA_REPRESENTATION)
- [ObjectDisplayOptions.Metaline](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.Metaline)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.Metaline.SCHEMA_REPRESENTATION)
- [ObjectDisplayOptions.DisplayedProperty](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.DisplayedProperty)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.DisplayedProperty.SCHEMA_REPRESENTATION)
- [PropertyDefinition](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.SCHEMA_REPRESENTATION)
- [IntegerPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.SCHEMA_REPRESENTATION)
- [IntegerPropertyOptions.OrderedRanking](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.OrderedRanking)
- [IntegerPropertyOptions.IntegerOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.IntegerOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.IntegerOperatorOptions.SCHEMA_REPRESENTATION)
- [DoublePropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions.SCHEMA_REPRESENTATION)
- [DoublePropertyOptions.DoubleOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions.DoubleOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions.DoubleOperatorOptions.SCHEMA_REPRESENTATION)
- [TimestampPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions.SCHEMA_REPRESENTATION)
- [TimestampPropertyOptions.TimestampOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions.TimestampOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions.TimestampOperatorOptions.SCHEMA_REPRESENTATION)
- [BooleanPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions.SCHEMA_REPRESENTATION)
- [BooleanPropertyOptions.BooleanOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions.BooleanOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions.BooleanOperatorOptions.SCHEMA_REPRESENTATION)
- [ObjectPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectPropertyOptions.SCHEMA_REPRESENTATION)
- [EnumPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.SCHEMA_REPRESENTATION)
- [EnumPropertyOptions.EnumValuePair](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumValuePair)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumValuePair.SCHEMA_REPRESENTATION)
- [EnumPropertyOptions.OrderedRanking](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.OrderedRanking)
- [EnumPropertyOptions.EnumOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumOperatorOptions.SCHEMA_REPRESENTATION)
- [DatePropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions.SCHEMA_REPRESENTATION)
- [DatePropertyOptions.DateOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions.DateOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions.DateOperatorOptions.SCHEMA_REPRESENTATION)
- [TextPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.SCHEMA_REPRESENTATION)
- [RetrievalImportance](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance.SCHEMA_REPRESENTATION)
- [RetrievalImportance.Importance](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance.Importance)
- [TextPropertyOptions.TextOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.TextOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.TextOperatorOptions.SCHEMA_REPRESENTATION)
- [HtmlPropertyOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions.SCHEMA_REPRESENTATION)
- [HtmlPropertyOptions.HtmlOperatorOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions.HtmlOperatorOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions.HtmlOperatorOptions.SCHEMA_REPRESENTATION)
- [PropertyDisplayOptions](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDisplayOptions)
  - [JSON representation](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDisplayOptions.SCHEMA_REPRESENTATION)

The schema definition for a data source.

| JSON representation |
|---|
| ``` { "objectDefinitions": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition`) } ], "operationIds": [ string ] } ``` |

| Fields ||
|---|---|
| `objectDefinitions[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition`)`` The list of top-level objects for the data source. The maximum number of elements is 10. |
| `operationIds[]` | `string` IDs of the Long Running Operations (LROs) currently running for this schema. After modifying the schema, wait for operations to complete before indexing additional content. |

## ObjectDefinition

The definition for an object within a data source.

| JSON representation |
|---|
| ``` { "name": string, "options": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions`) }, "propertyDefinitions": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition`) } ] } ``` |

| Fields ||
|---|---|
| `name` | `string` The name for the object, which then defines its type. Item indexing requests should set the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemMetadata.FIELDS.object_type` field equal to this value. For example, if *name* is *Document* , then indexing requests for items of type Document should set `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemMetadata.FIELDS.object_type` equal to *Document*. Each object definition must be uniquely named within a schema. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters. |
| `options` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions`)`` The optional object-specific options. |
| `propertyDefinitions[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition`)`` The property definitions for the object. The maximum number of elements is 1000. |

## ObjectOptions

The options for an object.

| JSON representation |
|---|
| ``` { "freshnessOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.FreshnessOptions`) }, "displayOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions`) }, "suggestionFilteringOperators": [ string ] } ``` |

| Fields ||
|---|---|
| `freshnessOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.FreshnessOptions`)`` The freshness options for an object. |
| `displayOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions`)`` The options that determine how the object is displayed in the Cloud Search results page. |
| `suggestionFilteringOperators[]` | `string` Operators that can be used to filter suggestions. For `query.suggest` API, only operators mentioned here will be honored in the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.searchapplications#FilterOptions`. Only TEXT and ENUM operators are supported. NOTE: "objecttype", "type" and "mimetype" are already supported. This property is to configure schema specific operators. Even though this is an array, only one operator can be specified. This is an array for future extensibility. Operators mapping to multiple properties within the same object are not supported. If the operator spans across different object types, this option has to be set once for each object definition. |

## ObjectOptions.FreshnessOptions

Indicates which freshness property to use when adjusting search ranking for an item. Fresher, more recent dates indicate higher quality. Use the freshness option property that best works with your data. For fileshare documents, last modified time is most relevant. For calendar event data, the time when the event occurs is a more relevant freshness indicator. In this way, calendar events that occur closer to the time of the search query are considered higher quality and ranked accordingly.

| JSON representation |
|---|
| ``` { "freshnessProperty": string, "freshnessDuration": string } ``` |

| Fields ||
|---|---|
| `freshnessProperty` | `string` This property indicates the freshness level of the object in the index. If set, this property must be a top-level property within the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDefinition.FIELDS.property_definitions` and it must be a `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.FIELDS.timestamp_property_options` or `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.FIELDS.date_property_options`. Otherwise, the Indexing API uses `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemMetadata.FIELDS.update_time` as the freshness indicator. The maximum length is 256 characters. When a property is used to calculate freshness, the value defaults to 2 years from the current time. |
| `freshnessDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` The duration after which an object should be considered stale. The default value is 180 days (in seconds). A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |

## ObjectDisplayOptions

The display options for an object.

| JSON representation |
|---|
| ``` { "objectDisplayLabel": string, "metalines": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.Metaline`) } ] } ``` |

| Fields ||
|---|---|
| `objectDisplayLabel` | `string` The user friendly label to display in the search result to indicate the type of the item. This is OPTIONAL; if not provided, an object label isn't displayed on the context line of the search results. The maximum length is 64 characters. |
| `metalines[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.Metaline`)`` Defines the properties that are displayed in the metalines of the search results. The property values are displayed in the order given here. If a property holds multiple values, all of the values are displayed before the next properties. For this reason, it is a good practice to specify singular properties before repeated properties in this list. All of the properties must set `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.FIELDS.is_returnable` to true. The maximum number of metalines is 3. |

## ObjectDisplayOptions.Metaline

A metaline is a list of properties that are displayed along with the search result to provide context.

| JSON representation |
|---|
| ``` { "properties": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.DisplayedProperty`) } ] } ``` |

| Fields ||
|---|---|
| `properties[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectDisplayOptions.DisplayedProperty`)`` The list of displayed properties for the metaline. The maximum number of properties is 5. |

## ObjectDisplayOptions.DisplayedProperty

A reference to a top-level property within the object that should be displayed in search results. The values of the chosen properties is displayed in the search results along with the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDisplayOptions.FIELDS.display_label` for that property if one is specified. If a display label is not specified, only the values is shown.

| JSON representation |
|---|
| ``` { "propertyName": string } ``` |

| Fields ||
|---|---|
| `propertyName` | `string` The name of the top-level property as defined in a property definition for the object. If the name is not a defined property in the schema, an error is given when attempting to update the schema. |

## PropertyDefinition

The definition of a property within an object.

| JSON representation |
|---|
| ``` { "name": string, "isReturnable": boolean, "isRepeatable": boolean, "isSortable": boolean, "isFacetable": boolean, "isSuggestable": boolean, "isWildcardSearchable": boolean, "displayOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDisplayOptions`) }, "integerPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions`) }, "doublePropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions`) }, "timestampPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions`) }, "booleanPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions`) }, "objectPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectPropertyOptions`) }, "enumPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions`) }, "datePropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions`) }, "textPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions`) }, "htmlPropertyOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions`) } } ``` |

| Fields ||
|---|---|
| `name` | `string` The name of the property. Item indexing requests sent to the Indexing API should set the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#NamedProperty.FIELDS.name` equal to this value. For example, if name is *subject_line* , then indexing requests for document items with subject fields should set the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#NamedProperty.FIELDS.name` for that field equal to *subject_line*. Use the name as the identifier for the object property. Once registered as a property for an object, you cannot re-use this name for another property within that object. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters. |
| `isReturnable` | `boolean` Indicates that the property identifies data that should be returned in search results via the query API. If set to *true* , indicates that query API users can use matching property fields in results. However, storing fields requires more space allocation and uses more bandwidth for search queries, which impacts performance over large datasets. Set to *true* here only if the field is needed for search results. Cannot be true for properties whose type is an object. |
| `isRepeatable` | `boolean` Indicates that multiple values are allowed for the property. For example, a document only has one description but can have multiple comments. Cannot be true for properties whose type is a boolean. If set to false, properties that contain more than one value cause the indexing request for that item to be rejected. |
| `isSortable` | `boolean` Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, date, double, integer, and timestamp properties. |
| `isFacetable` | `boolean` Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, enum, integer, and text properties. |
| `isSuggestable` | `boolean` Indicates that the property can be used for generating query suggestions. |
| `isWildcardSearchable` | `boolean` Indicates that users can perform wildcard search for this property. Only supported for Text properties. IsReturnable must be true to set this option. In a given datasource maximum of 5 properties can be marked as isWildcardSearchable. For more details, see [Define object properties](https://developers.google.com/workspace/cloud-search/docs/guides/schema-guide#properties) |
| `displayOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDisplayOptions`)`` The options that determine how the property is displayed in the Cloud Search results page if it's specified to be displayed in the object's `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectOptions.FIELDS.display_options`. |
| Union field `property_options`. The type-specific options that determine how the property is indexed and used. In the case where the options should be the default options for a type, this field must still be set to one of the types. If this field is not set, schema updates are rejected. `property_options` can be only one of the following: ||
| `integerPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions`)`` |
| `doublePropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions`)`` |
| `timestampPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions`)`` |
| `booleanPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions`)`` |
| `objectPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#ObjectPropertyOptions`)`` |
| `enumPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions`)`` |
| `datePropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions`)`` |
| `textPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions`)`` |
| `htmlPropertyOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions`)`` |

## IntegerPropertyOptions

The options for integer properties.

| JSON representation |
|---|
| ``` { "orderedRanking": enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.OrderedRanking`), "minimumValue": string, "maximumValue": string, "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.IntegerOperatorOptions`) }, "integerFacetingOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.searchapplications#IntegerFacetingOptions`) } } ``` |

| Fields ||
|---|---|
| `orderedRanking` | ``enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.OrderedRanking`)`` Used to specify the ordered ranking for the integer. Can only be used if `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.FIELDS.is_repeatable` is false. |
| `minimumValue` | `string (https://developers.google.com/discovery/v1/type-format format)` The minimum value of the property. The minimum and maximum values for the property are used to rank results according to the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.FIELDS.ordered_ranking`. Indexing requests with values less than the minimum are accepted and ranked with the same weight as items indexed with the minimum value. |
| `maximumValue` | `string (https://developers.google.com/discovery/v1/type-format format)` The maximum value of the property. The minimum and maximum values for the property are used to rank results according to the `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.FIELDS.ordered_ranking`. Indexing requests with values greater than the maximum are accepted and ranked with the same weight as items indexed with the maximum value. |
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.IntegerOperatorOptions`)`` If set, describes how the integer should be used as a search operator. |
| Union field `faceting_options`. `faceting_options` can be only one of the following: ||
| `integerFacetingOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.searchapplications#IntegerFacetingOptions`)`` If set, describes integer faceting options for the given integer property. The corresponding integer property should be marked isFacetable. |

## IntegerPropertyOptions.OrderedRanking

Used to specify how an integer value should be ranked relative to other values. An integer with a higher ordered ranking suggests greater importance. For example, in some data sources lower priority indicates higher importance while in others a higher priority indicates higher importance.

| Enums ||
|---|---|
| `NO_ORDER` | There is no ranking order for the property. Results are not adjusted by this property's value. |
| `ASCENDING` | This property is ranked in ascending order. Lower values indicate lower ranking. |
| `DESCENDING` | This property is ranked in descending order. Lower values indicate higher ranking. |

## IntegerPropertyOptions.IntegerOperatorOptions

Used to provide a search operator for integer properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string, "lessThanOperatorName": string, "greaterThanOperatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the integer property. For example, if operatorName is *priority* and the property's name is *priorityVal* , then queries like *priority:\<value\>* show results only where the value of the property named *priorityVal* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `lessThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the integer property using the less-than operator. For example, if lessThanOperatorName is *prioritybelow* and the property's name is *priorityVal* , then queries like *prioritybelow:\<value\>* show results only where the value of the property named *priorityVal* is less than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `greaterThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the integer property using the greater-than operator. For example, if greaterThanOperatorName is *priorityabove* and the property's name is *priorityVal* , then queries like *priorityabove:\<value\>* show results only where the value of the property named *priorityVal* is greater than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## DoublePropertyOptions

The options for double properties.

| JSON representation |
|---|
| ``` { "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions.DoubleOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DoublePropertyOptions.DoubleOperatorOptions`)`` If set, describes how the double should be used as a search operator. |

## DoublePropertyOptions.DoubleOperatorOptions

Used to provide a search operator for double properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to use the double property in sorting or as a facet. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## TimestampPropertyOptions

The options for timestamp properties.

| JSON representation |
|---|
| ``` { "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions.TimestampOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TimestampPropertyOptions.TimestampOperatorOptions`)`` If set, describes how the timestamp should be used as a search operator. |

## TimestampPropertyOptions.TimestampOperatorOptions

Used to provide a search operator for timestamp properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string, "lessThanOperatorName": string, "greaterThanOperatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the timestamp property. For example, if operatorName is *closedon* and the property's name is *closeDate* , then queries like *closedon:\<value\>* show results only where the value of the property named *closeDate* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `lessThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the timestamp property using the less-than operator. For example, if lessThanOperatorName is *closedbefore* and the property's name is *closeDate* , then queries like *closedbefore:\<value\>* show results only where the value of the property named *closeDate* is earlier than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `greaterThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the timestamp property using the greater-than operator. For example, if greaterThanOperatorName is *closedafter* and the property's name is *closeDate* , then queries like *closedafter:\<value\>* show results only where the value of the property named *closeDate* is later than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## BooleanPropertyOptions

The options for boolean properties.

| JSON representation |
|---|
| ``` { "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions.BooleanOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#BooleanPropertyOptions.BooleanOperatorOptions`)`` If set, describes how the boolean should be used as a search operator. |

## BooleanPropertyOptions.BooleanOperatorOptions

Used to provide a search operator for boolean properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the boolean property. For example, if operatorName is *closed* and the property's name is *isClosed* , then queries like *closed:\<value\>* show results only where the value of the property named *isClosed* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## ObjectPropertyOptions

The options for object properties.

| JSON representation |
|---|
| ``` { "subobjectProperties": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition`) } ] } ``` |

| Fields ||
|---|---|
| `subobjectProperties[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition`)`` The properties of the sub-object. These properties represent a nested object. For example, if this property represents a postal address, the subobjectProperties might be named *street* , *city* , and *state*. The maximum number of elements is 1000. |

## EnumPropertyOptions

The options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define *p0* as an allowable enum value and tie this enum to the operator name *priority* so that search users could add *priority:p0* to their query to restrict the set of results to only those items indexed with the value *p0*.

| JSON representation |
|---|
| ``` { "possibleValues": [ { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumValuePair`) } ], "orderedRanking": enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.OrderedRanking`), "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `possibleValues[]` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumValuePair`)`` The list of possible values for the enumeration property. All EnumValuePairs must provide a string value. If you specify an integer value for one EnumValuePair, then all possible EnumValuePairs must provide an integer value. Both the string value and integer value must be unique over all possible values. Once set, possible values cannot be removed or modified. If you supply an ordered ranking and think you might insert additional enum values in the future, leave gaps in the initial integer values to allow adding a value in between previously registered values. The maximum number of elements is 100. |
| `orderedRanking` | ``enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.OrderedRanking`)`` Used to specify the ordered ranking for the enumeration that determines how the integer values provided in the possible EnumValuePairs are used to rank results. If specified, integer values must be provided for all possible EnumValuePair values given for this property. Can only be used if `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#PropertyDefinition.FIELDS.is_repeatable` is false. |
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumOperatorOptions`)`` If set, describes how the enum should be used as a search operator. |

## EnumPropertyOptions.EnumValuePair

The enumeration value pair defines two things: a required string value and an optional integer value. The string value defines the necessary query term required to retrieve that item, such as *p0* for a priority item. The integer value determines the ranking of that string value relative to other enumerated values for the same property. For example, you might associate *p0* with *0* and define another enum pair such as *p1* and *1* . You must use the integer value in combination with `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#IntegerPropertyOptions.FIELDS.ordered_ranking` to set the ranking of a given value relative to other enumerated values for the same property name. Here, a ranking order of DESCENDING for *priority* properties results in a ranking boost for items indexed with a value of *p0* compared to items indexed with a value of *p1*. Without a specified ranking order, the integer value has no effect on item ranking.

| JSON representation |
|---|
| ``` { "stringValue": string, "integerValue": integer } ``` |

| Fields ||
|---|---|
| `stringValue` | `string` The string value of the EnumValuePair. The maximum length is 32 characters. |
| `integerValue` | `integer` The integer value of the EnumValuePair which must be non-negative. Optional. |

## EnumPropertyOptions.OrderedRanking

Used to specify the ranking direction for an `https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#EnumPropertyOptions.EnumValuePair` integer relative to other EnumValuePair integer values. For some properties, lower integer values indicate higher importance, while in others a higher integer indicates higher importance.

| Enums ||
|---|---|
| `NO_ORDER` | There is no ranking order for the property. Results aren't adjusted by this property's value. |
| `ASCENDING` | This property is ranked in ascending order. Lower values indicate lower ranking. |
| `DESCENDING` | This property is ranked in descending order. Lower values indicate higher ranking. |

## EnumPropertyOptions.EnumOperatorOptions

Used to provide a search operator for enum properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched. For example, if you provide no operator for a *priority* enum property with possible values *p0* and *p1* , a query that contains the term *p0* returns items that have *p0* as the value of the *priority* property, as well as any items that contain the string *p0* in other fields. If you provide an operator name for the enum, such as *priority* , then search users can use that operator to refine results to only items that have *p0* as this property's value, with the query *priority:p0*.

| JSON representation |
|---|
| ``` { "operatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the enum property. For example, if operatorName is *priority* and the property's name is *priorityVal* , then queries like *priority:\<value\>* show results only where the value of the property named *priorityVal* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## DatePropertyOptions

The options for date properties.

| JSON representation |
|---|
| ``` { "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions.DateOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#DatePropertyOptions.DateOperatorOptions`)`` If set, describes how the date should be used as a search operator. |

## DatePropertyOptions.DateOperatorOptions

Optional. Provides a search operator for date properties. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string, "lessThanOperatorName": string, "greaterThanOperatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the actual string required in the query in order to isolate the date property. For example, suppose an issue tracking schema object has a property named *closeDate* that specifies an operator with an operatorName of *closedon* . For searches on that data, queries like *closedon:\<value\>* show results only where the value of the *closeDate* property matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any String properties or text within the content field for the indexed datasource. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `lessThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the date property using the less-than operator. For example, if lessThanOperatorName is *closedbefore* and the property's name is *closeDate* , then queries like *closedbefore:\<value\>* show results only where the value of the property named *closeDate* is earlier than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `greaterThanOperatorName` | `string` Indicates the operator name required in the query in order to isolate the date property using the greater-than operator. For example, if greaterThanOperatorName is *closedafter* and the property's name is *closeDate* , then queries like *closedafter:\<value\>* show results only where the value of the property named *closeDate* is later than *\<value\>*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## TextPropertyOptions

The options for text properties.

| JSON representation |
|---|
| ``` { "retrievalImportance": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance`) }, "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.TextOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `retrievalImportance` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance`)`` Indicates the search quality importance of the tokens within the field when used for retrieval. |
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#TextPropertyOptions.TextOperatorOptions`)`` If set, describes how the property should be used as a search operator. |

## RetrievalImportance

| JSON representation |
|---|
| ``` { "importance": enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance.Importance`) } ``` |

| Fields ||
|---|---|
| `importance` | ``enum (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance.Importance`)`` Indicates the ranking importance given to property when it is matched during retrieval. Once set, the token importance of a property cannot be changed. |

## RetrievalImportance.Importance

| Enums ||
|---|---|
| `DEFAULT` | Treat the match like a body text match. |
| `HIGHEST` | Treat the match like a match against title of the item. |
| `HIGH` | Treat the match with higher importance than body text. |
| `LOW` | Treat the match with lower importance than body text. |
| `NONE` | Do not match against this field during retrieval. The property can still be used for operator matching, faceting, and suggest if desired. |

## TextPropertyOptions.TextOperatorOptions

Used to provide a search operator for text properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string, "exactMatchWithOperator": boolean } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the text property. For example, if operatorName is *subject* and the property's name is *subjectLine* , then queries like *subject:\<value\>* show results only where the value of the property named *subjectLine* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator returns all items where *\<value\>* matches the value of any text properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |
| `exactMatchWithOperator` | `boolean` If true, the text value is tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is "genre" and the value is "science-fiction" the query restrictions "genre:science" and "genre:fiction" doesn't match the item; "genre:science-fiction" does. Text value matching is case-sensitive and does not remove special characters. If false, the text is tokenized. For example, if the value is "science-fiction" the queries "genre:science" and "genre:fiction" matches the item. |

## HtmlPropertyOptions

The options for html properties.

| JSON representation |
|---|
| ``` { "retrievalImportance": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance`) }, "operatorOptions": { object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions.HtmlOperatorOptions`) } } ``` |

| Fields ||
|---|---|
| `retrievalImportance` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#RetrievalImportance`)`` Indicates the search quality importance of the tokens within the field when used for retrieval. Can only be set to DEFAULT or NONE. |
| `operatorOptions` | ``object (`https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/Schema#HtmlPropertyOptions.HtmlOperatorOptions`)`` If set, describes how the property should be used as a search operator. |

## HtmlPropertyOptions.HtmlOperatorOptions

Used to provide a search operator for html properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.

| JSON representation |
|---|
| ``` { "operatorName": string } ``` |

| Fields ||
|---|---|
| `operatorName` | `string` Indicates the operator name required in the query in order to isolate the html property. For example, if operatorName is *subject* and the property's name is *subjectLine* , then queries like *subject:\<value\>* show results only where the value of the property named *subjectLine* matches *\<value\>* . By contrast, a search that uses the same *\<value\>* without an operator return all items where *\<value\>* matches the value of any html properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters. |

## PropertyDisplayOptions

The display options for a property.

| JSON representation |
|---|
| ``` { "displayLabel": string } ``` |

| Fields ||
|---|---|
| `displayLabel` | `string` The user friendly label for the property that is used if the property is specified to be displayed in ObjectDisplayOptions. If provided, the display label is shown in front of the property values when the property is part of the object display options. For example, if the property value is '1', the value by itself may not be useful context for the user. If the display name given was 'priority', then the user sees 'priority : 1' in the search results which provides clear context to search users. This is OPTIONAL; if not given, only the property values are displayed. The maximum length is 64 characters. |