Cloud Search API . indexing . datasources

Instance Methods

items()

Returns the items Resource.

deleteSchema(name=None, debugOptions_enableDebugging=None, x__xgafv=None)

Deletes the schema of a data source.

getSchema(name=None, debugOptions_enableDebugging=None, x__xgafv=None)

Gets the schema of a data source.

updateSchema(name=None, body=None, x__xgafv=None)

Updates the schema of a data source. This method does not perform

Method Details

deleteSchema(name=None, debugOptions_enableDebugging=None, x__xgafv=None)
Deletes the schema of a data source.

**Note:** This API requires an admin or service account to execute.

Args:
  name: string, Name of the data source to delete Schema.  Format:
datasources/{source_id} (required)
  debugOptions_enableDebugging: boolean, If you are asked by Google to help with debugging, set this field.
Otherwise, ignore this field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
  }
getSchema(name=None, debugOptions_enableDebugging=None, x__xgafv=None)
Gets the schema of a data source.

**Note:** This API requires an admin or service account to execute.

Args:
  name: string, Name of the data source to get Schema.  Format:
datasources/{source_id} (required)
  debugOptions_enableDebugging: boolean, If you are asked by Google to help with debugging, set this field.
Otherwise, ignore this field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The schema definition for a data source.
    "objectDefinitions": [ # The list of top-level objects for the data source.
        # The maximum number of elements is 10.
      { # The definition for an object within a data source.
        "propertyDefinitions": [ # The property definitions for the object.
            # The maximum number of elements is 1000.
          { # The definition of a property within an object.
            "htmlPropertyOptions": { # Options for html properties.
              "retrievalImportance": { # Indicates the search quality importance of the tokens within the
                  # field when used for retrieval. Can only be set to DEFAULT or NONE.
                "importance": "A String", # Indicates the ranking importance given to property when it is matched
                    # during retrieval. Once set, the token importance of a property cannot be
                    # changed.
              },
              "operatorOptions": { # Used to provide a search operator for html properties. This is optional. # If set, describes how the property should be used as a search operator.
                  # Search operators let users restrict the query to specific fields relevant
                  # to the type of item being searched.
                "operatorName": "A 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.
              },
            },
            "isWildcardSearchable": True or False, # 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 is_wildcard_searchable.
            "textPropertyOptions": { # Options for text properties.
              "operatorOptions": { # Used to provide a search operator for text properties. This is optional. # If set, describes how the property should be used as a search operator.
                  # Search operators let users restrict the query to specific fields relevant
                  # to the type of item being searched.
                "exactMatchWithOperator": True or False, # 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. 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.
                "operatorName": "A 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.
              },
              "retrievalImportance": { # Indicates the search quality importance of the tokens within the
                  # field when used for retrieval.
                "importance": "A String", # Indicates the ranking importance given to property when it is matched
                    # during retrieval. Once set, the token importance of a property cannot be
                    # changed.
              },
            },
            "name": "A String", # The name of the property. Item indexing requests sent to the Indexing API
                # should set the property name
                # equal to this value. For example, if name is *subject_line*, then indexing
                # requests for document items with subject fields should set the
                # 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.
            "enumPropertyOptions": { # 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*.
              "possibleValues": [ # 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.
                { # 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
                    # 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.
                  "stringValue": "A String", # The string value of the EnumValuePair.
                      # The maximum length is 32 characters.
                  "integerValue": 42, # The integer value of the EnumValuePair which must be non-negative.
                      # Optional.
                },
              ],
              "operatorOptions": { # Used to provide a search operator for enum properties. This is # If set, describes how the enum should be used as a search operator.
                  # 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*.
                "operatorName": "A 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.
              },
              "orderedRanking": "A String", # 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
                  # isRepeatable
                  # is false.
            },
            "isReturnable": True or False, # 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.
            "objectPropertyOptions": { # Options for object properties.
              "subobjectProperties": [ # 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.
                # Object with schema name: PropertyDefinition
              ],
            },
            "timestampPropertyOptions": { # Options for timestamp properties.
              "operatorOptions": { # Used to provide a search operator for timestamp properties. This is # If set, describes how the timestamp should be used as a search operator.
                  # optional. Search operators let users restrict the query to specific fields
                  # relevant to the type of item being searched.
                "lessThanOperatorName": "A 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": "A 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.
                "operatorName": "A 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.
              },
            },
            "datePropertyOptions": { # Options for date properties.
              "operatorOptions": { # Optional. Provides a search operator for date properties. # If set, describes how the date should be used as a search operator.
                  # Search operators let users restrict the query to specific fields relevant
                  # to the type of item being searched.
                "lessThanOperatorName": "A 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.
                "operatorName": "A 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.
                "greaterThanOperatorName": "A 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.
              },
            },
            "isSortable": True or False, # 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 or user identifier. IsReturnable must be true to set this option.
                # Only supported for Boolean, Date, Double, Integer, and Timestamp
                # properties.
            "doublePropertyOptions": { # Options for double properties.
              "operatorOptions": { # Used to provide a search operator for double properties. This is # If set, describes how the double should be used as a search operator.
                  # optional. Search operators let users restrict the query to specific fields
                  # relevant to the type of item being searched.
                "operatorName": "A 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.
              },
            },
            "booleanPropertyOptions": { # Options for boolean properties.
              "operatorOptions": { # Used to provide a search operator for boolean properties. This is # If set, describes how the boolean should be used as a search operator.
                  # optional. Search operators let users restrict the query to specific fields
                  # relevant to the type of item being searched.
                "operatorName": "A 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.
              },
            },
            "isFacetable": True or False, # 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, and Text properties.
            "integerPropertyOptions": { # Options for integer properties.
              "orderedRanking": "A String", # Used to specify the ordered ranking for the integer. Can only be used if
                  # isRepeatable
                  # is false.
              "minimumValue": "A String", # The minimum value of the property. The minimum and maximum values for the
                  # property are used to rank results according to the
                  # 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.
              "operatorOptions": { # Used to provide a search operator for integer properties. This is # If set, describes how the integer should be used as a search operator.
                  # optional. Search operators let users restrict the query to specific fields
                  # relevant to the type of item being searched.
                "lessThanOperatorName": "A 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.
                "operatorName": "A 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.
                "greaterThanOperatorName": "A 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.
              },
              "maximumValue": "A String", # The maximum value of the property. The minimum and maximum values for the
                  # property are used to rank results according to the
                  # 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.
            },
            "isRepeatable": True or False, # 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.
            "displayOptions": { # The display options for a property. # Options that determine how the property is displayed in the Cloud Search
                # results page if it is specified to be displayed in the object's
                # display options
                # .
              "displayLabel": "A 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 32 characters.
            },
            "isSuggestable": True or False, # Indicates that the property can be used for generating query suggestions.
          },
        ],
        "name": "A String", # Name for the object, which then defines its type. Item indexing requests
            # should set the
            # objectType field
            # equal to this value. For example, if *name* is *Document*, then indexing
            # requests for items of type Document should set
            # objectType 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": { # The options for an object. # The optional object-specific options.
          "freshnessOptions": { # Indicates which freshness property to use when adjusting search ranking for # The freshness options for an object.
              # 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.
            "freshnessDuration": "A String", # The duration after which an object should be considered
                # stale. The default value is 180 days (in seconds).
            "freshnessProperty": "A 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
                # property definitions
                # and it must be a
                # timestamp type
                # or
                # date type.
                # Otherwise, the Indexing API uses
                # updateTime
                # 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.
          },
          "displayOptions": { # The display options for an object. # Options that determine how the object is displayed in the Cloud Search
              # results page.
            "metalines": [ # 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
                # is_returnable
                # to true. The maximum number of metalines is 3.
              { # A metaline is a list of properties that are displayed along with the search
                  # result to provide context.
                "properties": [ # The list of displayed properties for the metaline. The maximum number of
                    # properties is 5.
                  { # 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
                      # display label
                      # for that property if one is specified. If a display label is not specified,
                      # only the values is shown.
                    "propertyName": "A 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.
                  },
                ],
              },
            ],
            "objectDisplayLabel": "A 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 32 characters.
          },
        },
      },
    ],
    "operationIds": [ # 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.
      "A String",
    ],
  }
updateSchema(name=None, body=None, x__xgafv=None)
Updates the schema of a data source. This method does not perform
incremental updates to the schema. Instead, this method updates the schema
by overwriting the entire schema.

**Note:** This API requires an admin or service account to execute.

Args:
  name: string, Name of the data source to update Schema.  Format:
datasources/{source_id} (required)
  body: object, The request body.
    The object takes the form of:

{
    "validateOnly": True or False, # If true, the schema will be checked for validity,
        # but will not be registered with the data source, even if valid.
    "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Common debug options.
      "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field.
          # Otherwise, ignore this field.
    },
    "schema": { # The schema definition for a data source. # The new schema for the source.
      "objectDefinitions": [ # The list of top-level objects for the data source.
          # The maximum number of elements is 10.
        { # The definition for an object within a data source.
          "propertyDefinitions": [ # The property definitions for the object.
              # The maximum number of elements is 1000.
            { # The definition of a property within an object.
              "htmlPropertyOptions": { # Options for html properties.
                "retrievalImportance": { # Indicates the search quality importance of the tokens within the
                    # field when used for retrieval. Can only be set to DEFAULT or NONE.
                  "importance": "A String", # Indicates the ranking importance given to property when it is matched
                      # during retrieval. Once set, the token importance of a property cannot be
                      # changed.
                },
                "operatorOptions": { # Used to provide a search operator for html properties. This is optional. # If set, describes how the property should be used as a search operator.
                    # Search operators let users restrict the query to specific fields relevant
                    # to the type of item being searched.
                  "operatorName": "A 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.
                },
              },
              "isWildcardSearchable": True or False, # 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 is_wildcard_searchable.
              "textPropertyOptions": { # Options for text properties.
                "operatorOptions": { # Used to provide a search operator for text properties. This is optional. # If set, describes how the property should be used as a search operator.
                    # Search operators let users restrict the query to specific fields relevant
                    # to the type of item being searched.
                  "exactMatchWithOperator": True or False, # 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. 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.
                  "operatorName": "A 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.
                },
                "retrievalImportance": { # Indicates the search quality importance of the tokens within the
                    # field when used for retrieval.
                  "importance": "A String", # Indicates the ranking importance given to property when it is matched
                      # during retrieval. Once set, the token importance of a property cannot be
                      # changed.
                },
              },
              "name": "A String", # The name of the property. Item indexing requests sent to the Indexing API
                  # should set the property name
                  # equal to this value. For example, if name is *subject_line*, then indexing
                  # requests for document items with subject fields should set the
                  # 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.
              "enumPropertyOptions": { # 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*.
                "possibleValues": [ # 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.
                  { # 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
                      # 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.
                    "stringValue": "A String", # The string value of the EnumValuePair.
                        # The maximum length is 32 characters.
                    "integerValue": 42, # The integer value of the EnumValuePair which must be non-negative.
                        # Optional.
                  },
                ],
                "operatorOptions": { # Used to provide a search operator for enum properties. This is # If set, describes how the enum should be used as a search operator.
                    # 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*.
                  "operatorName": "A 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.
                },
                "orderedRanking": "A String", # 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
                    # isRepeatable
                    # is false.
              },
              "isReturnable": True or False, # 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.
              "objectPropertyOptions": { # Options for object properties.
                "subobjectProperties": [ # 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.
                  # Object with schema name: PropertyDefinition
                ],
              },
              "timestampPropertyOptions": { # Options for timestamp properties.
                "operatorOptions": { # Used to provide a search operator for timestamp properties. This is # If set, describes how the timestamp should be used as a search operator.
                    # optional. Search operators let users restrict the query to specific fields
                    # relevant to the type of item being searched.
                  "lessThanOperatorName": "A 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": "A 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.
                  "operatorName": "A 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.
                },
              },
              "datePropertyOptions": { # Options for date properties.
                "operatorOptions": { # Optional. Provides a search operator for date properties. # If set, describes how the date should be used as a search operator.
                    # Search operators let users restrict the query to specific fields relevant
                    # to the type of item being searched.
                  "lessThanOperatorName": "A 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.
                  "operatorName": "A 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.
                  "greaterThanOperatorName": "A 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.
                },
              },
              "isSortable": True or False, # 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 or user identifier. IsReturnable must be true to set this option.
                  # Only supported for Boolean, Date, Double, Integer, and Timestamp
                  # properties.
              "doublePropertyOptions": { # Options for double properties.
                "operatorOptions": { # Used to provide a search operator for double properties. This is # If set, describes how the double should be used as a search operator.
                    # optional. Search operators let users restrict the query to specific fields
                    # relevant to the type of item being searched.
                  "operatorName": "A 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.
                },
              },
              "booleanPropertyOptions": { # Options for boolean properties.
                "operatorOptions": { # Used to provide a search operator for boolean properties. This is # If set, describes how the boolean should be used as a search operator.
                    # optional. Search operators let users restrict the query to specific fields
                    # relevant to the type of item being searched.
                  "operatorName": "A 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.
                },
              },
              "isFacetable": True or False, # 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, and Text properties.
              "integerPropertyOptions": { # Options for integer properties.
                "orderedRanking": "A String", # Used to specify the ordered ranking for the integer. Can only be used if
                    # isRepeatable
                    # is false.
                "minimumValue": "A String", # The minimum value of the property. The minimum and maximum values for the
                    # property are used to rank results according to the
                    # 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.
                "operatorOptions": { # Used to provide a search operator for integer properties. This is # If set, describes how the integer should be used as a search operator.
                    # optional. Search operators let users restrict the query to specific fields
                    # relevant to the type of item being searched.
                  "lessThanOperatorName": "A 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.
                  "operatorName": "A 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.
                  "greaterThanOperatorName": "A 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.
                },
                "maximumValue": "A String", # The maximum value of the property. The minimum and maximum values for the
                    # property are used to rank results according to the
                    # 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.
              },
              "isRepeatable": True or False, # 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.
              "displayOptions": { # The display options for a property. # Options that determine how the property is displayed in the Cloud Search
                  # results page if it is specified to be displayed in the object's
                  # display options
                  # .
                "displayLabel": "A 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 32 characters.
              },
              "isSuggestable": True or False, # Indicates that the property can be used for generating query suggestions.
            },
          ],
          "name": "A String", # Name for the object, which then defines its type. Item indexing requests
              # should set the
              # objectType field
              # equal to this value. For example, if *name* is *Document*, then indexing
              # requests for items of type Document should set
              # objectType 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": { # The options for an object. # The optional object-specific options.
            "freshnessOptions": { # Indicates which freshness property to use when adjusting search ranking for # The freshness options for an object.
                # 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.
              "freshnessDuration": "A String", # The duration after which an object should be considered
                  # stale. The default value is 180 days (in seconds).
              "freshnessProperty": "A 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
                  # property definitions
                  # and it must be a
                  # timestamp type
                  # or
                  # date type.
                  # Otherwise, the Indexing API uses
                  # updateTime
                  # 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.
            },
            "displayOptions": { # The display options for an object. # Options that determine how the object is displayed in the Cloud Search
                # results page.
              "metalines": [ # 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
                  # is_returnable
                  # to true. The maximum number of metalines is 3.
                { # A metaline is a list of properties that are displayed along with the search
                    # result to provide context.
                  "properties": [ # The list of displayed properties for the metaline. The maximum number of
                      # properties is 5.
                    { # 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
                        # display label
                        # for that property if one is specified. If a display label is not specified,
                        # only the values is shown.
                      "propertyName": "A 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.
                    },
                  ],
                },
              ],
              "objectDisplayLabel": "A 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 32 characters.
            },
          },
        },
      ],
      "operationIds": [ # 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.
        "A String",
      ],
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
  }