<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="cloudsearch_v1.html">Cloud Search API</a> . <a href="cloudsearch_v1.query.html">query</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="cloudsearch_v1.query.sources.html">sources()</a></code>
</p>
<p class="firstline">Returns the sources Resource.</p>

<p class="toc_element">
  <code><a href="#search">search(body, x__xgafv=None)</a></code></p>
<p class="firstline">The Cloud Search Query API provides the search method, which returns</p>
<p class="toc_element">
  <code><a href="#suggest">suggest(body, x__xgafv=None)</a></code></p>
<p class="firstline">Provides suggestions for autocompleting the query.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="search">search(body, x__xgafv=None)</code>
  <pre>The Cloud Search Query API provides the search method, which returns
the most relevant results from a user query.  The results can come from
G Suite Apps, such as Gmail or Google Drive, or they can come from data
that you have indexed from a third party.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # The search API request.
    "facetOptions": [
      { # Specifies operators to return facet results for. There will be one
          # FacetResult for every source_name/object_type/operator_name combination.
        "sourceName": "A String", # Source name to facet on. Format: datasources/{source_id}
            # If empty, all data sources will be used.
        "numFacetBuckets": 42, # Maximum number of facet buckets that should be returned for this facet.
            # Defaults to 10.
            # Maximum value is 100.
        "operatorName": "A String", # Name of the operator chosen for faceting. @see
            # cloudsearch.SchemaPropertyOptions
        "objectType": "A String", # If object_type is set, only those objects of that type will be used to
            # compute facets. If empty, then all objects will be used to compute facets.
      },
    ],
    "pageSize": 42, # Maximum number of search results to return in one page.
        # Valid values are between 1 and 100, inclusive.
        # Default value is 10.
    "queryInterpretationOptions": { # Options to interpret user query. # Options to interpret the user query.
      "disableNlInterpretation": True or False, # Flag to disable natural language (NL) interpretation of queries. Default is
          # false, Set to true to disable natural language interpretation. NL
          # interpretation only applies to predefined datasources.
    },
    "sortOptions": { # The options for sorting the search results
      "operatorName": "A String", # Name of the operator corresponding to the field to sort on.
          # The corresponding property must be marked as
          # sortable.
      "sortOrder": "A String", # Ascending is the default sort order
    },
    "dataSourceRestrictions": [ # The sources to use for querying. If not specified, all data sources
        # from the current search application are used.
      { # Restriction on Datasource.
        "filterOptions": [ # Filter options restricting the results. If multiple filters
            # are present, they are grouped by object type before joining.
            # Filters with the same object type are joined conjunctively, then
            # the resulting expressions are joined disjunctively.
            #
            # The maximum number of elements is 20.
            #
            # NOTE: Suggest API supports only few filters at the moment:
            #   "objecttype", "type" and "mimetype".
            # For now, schema specific filters cannot be used to filter suggestions.
          { # Filter options to be applied on query.
            "filter": { # A generic way of expressing filters in a query, which supports two # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
                # approaches: <br/><br/>
                # **1. Setting a ValueFilter.** The name must match an operator_name defined in
                # the schema for your data source.
                # <br/>
                # **2. Setting a CompositeFilter.** The filters are evaluated
                # using the logical operator. The top-level operators can only be either an AND
                # or a NOT. AND can appear only at the top-most level. OR can appear only under
                # a top-level AND.
              "compositeFilter": {
                "subFilters": [ # Sub filters.
                  # Object with schema name: Filter
                ],
                "logicOperator": "A String", # The logic operator of the sub filter.
              },
              "valueFilter": {
                "operatorName": "A String", # The `operator_name` applied to the query, such as *price_greater_than*.
                    # The filter can work against both types of filters defined in the schema
                    # for your data source:
                    # <br/><br/>
                    # 1. `operator_name`, where the query filters results by the property
                    # that matches the value.
                    # <br/>
                    # 2. `greater_than_operator_name` or `less_than_operator_name` in your
                    # schema. The query filters the results for the property values that are
                    # greater than or less than  the supplied value in the query.
                "value": { # Definition of a single value with generic type. # The value to be compared with.
                  "timestampValue": "A String",
                  "doubleValue": 3.14,
                  "dateValue": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    "month": 42, # Month of date. Must be from 1 to 12.
                    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                    "year": 42, # Year of date. Must be from 1 to 9999.
                  },
                  "stringValue": "A String",
                  "booleanValue": True or False,
                  "integerValue": "A String",
                },
              },
            },
            "objectType": "A String", # If object_type is set, only objects of that type are returned. This should
                # correspond to the name of the object that was registered within the
                # definition of schema. The maximum length is 256 characters.
          },
        ],
        "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
          "predefinedSource": "A String", # Predefined content source for Google Apps.
          "name": "A String", # Source name for content indexed by the
              # Indexing API.
        },
      },
    ],
    "start": 42, # Starting index of the results.
    "query": "A String", # The raw query string.
        # See supported search operators in the [Cloud search
        # Cheat
        # Sheet](https://gsuite.google.com/learning-center/products/cloudsearch/cheat-sheet/)
    "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
      "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn".
          # For more information, see
          # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
          # For translations.
          #
          # When specified, the documents in search results are biased towards the
          # specified language.
          # Suggest API does not use this parameter. It autocompletes only based on
          # characters in the query.
      "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
        "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field.
            # Otherwise, ignore this field.
      },
      "searchApplicationId": "A String", # Id of the application created using SearchApplicationsService.
      "timeZone": "A String", # Current user's time zone id, such as "America/Los_Angeles" or
          # "Australia/Sydney". These IDs are defined by
          # [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)
          # project, and currently available in the file
          # [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml)
    },
  }

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

Returns:
  An object of the form:

    { # The search API response.
    "structuredResults": [ # Structured results for the user query. These results are not counted
        # against the page_size.
      { # Structured results that are returned as part of search request.
        "person": { # Object to represent a person. # Representation of a person
          "photos": [ # A person's read-only photo. A picture shown next to the person's name to
              # help others recognize the person in search results.
            { # A person's photo.
              "url": "A String", # The URL of the photo.
            },
          ],
          "emailAddresses": [ # The person's email addresses
            { # A person's email address.
              "emailAddress": "A String", # The email address.
            },
          ],
          "name": "A String", # The resource name of the person to provide information about.
              # See <a href="https://developers.google.com/people/api/rest/v1/people/get">
              # People.get</a> from Google People API.
          "personNames": [ # The person's name
            { # A person's name.
              "displayName": "A String", # The read-only display name formatted according to the locale specified by
                  # the viewer's account or the <code>Accept-Language</code> HTTP header.
            },
          ],
          "obfuscatedId": "A String", # Obfuscated ID of a person.
        },
      },
    ],
    "queryInterpretation": { # Query interpretation result for user query. Empty if query interpretation
        # is disabled.
      "interpretationType": "A String",
      "interpretedQuery": "A String", # The interpretation of the query used in search. For example, query "email
          # from john" will be interpreted as "from:john source:mail"
    },
    "debugInfo": { # Debugging information about the response. # Debugging information about the response.
      "formattedDebugInfo": "A String", # General debug info formatted for display.
    },
    "spellResults": [ # Suggested spelling for the query.
      {
        "suggestedQuery": "A String", # The suggested spelling of the query.
      },
    ],
    "results": [ # Results from a search query.
      { # Results containing indexed information for a document.
        "title": "A String", # Title of the search result.
        "debugInfo": { # Debugging information about the result. # Debugging information about this search result.
          "formattedDebugInfo": "A String", # General debug info formatted for display.
        },
        "snippet": { # Snippet of the search result, which summarizes the content of the resulting # The concatenation of all snippets (summaries) available for this result.
            # page.
          "snippet": "A String", # The snippet of the document.
              # The snippet of the document. May contain escaped HTML character that
              # should be unescaped prior to rendering.
          "matchRanges": [ # The matched ranges in the snippet.
            { # Matched range of a snippet [start, end).
              "start": 42, # Starting position of the match in the snippet.
              "end": 42, # End of the match in the snippet.
            },
          ],
        },
        "url": "A String", # The URL of the search result. The URL contains a Google redirect to the
            # actual item. This URL is signed and shouldn't be changed.
        "clusteredResults": [ # If source is clustered, provide list of clustered results. There will only
            # be one level of clustered results. If current source is not enabled for
            # clustering, this field will be empty.
          # Object with schema name: SearchResult
        ],
        "metadata": { # Metadata of a matched search result. # Metadata of the search result.
          "mimeType": "A String", # Mime type of the search result.
          "updateTime": "A String", # The last modified date for the object in the search result. If not
              # set in the item, the value returned here is empty. When
              # `updateTime` is used for calculating freshness and is not set, this
              # value defaults to 2 years from the current time.
          "fields": [ # Indexed fields in structured data, returned as a generic named property.
            { # A typed name-value pair for structured data.  The type of the value should
                # be the same as the registered type for the `name` property in the object
                # definition of `objectType`.
              "objectValues": { # List of object values.
                "values": [
                  # Object with schema name: StructuredDataObject
                ],
              },
              "dateValues": { # List of date values.
                "values": [
                  { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    "month": 42, # Month of date. Must be from 1 to 12.
                    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                    "year": 42, # Year of date. Must be from 1 to 9999.
                  },
                ],
              },
              "textValues": { # List of text values.
                "values": [ # The maximum allowable length for text values is 2048 characters.
                  "A String",
                ],
              },
              "enumValues": { # List of enum values.
                "values": [ # The maximum allowable length for string values is 32 characters.
                  "A String",
                ],
              },
              "integerValues": { # List of integer values.
                "values": [
                  "A String",
                ],
              },
              "doubleValues": { # List of double values.
                "values": [
                  3.14,
                ],
              },
              "htmlValues": { # List of html values.
                "values": [ # The maximum allowable length for html values is 2048 characters.
                  "A String",
                ],
              },
              "booleanValue": True or False,
              "timestampValues": { # List of timestamp values.
                "values": [
                  "A String",
                ],
              },
              "name": "A String", # The name of the property.  This name should correspond to the name of the
                  # property that was registered for object definition in the schema.
                  # The maximum allowable length for this property is 256 characters.
            },
          ],
          "source": { # Defines sources for the suggest/search APIs. # The named source for the result, such as Gmail.
            "predefinedSource": "A String", # Predefined content source for Google Apps.
            "name": "A String", # Source name for content indexed by the
                # Indexing API.
          },
          "owner": { # Object to represent a person. # Owner (usually creator) of the document or object of the search result.
            "photos": [ # A person's read-only photo. A picture shown next to the person's name to
                # help others recognize the person in search results.
              { # A person's photo.
                "url": "A String", # The URL of the photo.
              },
            ],
            "emailAddresses": [ # The person's email addresses
              { # A person's email address.
                "emailAddress": "A String", # The email address.
              },
            ],
            "name": "A String", # The resource name of the person to provide information about.
                # See <a href="https://developers.google.com/people/api/rest/v1/people/get">
                # People.get</a> from Google People API.
            "personNames": [ # The person's name
              { # A person's name.
                "displayName": "A String", # The read-only display name formatted according to the locale specified by
                    # the viewer's account or the <code>Accept-Language</code> HTTP header.
              },
            ],
            "obfuscatedId": "A String", # Obfuscated ID of a person.
          },
          "createTime": "A String", # The creation time for this document or object in the search result.
          "displayOptions": { # Options that specify how to display a structured data search result.
            "objectTypeLabel": "A String", # The display label for the object.
            "metalines": [ # The metalines content to be displayed with the result.
              { # The collection of fields that make up a displayed line
                "fields": [
                  { # Display Fields for Search Results
                    "property": { # A typed name-value pair for structured data.  The type of the value should # The name value pair for the property.
                        # be the same as the registered type for the `name` property in the object
                        # definition of `objectType`.
                      "objectValues": { # List of object values.
                        "values": [
                          # Object with schema name: StructuredDataObject
                        ],
                      },
                      "dateValues": { # List of date values.
                        "values": [
                          { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                            "month": 42, # Month of date. Must be from 1 to 12.
                            "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                            "year": 42, # Year of date. Must be from 1 to 9999.
                          },
                        ],
                      },
                      "textValues": { # List of text values.
                        "values": [ # The maximum allowable length for text values is 2048 characters.
                          "A String",
                        ],
                      },
                      "enumValues": { # List of enum values.
                        "values": [ # The maximum allowable length for string values is 32 characters.
                          "A String",
                        ],
                      },
                      "integerValues": { # List of integer values.
                        "values": [
                          "A String",
                        ],
                      },
                      "doubleValues": { # List of double values.
                        "values": [
                          3.14,
                        ],
                      },
                      "htmlValues": { # List of html values.
                        "values": [ # The maximum allowable length for html values is 2048 characters.
                          "A String",
                        ],
                      },
                      "booleanValue": True or False,
                      "timestampValues": { # List of timestamp values.
                        "values": [
                          "A String",
                        ],
                      },
                      "name": "A String", # The name of the property.  This name should correspond to the name of the
                          # property that was registered for object definition in the schema.
                          # The maximum allowable length for this property is 256 characters.
                    },
                    "operatorName": "A String", # The operator name of the property.
                    "label": "A String", # The display label for the property.
                  },
                ],
              },
            ],
          },
          "objectType": "A String", # Object type of the search result.
        },
      },
    ],
    "resultCounts": { # Result count information # Expanded result count information.
      "sourceResultCounts": [ # Result count information for each source with results.
        { # Per source result count information.
          "source": { # Defines sources for the suggest/search APIs. # The source the result count information is associated with.
            "predefinedSource": "A String", # Predefined content source for Google Apps.
            "name": "A String", # Source name for content indexed by the
                # Indexing API.
          },
          "resultCountExact": "A String", # The exact result count for this source.
          "hasMoreResults": True or False, # Whether there are more search results for this source.
          "resultCountEstimate": "A String", # The estimated result count for this source.
        },
      ],
    },
    "resultCountEstimate": "A String", # The estimated result count for this query.
    "resultCountExact": "A String", # The exact result count for this query.
    "facetResults": [ # Repeated facet results.
      { # Source specific facet response
        "sourceName": "A String", # Source name for which facet results are returned. Will not be empty.
        "buckets": [ # FacetBuckets for values in response containing at least a single result.
          { # A bucket in a facet is the basic unit of operation. A bucket can comprise
              # either a single value OR a contiguous range of values, depending on the
              # type of the field bucketed.
              # FacetBucket is currently used only for returning the response object.
            "count": 42, # Number of results that match the bucket value. Counts are only returned
                # for searches when count accuracy is ensured. Can be empty.
            "percentage": 42, # Percent of results that match the bucket value. This value is between
                # (0-100]. Percentages are returned for all searches, but are an estimate.
                # Because percentages are always returned, you should render percentages
                # instead of counts.
            "value": { # Definition of a single value with generic type.
              "timestampValue": "A String",
              "doubleValue": 3.14,
              "dateValue": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                "month": 42, # Month of date. Must be from 1 to 12.
                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                "year": 42, # Year of date. Must be from 1 to 9999.
              },
              "stringValue": "A String",
              "booleanValue": True or False,
              "integerValue": "A String",
            },
          },
        ],
        "operatorName": "A String", # Name of the operator chosen for faceting. @see
            # cloudsearch.SchemaPropertyOptions
        "objectType": "A String", # Object type for which facet results are returned. Can be empty.
      },
    ],
    "errorInfo": { # Error information about the response. # Error information about the response.
      "errorMessages": [
        { # Error message per source response.
          "source": { # Defines sources for the suggest/search APIs.
            "predefinedSource": "A String", # Predefined content source for Google Apps.
            "name": "A String", # Source name for content indexed by the
                # Indexing API.
          },
          "errorMessage": "A String",
        },
      ],
    },
    "hasMoreResults": True or False, # Whether there are more search results matching the query.
  }</pre>
</div>

<div class="method">
    <code class="details" id="suggest">suggest(body, x__xgafv=None)</code>
  <pre>Provides suggestions for autocompleting the query.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # Request of suggest API.
    "dataSourceRestrictions": [ # The sources to use for suggestions. If not specified, all data sources
        # from the current search application are used.
        # Suggestions are based on Gmail titles. Suggestions from third party sources
        # are not available.
      { # Restriction on Datasource.
        "filterOptions": [ # Filter options restricting the results. If multiple filters
            # are present, they are grouped by object type before joining.
            # Filters with the same object type are joined conjunctively, then
            # the resulting expressions are joined disjunctively.
            #
            # The maximum number of elements is 20.
            #
            # NOTE: Suggest API supports only few filters at the moment:
            #   "objecttype", "type" and "mimetype".
            # For now, schema specific filters cannot be used to filter suggestions.
          { # Filter options to be applied on query.
            "filter": { # A generic way of expressing filters in a query, which supports two # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
                # approaches: <br/><br/>
                # **1. Setting a ValueFilter.** The name must match an operator_name defined in
                # the schema for your data source.
                # <br/>
                # **2. Setting a CompositeFilter.** The filters are evaluated
                # using the logical operator. The top-level operators can only be either an AND
                # or a NOT. AND can appear only at the top-most level. OR can appear only under
                # a top-level AND.
              "compositeFilter": {
                "subFilters": [ # Sub filters.
                  # Object with schema name: Filter
                ],
                "logicOperator": "A String", # The logic operator of the sub filter.
              },
              "valueFilter": {
                "operatorName": "A String", # The `operator_name` applied to the query, such as *price_greater_than*.
                    # The filter can work against both types of filters defined in the schema
                    # for your data source:
                    # <br/><br/>
                    # 1. `operator_name`, where the query filters results by the property
                    # that matches the value.
                    # <br/>
                    # 2. `greater_than_operator_name` or `less_than_operator_name` in your
                    # schema. The query filters the results for the property values that are
                    # greater than or less than  the supplied value in the query.
                "value": { # Definition of a single value with generic type. # The value to be compared with.
                  "timestampValue": "A String",
                  "doubleValue": 3.14,
                  "dateValue": { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    "month": 42, # Month of date. Must be from 1 to 12.
                    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                    "year": 42, # Year of date. Must be from 1 to 9999.
                  },
                  "stringValue": "A String",
                  "booleanValue": True or False,
                  "integerValue": "A String",
                },
              },
            },
            "objectType": "A String", # If object_type is set, only objects of that type are returned. This should
                # correspond to the name of the object that was registered within the
                # definition of schema. The maximum length is 256 characters.
          },
        ],
        "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
          "predefinedSource": "A String", # Predefined content source for Google Apps.
          "name": "A String", # Source name for content indexed by the
              # Indexing API.
        },
      },
    ],
    "query": "A String", # Partial query for which autocomplete suggestions will be shown.
        # For example, if the query is "sea", then the server might return
        # "season", "search", "seagull" and so on.
    "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
      "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn".
          # For more information, see
          # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
          # For translations.
          #
          # When specified, the documents in search results are biased towards the
          # specified language.
          # Suggest API does not use this parameter. It autocompletes only based on
          # characters in the query.
      "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
        "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field.
            # Otherwise, ignore this field.
      },
      "searchApplicationId": "A String", # Id of the application created using SearchApplicationsService.
      "timeZone": "A String", # Current user's time zone id, such as "America/Los_Angeles" or
          # "Australia/Sydney". These IDs are defined by
          # [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/)
          # project, and currently available in the file
          # [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml)
    },
  }

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

Returns:
  An object of the form:

    { # Response of the suggest API.
    "suggestResults": [ # List of suggestions.
      { # One suggestion result.
        "source": { # Defines sources for the suggest/search APIs. # The source of the suggestion.
          "predefinedSource": "A String", # Predefined content source for Google Apps.
          "name": "A String", # Source name for content indexed by the
              # Indexing API.
        },
        "peopleSuggestion": { # This field contains information about the person being suggested. # This is present when the suggestion indicates a person. It
            # contains more information about the person - like their email ID,
            # name etc.
          "person": { # Object to represent a person. # Suggested person. All fields of the person object might not be populated.
            "photos": [ # A person's read-only photo. A picture shown next to the person's name to
                # help others recognize the person in search results.
              { # A person's photo.
                "url": "A String", # The URL of the photo.
              },
            ],
            "emailAddresses": [ # The person's email addresses
              { # A person's email address.
                "emailAddress": "A String", # The email address.
              },
            ],
            "name": "A String", # The resource name of the person to provide information about.
                # See <a href="https://developers.google.com/people/api/rest/v1/people/get">
                # People.get</a> from Google People API.
            "personNames": [ # The person's name
              { # A person's name.
                "displayName": "A String", # The read-only display name formatted according to the locale specified by
                    # the viewer's account or the <code>Accept-Language</code> HTTP header.
              },
            ],
            "obfuscatedId": "A String", # Obfuscated ID of a person.
          },
        },
        "suggestedQuery": "A String", # The suggested query that will be used for search, when the user
            # clicks on the suggestion
        "querySuggestion": { # This field does not contain anything as of now and is just used as an # This field will be present if the suggested query is a word/phrase
            # completion.
            # indicator that the suggest result was a phrase completion.
        },
      },
    ],
  }</pre>
</div>

</body></html>