{
  "rootUrl": "https://cloudsearch.googleapis.com/",
  "id": "cloudsearch:v1",
  "fullyEncodeReservedExpansion": true,
  "batchPath": "batch",
  "kind": "discovery#restDescription",
  "revision": "20260729",
  "parameters": {
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "$.xgafv": {
      "location": "query",
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "description": "V1 error format."
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "location": "query",
      "type": "string",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "description": "Data format for response."
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    }
  },
  "version_module": true,
  "servicePath": "",
  "discoveryVersion": "v1",
  "baseUrl": "https://cloudsearch.googleapis.com/",
  "protocol": "rest",
  "title": "Cloud Search API",
  "ownerName": "Google",
  "ownerDomain": "google.com",
  "canonicalName": "Cloud Search",
  "mtlsRootUrl": "https://cloudsearch.mtls.googleapis.com/",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud_search.settings": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.settings.query": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.indexing": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.stats": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.debug": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.settings.indexing": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.stats.indexing": {
          "description": "Index and serve your organization's data with Cloud Search"
        },
        "https://www.googleapis.com/auth/cloud_search.query": {
          "description": "Search your organization's data in the Cloud Search index"
        }
      }
    }
  },
  "schemas": {
    "Metadata": {
      "description": "Metadata of a matched search result.",
      "id": "Metadata",
      "type": "object",
      "properties": {
        "owner": {
          "description": "Owner (usually creator) of the document or object of the search result.",
          "$ref": "Person"
        },
        "fields": {
          "description": "Indexed fields in structured data, returned as a generic named property.",
          "type": "array",
          "items": {
            "$ref": "NamedProperty"
          }
        },
        "createTime": {
          "description": "The creation time for this document or object in the search result.",
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "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."
        },
        "source": {
          "$ref": "Source",
          "description": "The named source for the result, such as Gmail."
        },
        "displayOptions": {
          "description": "Options that specify how to display a structured data search result.",
          "$ref": "ResultDisplayMetadata"
        },
        "mimeType": {
          "description": "Mime type of the search result.",
          "type": "string"
        },
        "thumbnailUrl": {
          "description": "The thumbnail URL of the result.",
          "type": "string"
        },
        "objectType": {
          "description": "Object type of the search result.",
          "type": "string"
        }
      }
    },
    "ItemMetadata": {
      "id": "ItemMetadata",
      "type": "object",
      "properties": {
        "sourceRepositoryUrl": {
          "description": "Link to the source repository serving the data. Seach results apply this link to the title. Whitespace or special characters may cause Cloud Seach result links to trigger a redirect notice; to avoid this, encode the URL. The maximum length is 2048 characters.",
          "type": "string"
        },
        "title": {
          "description": "The title of the item. If given, this will be the displayed title of the Search result. The maximum length is 2048 characters.",
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The time when the item was created in the source repository."
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The time when the item was last modified in the source repository."
        },
        "containerName": {
          "description": "The name of the container for this item. Deletion of the container item leads to automatic deletion of this item. Note: ACLs are not inherited from a container item. To provide ACL inheritance for an item, use the inheritAclFrom field. The maximum length is 1536 characters.",
          "type": "string"
        },
        "contentLanguage": {
          "description": "The BCP-47 language code for the item, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. The maximum length is 32 characters.",
          "type": "string"
        },
        "searchQualityMetadata": {
          "$ref": "SearchQualityMetadata",
          "description": "Additional search quality metadata of the item"
        },
        "objectType": {
          "description": "The type of the item. This should correspond to the name of an object definition in the schema registered for the data source. For example, if the schema for the data source contains an object definition with name 'document', then item indexing requests for objects of that type should set objectType to 'document'. The maximum length is 256 characters.",
          "type": "string"
        },
        "keywords": {
          "description": "Additional keywords or phrases that should match the item. Used internally for user generated content. The maximum number of elements is 100. The maximum length is 8192 characters.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hash": {
          "description": "Hashing value provided by the API caller. This can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.",
          "type": "string"
        },
        "mimeType": {
          "description": "The original mime-type of ItemContent.content in the source repository. The maximum length is 256 characters.",
          "type": "string"
        },
        "contextAttributes": {
          "description": "A set of named attributes associated with the item. This can be used for influencing the ranking of the item based on the context in the request. The maximum number of elements is 10.",
          "type": "array",
          "items": {
            "$ref": "ContextAttribute"
          }
        },
        "interactions": {
          "type": "array",
          "items": {
            "$ref": "Interaction"
          },
          "description": "A list of interactions for the item. Interactions are used to improve Search quality, but are not exposed to end users. The maximum number of elements is 1000."
        }
      },
      "description": "Available metadata fields for the item."
    },
    "CheckAccessResponse": {
      "type": "object",
      "properties": {
        "hasAccess": {
          "description": "Returns true if principal has access. Returns false otherwise.",
          "type": "boolean"
        }
      },
      "id": "CheckAccessResponse"
    },
    "Principal": {
      "description": "Reference to a user, group, or domain.",
      "type": "object",
      "properties": {
        "gsuitePrincipal": {
          "description": "This principal is a Google Workspace user, group or domain.",
          "$ref": "GSuitePrincipal"
        },
        "userResourceName": {
          "description": "This principal is a user identified using an external identity. The name field must specify the user resource name with this format: identitysources/{source_id}/users/{ID}",
          "type": "string"
        },
        "groupResourceName": {
          "description": "This principal is a group identified using an external identity. The name field must specify the group resource name with this format: identitysources/{source_id}/groups/{ID}",
          "type": "string"
        }
      },
      "id": "Principal"
    },
    "EnterpriseTopazSidekickCommonDocument": {
      "id": "EnterpriseTopazSidekickCommonDocument",
      "type": "object",
      "properties": {
        "justification": {
          "$ref": "EnterpriseTopazSidekickCommonDocumentJustification",
          "description": "Justification on why the document is selected."
        },
        "provenance": {
          "description": "Document provenance.",
          "type": "string",
          "enumDescriptions": [
            "Unknown provenance.",
            "Calendar event description.",
            "Calendar event attachment.",
            "Mined (extracted by some offline/online analysis).",
            "Attachment created by enterprise assist."
          ],
          "enum": [
            "UNKNOWN_PROVENANCE",
            "CALENDAR_DESCRIPTION",
            "CALENDAR_ATTACHMENT",
            "MINED",
            "CALENDAR_ASSIST_ATTACHMENT"
          ],
          "deprecated": true
        },
        "debugInfo": {
          "description": "Information for debugging.",
          "$ref": "EnterpriseTopazSidekickCommonDebugInfo"
        },
        "accessType": {
          "description": "Access type, i.e., whether the user has access to the document or not.",
          "type": "string",
          "enumDescriptions": [
            "Unknown access type.",
            "Access allowed.",
            "Access not allowed."
          ],
          "enum": [
            "UNKNOWN_ACCESS",
            "ALLOWED",
            "NOT_ALLOWED"
          ]
        },
        "type": {
          "description": "Type of the document.",
          "type": "string",
          "enumDescriptions": [
            "If the type is unknown or not represented in this enum.",
            "Drive document types Writely, Word, etc.",
            "Presently, PowerPoint, etc.",
            "Trix, Excel, etc.",
            "File types for Gdrive objects are below. PDF.",
            "Image.",
            "Fall-back for unknown Gdrive types.",
            "Fusion table.",
            "Folder.",
            "Drawing.",
            "Video.",
            "Form.",
            "Link formats uncategorized URL links",
            "meaningful links that should be renderred specifically",
            "Link to goo.gl.",
            "Link to bit_ly.",
            "Link to Gmail.",
            "Mailto link.",
            "Videos Youtube videos.",
            "Live streams (e.g., liveplayer.googleplex.com)",
            "Other types. Google Groups.",
            "Google News.",
            "Google Sites.",
            "Google Hangout.",
            "Audio files.",
            "Microsoft-specific file types.",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "DOCUMENT",
            "PRESENTATION",
            "SPREADSHEET",
            "PDF",
            "IMAGE",
            "BINARY_BLOB",
            "FUSION_TABLE",
            "FOLDER",
            "DRAWING",
            "VIDEO",
            "FORM",
            "LINK_URL",
            "LINK_GO",
            "LINK_GOO_GL",
            "LINK_BIT_LY",
            "LINK_GMAIL",
            "LINK_MAILTO",
            "VIDEO_YOUTUBE",
            "VIDEO_LIVE",
            "GROUPS",
            "NEWS",
            "SITES",
            "HANGOUT",
            "AUDIO",
            "MS_WORD",
            "MS_POWERPOINT",
            "MS_EXCEL",
            "MS_OUTLOOK"
          ]
        },
        "mimeType": {
          "description": "MIME type",
          "type": "string"
        },
        "thumbnailUrl": {
          "description": "Thumbnail URL.",
          "type": "string"
        },
        "reason": {
          "deprecated": true,
          "description": "Justification of why this document is being returned.",
          "type": "string",
          "enumDescriptions": [
            "Unknown justification.",
            "Popular documents within collaborators.",
            "Popular documents within the domain.",
            "Documents being reviewed frequently by the current user .",
            "Documents being edited frequently by the current user .",
            "Documents updated since user's last visit.",
            "Documents that receive comments since user's last visit.",
            "Documents in the calendar event description.",
            "Documents in the calendar event attachments section.",
            "Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.",
            "Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.",
            "Documents that contains mentions of the user.",
            "Documents that are shared with the user."
          ],
          "enum": [
            "UNKNOWN",
            "TRENDING_IN_COLLABORATORS",
            "TRENDING_IN_DOMAIN",
            "FREQUENTLY_VIEWED",
            "FREQUENTLY_EDITED",
            "NEW_UPDATES",
            "NEW_COMMENTS",
            "EVENT_DESCRIPTION",
            "EVENT_ATTACHMENT",
            "EVENT_METADATA_ATTACHMENT",
            "MINED_DOCUMENT",
            "NEW_MENTIONS",
            "NEW_SHARES"
          ]
        },
        "genericUrl": {
          "description": "Generic Drive-based url in the format of drive.google.com/open to be used for deeplink",
          "type": "string"
        },
        "driveDocumentMetadata": {
          "$ref": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata",
          "description": "Drive document metadata."
        },
        "url": {
          "description": "Absolute URL of the document.",
          "type": "string"
        },
        "snippet": {
          "description": "A sampling of the text from the document.",
          "type": "string"
        },
        "title": {
          "description": "Title of the document.",
          "type": "string"
        },
        "documentId": {
          "description": "Document id.",
          "type": "string"
        }
      },
      "description": "Representation of a document. NEXT_TAG: 15"
    },
    "Schema": {
      "id": "Schema",
      "type": "object",
      "properties": {
        "objectDefinitions": {
          "description": "The list of top-level objects for the data source. The maximum number of elements is 10.",
          "type": "array",
          "items": {
            "$ref": "ObjectDefinition"
          }
        },
        "operationIds": {
          "description": "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.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "The schema definition for a data source."
    },
    "EnterpriseTopazSidekickCommonDebugInfo": {
      "id": "EnterpriseTopazSidekickCommonDebugInfo",
      "type": "object",
      "properties": {
        "message": {
          "description": "Debug message.",
          "type": "string"
        }
      },
      "description": "Container of debugging information in all object levels. Extend as needed."
    },
    "SuggestResponse": {
      "description": "Response of the suggest API.",
      "type": "object",
      "properties": {
        "suggestResults": {
          "description": "List of suggestions.",
          "type": "array",
          "items": {
            "$ref": "SuggestResult"
          }
        }
      },
      "id": "SuggestResponse"
    },
    "UpdateDataSourceRequest": {
      "type": "object",
      "properties": {
        "debugOptions": {
          "description": "Common debug options.",
          "$ref": "DebugOptions"
        },
        "source": {
          "$ref": "DataSource"
        },
        "updateMask": {
          "description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.",
          "type": "string",
          "format": "google-fieldmask"
        }
      },
      "id": "UpdateDataSourceRequest"
    },
    "GetCustomerQueryStatsResponse": {
      "id": "GetCustomerQueryStatsResponse",
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "CustomerQueryStats"
          }
        },
        "totalQueryCount": {
          "description": "Total successful query count (status code 200) for the given date range.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "DeleteQueueItemsRequest": {
      "type": "object",
      "properties": {
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        },
        "queue": {
          "description": "The name of a queue to delete items from.",
          "type": "string"
        },
        "debugOptions": {
          "description": "Common debug options.",
          "$ref": "DebugOptions"
        }
      },
      "id": "DeleteQueueItemsRequest"
    },
    "EnterpriseTopazSidekickMeetingNotesCardProto": {
      "description": "Information about the meeting notes created.",
      "id": "EnterpriseTopazSidekickMeetingNotesCardProto",
      "type": "object",
      "properties": {
        "event": {
          "$ref": "EnterpriseTopazSidekickAgendaEntry",
          "description": "The event to request meeting notes creation."
        },
        "title": {
          "description": "Title we want to show for meeting notes in the answer card",
          "type": "string"
        },
        "fileId": {
          "description": "Google Drive ID (a.k.a. resource ID) of the file.",
          "type": "string"
        },
        "url": {
          "description": "New URL.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickMeetingNotesCardError": {
      "description": "Errors in the creation of meeting notes.",
      "id": "EnterpriseTopazSidekickMeetingNotesCardError",
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "enumDescriptions": [
            "No reason (default value).",
            "The user is not an owner.",
            "Unknown reason."
          ],
          "enum": [
            "NONE",
            "NOT_OWNER",
            "UNKNOWN"
          ],
          "description": "The reason why create-meeting-notes failed."
        },
        "event": {
          "$ref": "EnterpriseTopazSidekickAgendaEntry",
          "description": "The event to request meeting notes creation"
        },
        "description": {
          "description": "The description of the reason why create-meeting-notes failed.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickShareMeetingDocsCardProto": {
      "type": "object",
      "properties": {
        "event": {
          "description": "Event.",
          "$ref": "EnterpriseTopazSidekickAgendaEntry"
        },
        "document": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonDocument"
          },
          "description": "Documents to share for the given meeting."
        }
      },
      "id": "EnterpriseTopazSidekickShareMeetingDocsCardProto",
      "description": "Share meeting docs card proto."
    },
    "PropertyDisplayOptions": {
      "description": "The display options for a property.",
      "type": "object",
      "properties": {
        "displayLabel": {
          "description": "The user friendly label for the property that is used if the property is specified to be displayed in ObjectDisplayOptions. If provided, the display label is shown in front of the property values when the property is part of the object display options. For example, if the property value is '1', the value by itself may not be useful context for the user. If the display name given was 'priority', then the user sees 'priority : 1' in the search results which provides clear context to search users. This is OPTIONAL; if not given, only the property values are displayed. The maximum length is 64 characters.",
          "type": "string"
        }
      },
      "id": "PropertyDisplayOptions"
    },
    "DoubleValues": {
      "id": "DoubleValues",
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "description": "List of double values."
    },
    "DataSourceIndexStats": {
      "description": "Aggregation of items by status code as of the specified date.",
      "type": "object",
      "properties": {
        "date": {
          "description": "The date for which index stats were calculated. If the date of request is not the current date then stats calculated on the next day are returned. Stats are calculated close to mid night in this case. If date of request is current date, then real time stats are returned.",
          "$ref": "Date"
        },
        "itemCountByStatus": {
          "description": "Number of items aggregrated by status code.",
          "type": "array",
          "items": {
            "$ref": "ItemCountByStatus"
          }
        }
      },
      "id": "DataSourceIndexStats"
    },
    "SearchApplicationQueryStats": {
      "id": "SearchApplicationQueryStats",
      "type": "object",
      "properties": {
        "date": {
          "description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned.",
          "$ref": "Date"
        },
        "queryCountByStatus": {
          "type": "array",
          "items": {
            "$ref": "QueryCountByStatus"
          }
        }
      },
      "description": "Search application level query stats per date"
    },
    "EnterpriseTopazSidekickPerson": {
      "type": "object",
      "properties": {
        "gaiaId": {
          "description": "Gaia id.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "photoUrl": {
          "description": "Absolute URL to the profile photo of the person.",
          "type": "string"
        },
        "obfuscatedGaiaId": {
          "description": "Obfuscated Gaia id.",
          "type": "string"
        },
        "name": {
          "description": "Name.",
          "type": "string"
        },
        "isGroup": {
          "description": "Whether the invitee is a group.",
          "type": "boolean"
        },
        "email": {
          "description": "Email.",
          "type": "string"
        },
        "attendingStatus": {
          "type": "string",
          "enumDescriptions": [
            "Awaiting for the user to set the status.",
            "Attending.",
            "Not attending.",
            "Tentatively attending."
          ],
          "enum": [
            "AWAITING",
            "YES",
            "NO",
            "MAYBE"
          ],
          "description": "Attendance status of the person when included in a meeting event."
        },
        "affinityLevel": {
          "description": "The level of affinity this person has with the requesting user.",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "LOW",
            "MEDIUM",
            "HIGH"
          ]
        }
      },
      "id": "EnterpriseTopazSidekickPerson",
      "description": "Person."
    },
    "EnterpriseTopazSidekickConflictingEventsCardProto": {
      "description": "Conflicting meetings card proto.",
      "id": "EnterpriseTopazSidekickConflictingEventsCardProto",
      "type": "object",
      "properties": {
        "conflictingEvent": {
          "description": "All the events that conflict with main_event.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickAgendaEntry"
          }
        },
        "mainEvent": {
          "$ref": "EnterpriseTopazSidekickAgendaEntry",
          "description": "The event identified as being the most important."
        }
      }
    },
    "ItemContent": {
      "id": "ItemContent",
      "type": "object",
      "properties": {
        "inlineContent": {
          "type": "string",
          "format": "byte",
          "description": "Content that is supplied inlined within the update method. The maximum length is 102400 bytes (100 KiB)."
        },
        "contentFormat": {
          "type": "string",
          "enumDescriptions": [
            "Invalid value.",
            "contentFormat is HTML.",
            "contentFormat is free text.",
            "contentFormat is raw bytes."
          ],
          "enum": [
            "UNSPECIFIED",
            "HTML",
            "TEXT",
            "RAW"
          ]
        },
        "contentDataRef": {
          "description": "Upload reference ID of a previously uploaded content via write method.",
          "$ref": "UploadItemRef"
        },
        "hash": {
          "description": "Hashing info calculated and provided by the API client for content. Can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.",
          "type": "string"
        }
      },
      "description": "Content of an item to be indexed and surfaced by Cloud Search. Only UTF-8 encoded strings are allowed as inlineContent. If the content is uploaded and not binary, it must be UTF-8 encoded."
    },
    "TimestampPropertyOptions": {
      "description": "The options for timestamp properties.",
      "id": "TimestampPropertyOptions",
      "type": "object",
      "properties": {
        "operatorOptions": {
          "$ref": "TimestampOperatorOptions",
          "description": "If set, describes how the timestamp should be used as a search operator."
        }
      }
    },
    "GetCustomerIndexStatsResponse": {
      "type": "object",
      "properties": {
        "averageIndexedItemCount": {
          "description": "Average item count for the given date range for which billing is done.",
          "type": "string",
          "format": "int64"
        },
        "stats": {
          "type": "array",
          "items": {
            "$ref": "CustomerIndexStats"
          },
          "description": "Summary of indexed item counts, one for each day in the requested range."
        }
      },
      "id": "GetCustomerIndexStatsResponse"
    },
    "Date": {
      "description": "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.",
      "id": "Date",
      "type": "object",
      "properties": {
        "month": {
          "type": "integer",
          "format": "int32",
          "description": "Month of date. Must be from 1 to 12."
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of month. Must be from 1 to 31 and valid for the year and month."
        },
        "year": {
          "type": "integer",
          "format": "int32",
          "description": "Year of date. Must be from 1 to 9999."
        }
      }
    },
    "ResponseDebugInfo": {
      "type": "object",
      "properties": {
        "formattedDebugInfo": {
          "description": "General debug info formatted for display.",
          "type": "string"
        }
      },
      "id": "ResponseDebugInfo",
      "description": "Debugging information about the response."
    },
    "Interaction": {
      "type": "object",
      "properties": {
        "interactionTime": {
          "description": "The time when the user acted on the item. If multiple actions of the same type exist for a single user, only the most recent action is recorded.",
          "type": "string",
          "format": "google-datetime"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Invalid value.",
            "This interaction indicates the user viewed the item.",
            "This interaction indicates the user edited the item."
          ],
          "enum": [
            "UNSPECIFIED",
            "VIEW",
            "EDIT"
          ]
        },
        "principal": {
          "description": "The user that acted on the item.",
          "$ref": "Principal"
        }
      },
      "id": "Interaction",
      "description": "Represents an interaction between a user and an item."
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "type": "object",
      "properties": {
        "operations": {
          "type": "array",
          "items": {
            "$ref": "Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations."
        }
      },
      "id": "ListOperationsResponse"
    },
    "CustomerIndexStats": {
      "description": "Aggregation of items by status code as of the specified date.",
      "type": "object",
      "properties": {
        "itemCountByStatus": {
          "description": "Number of items aggregrated by status code.",
          "type": "array",
          "items": {
            "$ref": "ItemCountByStatus"
          }
        },
        "date": {
          "$ref": "Date",
          "description": "The date for which statistics were calculated."
        }
      },
      "id": "CustomerIndexStats"
    },
    "EnterpriseTopazFrontendTeamsLink": {
      "id": "EnterpriseTopazFrontendTeamsLink",
      "type": "object",
      "properties": {
        "url": {
          "$ref": "SafeUrlProto"
        },
        "type": {
          "description": "The identifying link type",
          "type": "string"
        }
      }
    },
    "PeopleSuggestion": {
      "description": "This field contains information about the person being suggested.",
      "type": "object",
      "properties": {
        "person": {
          "description": "Suggested person. All fields of the person object might not be populated.",
          "$ref": "Person"
        }
      },
      "id": "PeopleSuggestion"
    },
    "PollItemsResponse": {
      "id": "PollItemsResponse",
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "Item"
          },
          "description": "Set of items from the queue available for connector to process. These items have the following subset of fields populated: version metadata.hash structured_data.hash content.hash payload status queue"
        }
      }
    },
    "IntegerOperatorOptions": {
      "type": "object",
      "properties": {
        "lessThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *priorityVal* is less than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        },
        "greaterThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *priorityVal* is greater than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        },
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *priorityVal* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        }
      },
      "id": "IntegerOperatorOptions",
      "description": "Used to provide a search operator for integer properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched."
    },
    "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry": {
      "type": "object",
      "properties": {
        "category": {
          "enumDeprecated": [
            false,
            true,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "Mention categories. The mention has been viewed by the user, but the user has not replied.",
            "The user has replied to the mention.",
            "The mention has not been viewed by the user.",
            "Share categories. Consists of documents that have been explicitly shared with the user. Document has been viewed.",
            "Document has not been viewed.",
            "Document has been edited."
          ],
          "enum": [
            "UNKNOWN_DOCUMENT",
            "ACTIONABLE",
            "VIEWED",
            "REPLIED",
            "MENTION_VIEWED",
            "MENTION_REPLIED",
            "MENTION_NOT_VIEWED",
            "SHARED_AND_VIEWED",
            "SHARED_NOT_VIEWED",
            "EDITED"
          ]
        },
        "rationale": {
          "description": "Reason this document was selected.",
          "type": "string"
        },
        "document": {
          "$ref": "EnterpriseTopazSidekickCommonDocument"
        }
      },
      "id": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry"
    },
    "SafeUrlProto": {
      "id": "SafeUrlProto",
      "type": "object",
      "properties": {
        "privateDoNotAccessOrElseSafeUrlWrappedValue": {
          "description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.",
          "type": "string"
        }
      },
      "description": "Message containing a string that is safe to use in URL contexts in DOM APIs and HTML documents, where the URL context does not refer to a resource that loads code."
    },
    "DataSource": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.",
          "type": "string"
        },
        "shortName": {
          "description": "A short name or alias for the source. This value will be used to match the 'source' operator. For example, if the short name is *\u003cvalue\u003e* then queries like *source:\u003cvalue\u003e* will only return results for this source. The value must be unique across all datasources. The value must only contain alphanumeric characters (a-zA-Z0-9). The value cannot start with 'google' and cannot be one of the following: mail, gmail, docs, drive, groups, sites, calendar, hangouts, gplus, keep, people, teams. Its maximum length is 32 characters.",
          "type": "string"
        },
        "disableServing": {
          "description": "Disable serving any search or assist results.",
          "type": "boolean"
        },
        "returnThumbnailUrls": {
          "description": "Can a user request to get thumbnail URI for Items indexed in this data source.",
          "type": "boolean"
        },
        "displayName": {
          "description": "Required. Display name of the datasource The maximum length is 300 characters.",
          "type": "string"
        },
        "disableModifications": {
          "description": "If true, sets the datasource to read-only mode. In read-only mode, the Indexing API rejects any requests to index or delete items in this source. Enabling read-only mode does not stop the processing of previously accepted data.",
          "type": "boolean"
        },
        "indexingServiceAccounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of service accounts that have indexing access."
        },
        "operationIds": {
          "description": "IDs of the Long Running Operations (LROs) currently running for this schema.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "itemsVisibility": {
          "description": "This field restricts visibility to items at the datasource level. Items within the datasource are restricted to the union of users and groups included in this field. Note that, this does not ensure access to a specific item, as users need to have ACL permissions on the contained items. This ensures a high level access on the entire datasource, and that the individual items are not shared outside this visibility.",
          "type": "array",
          "items": {
            "$ref": "GSuitePrincipal"
          }
        }
      },
      "id": "DataSource",
      "description": "Datasource is a logical namespace for items to be indexed. All items must belong to a datasource. This is the prerequisite before items can be indexed into Cloud Search. "
    },
    "PushItem": {
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of the push operation that defines the push behavior.",
          "type": "string",
          "enumDescriptions": [
            "Default UNSPECIFIED. Specifies that the push operation should not modify ItemStatus",
            "Indicates that the repository document has been modified or updated since the previous update call. This changes status to MODIFIED state for an existing item. If this is called on a non existing item, the status is changed to NEW_ITEM.",
            "Item in the repository has not been modified since the last update call. This push operation will set status to ACCEPTED state.",
            "Connector is facing a repository error regarding this item. Change status to REPOSITORY_ERROR state. Item is unreserved and rescheduled at a future time determined by exponential backoff.",
            "Call push with REQUEUE only for items that have been reserved. This action unreserves the item and resets its available time to the wall clock time."
          ],
          "enum": [
            "UNSPECIFIED",
            "MODIFIED",
            "NOT_MODIFIED",
            "REPOSITORY_ERROR",
            "REQUEUE"
          ]
        },
        "payload": {
          "type": "string",
          "format": "byte",
          "description": "Provides additional document state information for the connector, such as an alternate repository ID and other metadata. The maximum length is 8192 bytes."
        },
        "metadataHash": {
          "description": "The metadata hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.",
          "type": "string"
        },
        "structuredDataHash": {
          "description": "Structured data hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.",
          "type": "string"
        },
        "contentHash": {
          "description": "Content hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.",
          "type": "string"
        },
        "queue": {
          "description": "Queue to which this item belongs. The `default` queue is chosen if this field is not specified. The maximum length is 512 characters.",
          "type": "string"
        },
        "repositoryError": {
          "$ref": "RepositoryError",
          "description": "Populate this field to store Connector or repository error details. This information is displayed in the Admin Console. This field may only be populated when the Type is REPOSITORY_ERROR."
        }
      },
      "id": "PushItem",
      "description": "Represents an item to be pushed to the indexing queue."
    },
    "SuggestRequest": {
      "type": "object",
      "properties": {
        "dataSourceRestrictions": {
          "description": "The sources to use for suggestions. If not specified, the data sources are taken from the current search application. NOTE: Suggestions are only supported for the following sources: * Third-party data sources * PredefinedSource.PERSON * PredefinedSource.GOOGLE_DRIVE",
          "type": "array",
          "items": {
            "$ref": "DataSourceRestriction"
          }
        },
        "requestOptions": {
          "description": "Request options, such as the search application and user timezone.",
          "$ref": "RequestOptions"
        },
        "query": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "SuggestRequest",
      "description": "Request of suggest API."
    },
    "ListSearchApplicationsResponse": {
      "type": "object",
      "properties": {
        "searchApplications": {
          "type": "array",
          "items": {
            "$ref": "SearchApplication"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      },
      "id": "ListSearchApplicationsResponse"
    },
    "EnterpriseTopazSidekickGetAndKeepAheadCardProto": {
      "description": "Get and keep ahead card",
      "id": "EnterpriseTopazSidekickGetAndKeepAheadCardProto",
      "type": "object",
      "properties": {
        "declinedEvents": {
          "$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents"
        },
        "mentionedDocuments": {
          "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList"
        },
        "sharedDocuments": {
          "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList"
        }
      }
    },
    "TimestampValues": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "google-datetime"
          }
        }
      },
      "id": "TimestampValues",
      "description": "List of timestamp values."
    },
    "NamedProperty": {
      "description": "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`.",
      "type": "object",
      "properties": {
        "textValues": {
          "$ref": "TextValues"
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "integerValues": {
          "$ref": "IntegerValues"
        },
        "timestampValues": {
          "$ref": "TimestampValues"
        },
        "enumValues": {
          "$ref": "EnumValues"
        },
        "htmlValues": {
          "$ref": "HtmlValues"
        },
        "objectValues": {
          "$ref": "ObjectValues"
        },
        "doubleValues": {
          "$ref": "DoubleValues"
        },
        "dateValues": {
          "$ref": "DateValues"
        },
        "booleanValue": {
          "type": "boolean"
        }
      },
      "id": "NamedProperty"
    },
    "Context": {
      "id": "Context",
      "type": "object",
      "properties": {
        "startDayOffsetSec": {
          "description": "[Optional] Start time in seconds, within a day, when the card should be shown if it's within [start_date_sec, end_date_sec]. If 0, the card will be shown from 12:00am on.",
          "type": "string",
          "format": "int64"
        },
        "app": {
          "description": "[Optional] App where the card should be shown. If missing, the card will be shown in TOPAZ.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "",
              "",
              ""
            ],
            "enum": [
              "UNKNOWN_APP",
              "TOPAZ",
              "MOMA"
            ]
          }
        },
        "endDayOffsetSec": {
          "type": "string",
          "format": "int64",
          "description": "[Optional] End time in seconds, within a day, when the card should stop being shown if it's within [start_date_sec, end_date_sec]. If missing, this is set to 86400 (24 hours x 3600 sec/hour), i.e., midnight next day."
        },
        "startDateSec": {
          "type": "string",
          "format": "int64",
          "description": "[Optional] Date (in seconds since epoch) when the card should start being shown. If missing, start_date_sec will be Jan 1st, 1970 UTC."
        },
        "endDateSec": {
          "description": "[Optional] Date (in seconds since epoch) when the card should stop being shown. If missing, end_date_sec will be set to Jan 1st, 2100.",
          "type": "string",
          "format": "int64"
        },
        "dayOfWeek": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          },
          "description": "[Optional] Day of week when the card should be shown, where 0 is Monday."
        },
        "query": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "[Required only for Answer and RHS cards - will be ignored for Homepage] cards. It's the exact case-insensitive queries that will trigger the Answer or RHS card."
        },
        "type": {
          "description": "[Required] Type of the card (homepage, Answer or RHS).",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "",
              "",
              "",
              ""
            ],
            "enum": [
              "UNKNOWN_CARD_TYPE",
              "HOMEPAGE_CARD",
              "ANSWER_CARD",
              "RHS_CARD"
            ]
          }
        },
        "surface": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "",
              "",
              "",
              "",
              "Any mobile device.",
              ""
            ],
            "enum": [
              "UNKNOWN_SURFACE",
              "DESKTOP",
              "ANDROID",
              "IOS",
              "MOBILE",
              "ANY"
            ]
          },
          "description": "[Optional] Surface where the card should be shown in. If missing, the card will be shown in any surface."
        },
        "locale": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "[Optional] The locales for which the card should be triggered (e.g., en_US and en_CA). If missing, the card is going to show to clients regardless of their locale."
        },
        "location": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "[Optional] Text-free locations where the card should be shown. This is expected to match the user's location in focus. If no location is specified, the card will be shown for any location."
        }
      }
    },
    "QuerySuggestion": {
      "type": "object",
      "properties": {
        "sourceCorpus": {
          "description": "Source corpus of the suggestion.",
          "type": "string",
          "enumDescriptions": [
            "Source corpus is unspecified.",
            "Source corpus is Gmail.",
            "Source corpus is Drive.",
            "Source corpus is Chat.",
            "Source corpus is Calendar."
          ],
          "enum": [
            "SOURCE_CORPUS_UNSPECIFIED",
            "GMAIL",
            "DRIVE",
            "CHAT",
            "CALENDAR"
          ]
        },
        "lastQueryTime": {
          "description": "Last query time of the suggestion for query history suggestions.",
          "type": "string",
          "format": "google-datetime"
        }
      },
      "id": "QuerySuggestion"
    },
    "EnterpriseTopazSidekickGap": {
      "id": "EnterpriseTopazSidekickGap",
      "type": "object",
      "properties": {
        "endTimeMs": {
          "type": "string",
          "format": "uint64"
        },
        "displayRemainingTime": {
          "description": "Localized time string in the format: 1 hour 15 minutes",
          "type": "string"
        },
        "startTime": {
          "description": "Localized time string in the format:(Locale CZ) 8:30 odp.",
          "type": "string"
        },
        "endTime": {
          "description": "Localized time string in the format:(Locale CZ) 8:30 odp.",
          "type": "string"
        },
        "startTimeMs": {
          "type": "string",
          "format": "uint64"
        },
        "remainingTime": {
          "type": "string",
          "format": "google-duration"
        }
      }
    },
    "DriveFollowUpRestrict": {
      "id": "DriveFollowUpRestrict",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "UNSPECIFIED",
            "FOLLOWUP_SUGGESTIONS",
            "FOLLOWUP_ACTION_ITEMS"
          ]
        }
      },
      "description": "Drive follow-up search restricts (e.g. \"followup:suggestions\")."
    },
    "EnterpriseTopazSidekickPersonProfileCard": {
      "id": "EnterpriseTopazSidekickPersonProfileCard",
      "type": "object",
      "properties": {
        "relatedPeople": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople"
          }
        },
        "subject": {
          "description": "The subject of the card.",
          "$ref": "EnterpriseTopazSidekickCommonPerson"
        }
      }
    },
    "GetSearchApplicationSessionStatsResponse": {
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "SearchApplicationSessionStats"
          }
        }
      },
      "id": "GetSearchApplicationSessionStatsResponse"
    },
    "EnterpriseTopazSidekickNlpMetadata": {
      "description": "Metadata about the NLP interpretation of the query.",
      "type": "object",
      "properties": {
        "confidence": {
          "description": "Confidence of the interpretation that generated this card.",
          "type": "number",
          "format": "float"
        }
      },
      "id": "EnterpriseTopazSidekickNlpMetadata"
    },
    "EnterpriseTopazSidekickDocumentGroup": {
      "description": "Represents a mapping between a document type and its corresponding documents. Use for Work in Progress card in v1 homepage.",
      "type": "object",
      "properties": {
        "groupType": {
          "deprecated": true,
          "description": "Document group type",
          "type": "string",
          "enumDescriptions": [
            "Unknown type.",
            "A mix of all the document types."
          ],
          "enum": [
            "UNKNOWN_TYPE",
            "ALL"
          ]
        },
        "personalizedDocument": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonDocument"
          },
          "description": "The list of corresponding documents."
        }
      },
      "id": "EnterpriseTopazSidekickDocumentGroup"
    },
    "SearchQualityMetadata": {
      "description": "Additional search quality metadata of the item.",
      "type": "object",
      "properties": {
        "quality": {
          "description": "An indication of the quality of the item, used to influence search quality. Value should be between 0.0 (lowest quality) and 1.0 (highest quality). The default value is 0.0.",
          "type": "number",
          "format": "double"
        }
      },
      "id": "SearchQualityMetadata"
    },
    "CompositeFilter": {
      "id": "CompositeFilter",
      "type": "object",
      "properties": {
        "subFilters": {
          "description": "Sub filters.",
          "type": "array",
          "items": {
            "$ref": "Filter"
          }
        },
        "logicOperator": {
          "description": "The logic operator of the sub filter.",
          "type": "string",
          "enumDescriptions": [
            "Logical operators, which can only be applied to sub filters.",
            "",
            "NOT can only be applied on a single sub filter."
          ],
          "enum": [
            "AND",
            "OR",
            "NOT"
          ]
        }
      }
    },
    "UnreserveItemsRequest": {
      "id": "UnreserveItemsRequest",
      "type": "object",
      "properties": {
        "queue": {
          "description": "The name of a queue to unreserve items from.",
          "type": "string"
        },
        "debugOptions": {
          "description": "Common debug options.",
          "$ref": "DebugOptions"
        },
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        }
      }
    },
    "SourceConfig": {
      "description": "Configurations for a source while processing a Search or Suggest request.",
      "id": "SourceConfig",
      "type": "object",
      "properties": {
        "scoringConfig": {
          "$ref": "SourceScoringConfig",
          "description": "The scoring configuration for the source."
        },
        "source": {
          "description": "The source for which this configuration is to be used.",
          "$ref": "Source"
        },
        "crowdingConfig": {
          "description": "The crowding configuration for the source.",
          "$ref": "SourceCrowdingConfig"
        }
      }
    },
    "QueryCountByStatus": {
      "id": "QueryCountByStatus",
      "type": "object",
      "properties": {
        "statusCode": {
          "type": "integer",
          "format": "int32",
          "description": "This represents the http status code."
        },
        "count": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "EnterpriseTopazSidekickAssistCardProto": {
      "description": "Wrapper proto for the Assist cards.",
      "id": "EnterpriseTopazSidekickAssistCardProto",
      "type": "object",
      "properties": {
        "findMeetingTimeCard": {
          "$ref": "EnterpriseTopazSidekickFindMeetingTimeCardProto",
          "description": "Find meeting time card."
        },
        "peopleDisambiguationCard": {
          "description": "The people disambiguation card.",
          "$ref": "EnterpriseTopazSidekickPeopleDisambiguationCard"
        },
        "personalizedDocsCard": {
          "$ref": "EnterpriseTopazSidekickPersonalizedDocsCardProto",
          "description": "Card with recommended documents for the user.",
          "deprecated": true
        },
        "shareMeetingDocsCard": {
          "$ref": "EnterpriseTopazSidekickShareMeetingDocsCardProto",
          "description": "Sahre meeting docs card.",
          "deprecated": true
        },
        "sharedDocuments": {
          "deprecated": true,
          "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList",
          "description": "Shared documents."
        },
        "thirdPartyAnswerCard": {
          "$ref": "ThirdPartyGenericCard",
          "description": "Third party answer cards."
        },
        "cardMetadata": {
          "description": "Card metadata such as chronology and render mode of the card.",
          "$ref": "EnterpriseTopazSidekickCardMetadata"
        },
        "suggestedQueryAnswerCard": {
          "$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard",
          "description": "Answer card for what natural language queries the user can ask."
        },
        "personProfileCard": {
          "description": "Full profile card.",
          "$ref": "EnterpriseTopazSidekickPersonProfileCard"
        },
        "personAnswerCard": {
          "description": "Answer card that represents a single person.",
          "$ref": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard"
        },
        "workInProgressCardProto": {
          "description": "Work In Progress card.",
          "$ref": "EnterpriseTopazSidekickRecentDocumentsCardProto"
        },
        "agendaGroupCardProto": {
          "$ref": "EnterpriseTopazSidekickAgendaGroupCardProto",
          "description": "Agenda group card."
        },
        "genericAnswerCard": {
          "$ref": "EnterpriseTopazSidekickGenericAnswerCard",
          "description": "Generic answer card."
        },
        "cardType": {
          "enumDeprecated": [
            false,
            true,
            true,
            true,
            true,
            true,
            true,
            false,
            true,
            true,
            true,
            true,
            true,
            true,
            true,
            true,
            true,
            true,
            false,
            false,
            false,
            false,
            false,
            true,
            true,
            false,
            false,
            false,
            false,
            false,
            false
          ],
          "description": "Card type.",
          "type": "string",
          "enumDescriptions": [
            "The default type, an unknown card type.",
            "The user's agenda for the day.",
            "Changelists.",
            "Any group of meetings for the day that are overlapping.",
            "Create notes for a meeting specified in the request.",
            "Create notes for meeting query.",
            "News about your SFDC customers.",
            "Find a time for two people to meet.",
            "The user's next non-declined meeting.",
            "Important documents for you since you have viewed them in the last month and there's some action going on.",
            "Documents that are trending in your company. A TRENDING_DOCS card can be of two types: TRENDING_IN_COLLABORATORS (i.e., Stay in the Loop) and TRENDING_IN_DOMAIN (i.e., Popular Content). Use DOMAIN_TRENDING_DOCS/TEAM_TRENDING_DOCS instead.",
            "An upcoming trip with all trip information along with calendar events in the destination timezone.",
            "The Morning/Evening Summary Card for the next working day.",
            "A meeting. When requesting meetings, the service will return a MEETING card for each meeting the user has in his agenda.",
            "All cards related to the homepage (agenda, conflicting-meetings, summary, etc...). This type should no longer be used. Use HOMEPAGE_V3 instead.",
            "A card to with specifics to share meeting documents with all attendees.",
            "Represents a set of users that the requesting user has low affinity with.",
            "All cards related to the homepage-v3 (agenda-group, WIP, etc...)",
            "A group of agenda-events (meeting, conflicts)",
            "The documents that you were recently working on.",
            "(v3) The \"get and keep ahead\" card for today and tomorrow",
            "Generic answer card.",
            "Third party answer card.",
            "Documents that are trending in your company/domain (i.e., Popular Content).",
            "Documents that are trending in your team (i.e., Stay in the Loop).",
            "Documents that match the user's query (e.g. sheets shared with me).",
            "A help card that provides examples of queries the user can ask.",
            "Answer card for a single person (e.g. what is x's phone number).",
            "Answer card for a list of people related to the person that is the subject of the query (e.g. who reports to x).",
            "Knowledge card for a single person and their related people.",
            "People Search promotion card."
          ],
          "enum": [
            "UNKNOWN_TYPE",
            "AGENDA",
            "CHANGELISTS",
            "CONFLICTING_MEETINGS",
            "CREATE_NOTES_FOR_MEETING",
            "CREATE_NOTES_FOR_MEETING_REQUEST",
            "CUSTOMER_NEWS",
            "FIND_MEETING_TIME",
            "NEXT_MEETING",
            "PERSONALIZED_DOCS",
            "TRENDING_DOCS",
            "UPCOMING_TRIP",
            "SUMMARY",
            "MEETINGS",
            "HOMEPAGE",
            "SHARE_MEETING_DOCS",
            "DISCOVER_PEOPLE",
            "HOMEPAGE_V3",
            "AGENDA_GROUP",
            "WORK_IN_PROGRESS",
            "GET_AND_KEEP_AHEAD",
            "GENERIC_ANSWER_CARD",
            "THIRD_PARTY_ANSWER_CARD",
            "DOMAIN_TRENDING_DOCS",
            "TEAM_TRENDING_DOCS",
            "DOCUMENT_LIST_ANSWER_CARD",
            "SUGGESTED_QUERY_ANSWER_CARD",
            "PERSON_ANSWER_CARD",
            "RELATED_PEOPLE_ANSWER_CARD",
            "PERSON_KNOWLEDGE_CARD",
            "PEOPLE_SEARCH_PROMOTION_CARD"
          ]
        },
        "meeting": {
          "description": "Meeting card.",
          "$ref": "EnterpriseTopazSidekickAgendaEntry",
          "deprecated": true
        },
        "getAndKeepAheadCard": {
          "description": "Get and keep ahead card.",
          "$ref": "EnterpriseTopazSidekickGetAndKeepAheadCardProto"
        },
        "documentListCard": {
          "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList",
          "description": "Answer card for documents that are applicable to the current query."
        },
        "relatedPeopleAnswerCard": {
          "$ref": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard",
          "description": "Answer card that represents a list of people related to a person."
        },
        "meetingNotesCard": {
          "description": "Meeting notes card.",
          "$ref": "EnterpriseTopazSidekickMeetingNotesCardProto"
        },
        "documentsWithMentions": {
          "deprecated": true,
          "description": "Documents with mentions.",
          "$ref": "EnterpriseTopazSidekickDocumentPerCategoryList"
        },
        "meetingNotesCardRequest": {
          "$ref": "EnterpriseTopazSidekickMeetingNotesCardRequest",
          "description": "Request for meeting notes card."
        },
        "peoplePromotionCard": {
          "$ref": "PeoplePromotionCard",
          "description": "People Search promotion card."
        },
        "conflictingMeetingsCard": {
          "description": "Conflicting events card.",
          "$ref": "EnterpriseTopazSidekickConflictingEventsCardProto",
          "deprecated": true
        }
      }
    },
    "ContextAttribute": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the attribute. It should not be empty. The maximum length is 32 characters. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The name will be normalized (lower-cased) before being matched.",
          "type": "string"
        },
        "values": {
          "description": "Text values of the attribute. The maximum number of elements is 10. The maximum length of an element in the array is 32 characters. The value will be normalized (lower-cased) before being matched.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "id": "ContextAttribute",
      "description": "A named attribute associated with an item which can be used for influencing the ranking of the item based on the context in the request."
    },
    "ScoringConfig": {
      "description": "Scoring configurations for a source while processing a Search or Suggest request.",
      "id": "ScoringConfig",
      "type": "object",
      "properties": {
        "disableFreshness": {
          "description": "Whether to use freshness as a ranking signal. By default, freshness is used as a ranking signal. Note that this setting is not available in the Admin UI.",
          "type": "boolean"
        },
        "disablePersonalization": {
          "description": "Whether to personalize the results. By default, personal signals will be used to boost results.",
          "type": "boolean"
        }
      }
    },
    "EnterpriseTopazSidekickAnswerAnswerList": {
      "description": "A list of answers represented as free text.",
      "id": "EnterpriseTopazSidekickAnswerAnswerList",
      "type": "object",
      "properties": {
        "type": {
          "description": "Answer type.",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "PERSON_ADDRESS",
            "PERSON_BIRTHDAY",
            "PERSON_DEPARTMENT",
            "PERSON_DESK_LOCATION",
            "PERSON_EMAIL",
            "PERSON_JOB_TITLE",
            "PERSON_PHONE"
          ]
        },
        "labeledAnswer": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer"
          },
          "description": "Answers that have a corresponding label."
        }
      }
    },
    "ProcessingError": {
      "type": "object",
      "properties": {
        "errorMessage": {
          "description": "The description of the error.",
          "type": "string"
        },
        "code": {
          "description": "Error code indicating the nature of the error.",
          "type": "string",
          "enumDescriptions": [
            "Input only value. Use this value in Items.",
            "Item's ACL, metadata, or content is malformed or in invalid state. FieldViolations contains more details on where the problem is.",
            "Countent format is unsupported.",
            "Items with incomplete ACL information due to inheriting other items with broken ACL or having groups with unmapped descendants.",
            "ACL inheritance graph formed a cycle."
          ],
          "enum": [
            "PROCESSING_ERROR_CODE_UNSPECIFIED",
            "MALFORMED_REQUEST",
            "UNSUPPORTED_CONTENT_FORMAT",
            "INDIRECT_BROKEN_ACL",
            "ACL_CYCLE"
          ]
        },
        "fieldViolations": {
          "description": "In case the item fields are invalid, this field contains the details about the validation errors.",
          "type": "array",
          "items": {
            "$ref": "FieldViolation"
          }
        }
      },
      "id": "ProcessingError"
    },
    "QueryInterpretation": {
      "type": "object",
      "properties": {
        "interpretedQueryActualResultCount": {
          "type": "integer",
          "format": "int32",
          "description": "The actual number of results returned by the interpreted query."
        },
        "interpretedQueryEstimatedResultCount": {
          "description": "The estimated number of results returned by the interpreted query.",
          "type": "string",
          "format": "int64"
        },
        "interpretationType": {
          "type": "string",
          "enumDescriptions": [
            "Neither the natural language interpretation, nor a broader version of the query is used to fetch the search results.",
            "The results from original query are blended with other results. The reason for blending these other results with the results from original query is populated in the 'Reason' field below.",
            "The results from original query are replaced. The reason for replacing the results from original query is populated in the 'Reason' field below."
          ],
          "enum": [
            "NONE",
            "BLEND",
            "REPLACE"
          ]
        },
        "reason": {
          "description": "The reason for interpretation of the query. This field will not be UNSPECIFIED if the interpretation type is not NONE.",
          "type": "string",
          "enumDescriptions": [
            "",
            "Natural language interpretation of the query is used to fetch the search results.",
            "Query and document terms similarity is used to selectively broaden the query to retrieve additional search results since enough results were not found for the user query. Interpreted query will be empty for this case."
          ],
          "enum": [
            "UNSPECIFIED",
            "QUERY_HAS_NATURAL_LANGUAGE_INTENT",
            "NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY"
          ]
        },
        "interpretedQuery": {
          "description": "The interpretation of the query used in search. For example, queries with natural language intent like \"email from john\" will be interpreted as \"from:john source:mail\". This field will not be filled when the reason is NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.",
          "type": "string"
        }
      },
      "id": "QueryInterpretation"
    },
    "DateOperatorOptions": {
      "type": "object",
      "properties": {
        "lessThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *closeDate* is earlier than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        },
        "greaterThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *closeDate* is later than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        },
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the *closeDate* property matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        }
      },
      "id": "DateOperatorOptions",
      "description": "Optional. Provides a search operator for date properties. Search operators let users restrict the query to specific fields relevant to the type of item being searched."
    },
    "RestrictItem": {
      "id": "RestrictItem",
      "type": "object",
      "properties": {
        "driveMimeTypeRestrict": {
          "description": "Drive Types.",
          "$ref": "DriveMimeTypeRestrict"
        },
        "searchOperator": {
          "description": "The search restrict (e.g. \"after:2017-09-11 before:2017-09-12\").",
          "type": "string"
        },
        "driveLocationRestrict": {
          "$ref": "DriveLocationRestrict"
        },
        "driveTimeSpanRestrict": {
          "$ref": "DriveTimeSpanRestrict"
        },
        "driveFollowUpRestrict": {
          "$ref": "DriveFollowUpRestrict"
        }
      },
      "description": "Information relevant only to a restrict entry. NextId: 12"
    },
    "ListItemNamesForUnmappedIdentityResponse": {
      "id": "ListItemNamesForUnmappedIdentityResponse",
      "type": "object",
      "properties": {
        "itemNames": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      }
    },
    "Action": {
      "id": "Action",
      "type": "object",
      "properties": {
        "url": {
          "description": "[Optional] Url of the action.",
          "type": "string"
        },
        "title": {
          "description": "[Required] Title of the action.",
          "type": "string"
        }
      }
    },
    "ResultDisplayMetadata": {
      "type": "object",
      "properties": {
        "metalines": {
          "type": "array",
          "items": {
            "$ref": "ResultDisplayLine"
          },
          "description": "The metalines content to be displayed with the result."
        },
        "objectTypeLabel": {
          "description": "The display label for the object.",
          "type": "string"
        }
      },
      "id": "ResultDisplayMetadata"
    },
    "FreshnessOptions": {
      "description": "Indicates which freshness property to use when adjusting search ranking for an item. Fresher, more recent dates indicate higher quality. Use the freshness option property that best works with your data. For fileshare documents, last modified time is most relevant. For calendar event data, the time when the event occurs is a more relevant freshness indicator. In this way, calendar events that occur closer to the time of the search query are considered higher quality and ranked accordingly.",
      "type": "object",
      "properties": {
        "freshnessProperty": {
          "description": "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.",
          "type": "string"
        },
        "freshnessDuration": {
          "type": "string",
          "format": "google-duration",
          "description": "The duration after which an object should be considered stale. The default value is 180 days (in seconds)."
        }
      },
      "id": "FreshnessOptions"
    },
    "QueryInterpretationOptions": {
      "type": "object",
      "properties": {
        "enableVerbatimMode": {
          "description": "Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental result retrieval, and usage of synonyms including custom ones. Nl interpretation will be disabled if either one of the two flags is true.",
          "type": "boolean"
        },
        "disableSupplementalResults": {
          "description": "Use this flag to disable supplemental results for a query. Supplemental results setting chosen at SearchApplication level will take precedence if set to True.",
          "type": "boolean"
        },
        "disableNlInterpretation": {
          "description": "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.",
          "type": "boolean"
        }
      },
      "id": "QueryInterpretationOptions",
      "description": "Options to interpret user query."
    },
    "MatchRange": {
      "id": "MatchRange",
      "type": "object",
      "properties": {
        "start": {
          "description": "Starting position of the match in the snippet.",
          "type": "integer",
          "format": "int32"
        },
        "end": {
          "type": "integer",
          "format": "int32",
          "description": "End of the match in the snippet."
        }
      },
      "description": "Matched range of a snippet [start, end)."
    },
    "ObjectValues": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "StructuredDataObject"
          }
        }
      },
      "id": "ObjectValues",
      "description": "List of object values."
    },
    "IndexItemRequest": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "Item",
          "description": "The name of the item. Format: datasources/{source_id}/items/{item_id}"
        },
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        },
        "mode": {
          "type": "string",
          "enumDescriptions": [
            "The priority is not specified in the update request. Leaving priority unspecified results in an update failure.",
            "For real-time updates.",
            "For changes that are executed after the response is sent back to the caller."
          ],
          "enum": [
            "UNSPECIFIED",
            "SYNCHRONOUS",
            "ASYNCHRONOUS"
          ],
          "description": "Required. The RequestMode for this request."
        },
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Common debug options."
        },
        "indexItemOptions": {
          "$ref": "IndexItemOptions"
        }
      },
      "id": "IndexItemRequest"
    },
    "FilterOptions": {
      "description": "Filter options to be applied on query.",
      "id": "FilterOptions",
      "type": "object",
      "properties": {
        "objectType": {
          "description": "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.",
          "type": "string"
        },
        "filter": {
          "description": "Generic filter to restrict the search, such as `lang:en`, `site:xyz`.",
          "$ref": "Filter"
        }
      }
    },
    "SearchItemsByViewUrlRequest": {
      "id": "SearchItemsByViewUrlRequest",
      "type": "object",
      "properties": {
        "viewUrl": {
          "description": "Specify the full view URL to find the corresponding item. The maximum length is 2048 characters.",
          "type": "string"
        },
        "pageToken": {
          "description": "The next_page_token value returned from a previous request, if any.",
          "type": "string"
        },
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Common debug options."
        }
      }
    },
    "RepositoryError": {
      "id": "RepositoryError",
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of error.",
          "type": "string",
          "enumDescriptions": [
            "Unknown error.",
            "Unknown or unreachable host.",
            "DNS problem, such as the DNS server is not responding.",
            "Cannot connect to the repository server.",
            "Failed authentication due to incorrect credentials.",
            "Service account is not authorized for the repository.",
            "Repository server error.",
            "Quota exceeded.",
            "Server temporarily unavailable.",
            "Client-related error, such as an invalid request from the connector to the repository server."
          ],
          "enum": [
            "UNKNOWN",
            "NETWORK_ERROR",
            "DNS_ERROR",
            "CONNECTION_ERROR",
            "AUTHENTICATION_ERROR",
            "AUTHORIZATION_ERROR",
            "SERVER_ERROR",
            "QUOTA_EXCEEDED",
            "SERVICE_UNAVAILABLE",
            "CLIENT_ERROR"
          ]
        },
        "errorMessage": {
          "description": "Message that describes the error. The maximum allowable length of the message is 8192 characters.",
          "type": "string"
        },
        "httpStatusCode": {
          "type": "integer",
          "format": "int32",
          "description": "Error codes. Matches the definition of HTTP status codes."
        }
      },
      "description": "Errors when the connector is communicating to the source repository."
    },
    "StructuredResult": {
      "type": "object",
      "properties": {
        "person": {
          "description": "Representation of a person",
          "$ref": "Person"
        }
      },
      "id": "StructuredResult",
      "description": "Structured results that are returned as part of search request."
    },
    "Value": {
      "description": "Definition of a single value with generic type.",
      "type": "object",
      "properties": {
        "stringValue": {
          "type": "string"
        },
        "timestampValue": {
          "type": "string",
          "format": "google-datetime"
        },
        "integerValue": {
          "type": "string",
          "format": "int64"
        },
        "doubleValue": {
          "type": "number",
          "format": "double"
        },
        "dateValue": {
          "$ref": "Date"
        },
        "booleanValue": {
          "type": "boolean"
        }
      },
      "id": "Value"
    },
    "Name": {
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The read-only display name formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header.",
          "type": "string"
        }
      },
      "id": "Name",
      "description": "A person's name."
    },
    "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber": {
      "id": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber",
      "type": "object",
      "properties": {
        "phoneUrl": {
          "$ref": "SafeUrlProto",
          "description": "Phone number URL"
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "MOBILE",
            "OFFICE",
            "OTHER"
          ]
        },
        "phoneNumber": {
          "description": "Phone number in no particular format (as comes from the Focus profile).",
          "type": "string"
        }
      }
    },
    "IntegerValues": {
      "description": "List of integer values.",
      "id": "IntegerValues",
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        }
      }
    },
    "ItemStructuredData": {
      "type": "object",
      "properties": {
        "object": {
          "$ref": "StructuredDataObject",
          "description": "The structured data object that should conform to a registered object definition in the schema for the data source."
        },
        "hash": {
          "description": "Hashing value provided by the API caller. This can be used with the items.push method to calculate modified state. The maximum length is 2048 characters.",
          "type": "string"
        }
      },
      "id": "ItemStructuredData",
      "description": "Available structured data fields for the item."
    },
    "ResultDisplayLine": {
      "type": "object",
      "properties": {
        "fields": {
          "type": "array",
          "items": {
            "$ref": "ResultDisplayField"
          }
        }
      },
      "id": "ResultDisplayLine",
      "description": "The collection of fields that make up a displayed line"
    },
    "Media": {
      "id": "Media",
      "type": "object",
      "properties": {
        "resourceName": {
          "description": "Name of the media resource.",
          "type": "string"
        }
      },
      "description": "Media resource."
    },
    "SearchApplicationUserStats": {
      "type": "object",
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned."
        },
        "thirtyDaysActiveUsersCount": {
          "description": "The count of unique active users in the past thirty days",
          "type": "string",
          "format": "int64"
        },
        "oneDayActiveUsersCount": {
          "type": "string",
          "format": "int64",
          "description": "The count of unique active users in the past one day"
        },
        "sevenDaysActiveUsersCount": {
          "type": "string",
          "format": "int64",
          "description": "The count of unique active users in the past seven days"
        }
      },
      "id": "SearchApplicationUserStats"
    },
    "PersonCore": {
      "id": "PersonCore",
      "type": "object",
      "properties": {
        "dottedLineManagers": {
          "description": "The profile owner's direct dotted line managers in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.",
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          }
        },
        "ftePermille": {
          "type": "string",
          "format": "int64",
          "description": "Full-time equivalent (in ‰) (e.g. 800 for a person who's working 80%)."
        },
        "fingerprint": {
          "description": "A fingerprint used by PAPI to reliably determine if a resource has changed Externally it is used as part of the etag.",
          "type": "string"
        },
        "employeeId": {
          "description": "Person's employee number (external ID of type \"organization\") For google.com this is the badge number (e.g. 2 for Larry Page).",
          "type": "string"
        },
        "totalDlrCount": {
          "type": "integer",
          "format": "int32",
          "description": "Total count of the profile owner's dotted-line reports."
        },
        "jobTitle": {
          "description": "Profile owner's job title (e.g. \"Software Engineer\"). For google.com this is the Workday preferred job title.",
          "type": "string"
        },
        "photoUrl": {
          "description": "Person photo.",
          "$ref": "SafeUrlProto"
        },
        "dottedLineReports": {
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          },
          "description": "A subset of the profile owner's dotted-line reports. The number of entities here may be less than total_dlr_count. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty."
        },
        "adminTo": {
          "description": "People the profile owner is an admin to. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.",
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          }
        },
        "gmailUrl": {
          "type": "string"
        },
        "emails": {
          "description": "E-mail addresses of the person. The primary or preferred email should be first.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "totalDirectReportsCount": {
          "type": "integer",
          "format": "int32",
          "description": "Total count of the profile owner's direct reports."
        },
        "costCenter": {
          "description": "Person's cost center as a string, e.g. \"926: Googler Apps\".",
          "type": "string"
        },
        "location": {
          "description": "Detailed desk location within the company. For google.com this is the desk location code (e.g. \"DE-MUC-ARP-6T2-6T2C0C\") if the person has a desk.",
          "type": "string"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazFrontendTeamsPersonCorePhoneNumber"
          }
        },
        "waldoComeBackTime": {
          "type": "string",
          "format": "google-datetime"
        },
        "keywords": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom keywords the domain admin has added."
        },
        "personId": {
          "description": "The person's obfuscated Gaia ID.",
          "type": "string"
        },
        "postalAddress": {
          "description": "Postal address of office/building.",
          "type": "string"
        },
        "directReports": {
          "description": "A subset of the profile owner's direct reports. The number of entities here may be less than total_direct_reports_count, because typically ProfileResponse does not include all the person's reports, if there are too many to retrieve efficiently. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.",
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          }
        },
        "availabilityStatus": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "OUT_OF_OFFICE",
            "OUTSIDE_WORKING_HOURS",
            "AVAILABLE"
          ]
        },
        "links": {
          "description": "Custom links the profile owner has added.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazFrontendTeamsLink"
          }
        },
        "addressMeAs": {
          "description": "Instructions for how to address this person (e.g. custom pronouns). For google.com this is a set of pronouns from a defined list of options.",
          "type": "string"
        },
        "totalFteCount": {
          "description": "The sum of all profile owner's reports and their own full-time-equivalents in ‰ (e.g. 1800 if one report is working 80% and profile owner 100%).",
          "type": "string",
          "format": "int64"
        },
        "chatUrl": {
          "$ref": "SafeUrlProto",
          "description": "The URL to start a chat conversation with the profile owner. For google.com this is a Hangouts URL."
        },
        "geoLocation": {
          "$ref": "MapInfo"
        },
        "name": {
          "description": "Human-readable Unicode display name.",
          "type": "string"
        },
        "managers": {
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          },
          "description": "The profile owner's management chain from top to bottom, where managers[0] is the CEO, manager[N-2] is the person's manager's manager and managers[N-1] is the person's direct manager. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty."
        },
        "calendarUrl": {
          "description": "The URL to open the profile owner's primary calendar.",
          "$ref": "SafeUrlProto"
        },
        "department": {
          "description": "The person's Organization department, e.g. \"People Operations\". For google.com this is usually called \"area\".",
          "type": "string"
        },
        "admins": {
          "description": "The profile owner's admins in no particular order. Note that not all fields of these PersonCores will be set, in particular, relationships will be empty.",
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          }
        },
        "birthday": {
          "description": "Person birthday.",
          "$ref": "Date"
        },
        "mission": {
          "description": "Custom mission statement the profile owner has added.",
          "type": "string"
        },
        "keywordTypes": {
          "description": "List of keys to use from the map 'keywords'.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "username": {
          "description": "External ID of type \"login_id\" for the profile. For google.com this is the username/LDAP.",
          "type": "string"
        },
        "officeLocation": {
          "description": "Office/building identifier within the company. For google.com this is the office code (e.g. \"DE-MUC-ARP\").",
          "type": "string"
        }
      },
      "description": "Information for rendering a person. NEXT ID: 37"
    },
    "EnterpriseTopazSidekickCommonDocumentJustification": {
      "description": "Justification of why we are reporting the document.",
      "id": "EnterpriseTopazSidekickCommonDocumentJustification",
      "type": "object",
      "properties": {
        "justification": {
          "description": "A locale aware message that explains why this document was selected.",
          "type": "string"
        },
        "reason": {
          "type": "string",
          "enumDescriptions": [
            "Unknown justification.",
            "Popular documents within collaborators.",
            "Popular documents within the domain.",
            "Documents being reviewed frequently by the current user .",
            "Documents being edited frequently by the current user .",
            "Documents updated since user's last visit.",
            "Documents that receive comments since user's last visit.",
            "Documents in the calendar event description.",
            "Documents in the calendar event attachments section.",
            "Documents attached in calendar event metadata instead of the attachment section. Event metadata is not visible to the final user. Enterprise assist uses this metadata to store auto-generated documents such as meeting notes.",
            "Documents mined, and so, probably related to the request context. For example, this category includes documents related to a meeting.",
            "Documents that contains mentions of the user.",
            "Documents that are shared with the user."
          ],
          "enum": [
            "UNKNOWN",
            "TRENDING_IN_COLLABORATORS",
            "TRENDING_IN_DOMAIN",
            "FREQUENTLY_VIEWED",
            "FREQUENTLY_EDITED",
            "NEW_UPDATES",
            "NEW_COMMENTS",
            "EVENT_DESCRIPTION",
            "EVENT_ATTACHMENT",
            "EVENT_METADATA_ATTACHMENT",
            "MINED_DOCUMENT",
            "NEW_MENTIONS",
            "NEW_SHARES"
          ],
          "description": "Reason on why the document is selected. Populate for trending documents."
        }
      }
    },
    "Content": {
      "id": "Content",
      "type": "object",
      "properties": {
        "description": {
          "description": "[Optional] Description of the card.",
          "$ref": "SafeHtmlProto"
        },
        "actions": {
          "description": "[Optional] Actions for this card.",
          "type": "array",
          "items": {
            "$ref": "Action"
          }
        },
        "subtitle": {
          "description": "[Optional] Subtitle of the card.",
          "$ref": "BackgroundColoredText"
        },
        "title": {
          "$ref": "BackgroundColoredText",
          "description": "[Optional] Title of the card."
        }
      }
    },
    "SearchRequest": {
      "id": "SearchRequest",
      "type": "object",
      "properties": {
        "contextAttributes": {
          "description": "Context attributes for the request which will be used to adjust ranking of search results. The maximum number of elements is 10.",
          "type": "array",
          "items": {
            "$ref": "ContextAttribute"
          }
        },
        "queryInterpretationOptions": {
          "$ref": "QueryInterpretationOptions",
          "description": "Options to interpret the user query."
        },
        "requestOptions": {
          "description": "Request options, such as the search application and user timezone.",
          "$ref": "RequestOptions"
        },
        "dataSourceRestrictions": {
          "type": "array",
          "items": {
            "$ref": "DataSourceRestriction"
          },
          "description": "The sources to use for querying. If not specified, all data sources from the current search application are used."
        },
        "start": {
          "description": "Starting index of the results.",
          "type": "integer",
          "format": "int32"
        },
        "sortOptions": {
          "$ref": "SortOptions",
          "description": "The options for sorting the search results"
        },
        "facetOptions": {
          "type": "array",
          "items": {
            "$ref": "FacetOptions"
          }
        },
        "query": {
          "description": "The raw query string. See supported search operators in the [Narrow your search with operators](https://support.google.com/cloudsearch/answer/6172299)",
          "type": "string"
        },
        "pageSize": {
          "description": "Maximum number of search results to return in one page. Valid values are between 1 and 100, inclusive. Default value is 10. Minimum value is 50 when results beyond 2000 are requested.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "The search API request. NEXT ID: 26"
    },
    "DoublePropertyOptions": {
      "description": "The options for double properties.",
      "type": "object",
      "properties": {
        "operatorOptions": {
          "$ref": "DoubleOperatorOptions",
          "description": "If set, describes how the double should be used as a search operator."
        }
      },
      "id": "DoublePropertyOptions"
    },
    "DriveLocationRestrict": {
      "description": "Drive location search restricts (e.g. \"is:starred\").",
      "id": "DriveLocationRestrict",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "UNSPECIFIED",
            "TRASHED",
            "STARRED"
          ]
        }
      }
    },
    "FacetOptions": {
      "id": "FacetOptions",
      "type": "object",
      "properties": {
        "sourceName": {
          "description": "Source name to facet on. Format: datasources/{source_id} If empty, all data sources will be used.",
          "type": "string"
        },
        "objectType": {
          "description": "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.",
          "type": "string"
        },
        "integerFacetingOptions": {
          "description": "If set, describes integer faceting options for the given integer property. The corresponding integer property in the schema should be marked isFacetable. The number of buckets returned would be minimum of this and num_facet_buckets.",
          "$ref": "IntegerFacetingOptions"
        },
        "operatorName": {
          "description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions",
          "type": "string"
        },
        "numFacetBuckets": {
          "description": "Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination."
    },
    "SourceScoringConfig": {
      "type": "object",
      "properties": {
        "sourceImportance": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "DEFAULT",
            "LOW",
            "HIGH"
          ],
          "description": "Importance of the source."
        }
      },
      "id": "SourceScoringConfig",
      "description": "Set the scoring configuration. This allows modifying the ranking of results for a source."
    },
    "EnterpriseTopazSidekickCommonPersonBirthday": {
      "id": "EnterpriseTopazSidekickCommonPersonBirthday",
      "type": "object",
      "properties": {
        "value": {
          "description": "Unstructured birthday.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickAnswerSuggestedQueryCategory": {
      "type": "object",
      "properties": {
        "category": {
          "description": "The query list category.",
          "type": "string",
          "enumDescriptions": [
            "Unknown.",
            "Calendar based queries (e.g. \"my agenda for tomorrow\").",
            "Document based queries (e.g. \"files shared with me\").",
            "People based queries (e.g. \"what is x's email address?\")."
          ],
          "enum": [
            "UNKNOWN",
            "CALENDAR",
            "DOCUMENT",
            "PEOPLE"
          ]
        },
        "query": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of suggested queries to show the user."
        },
        "isEnabled": {
          "description": "Whether this category is enabled.",
          "type": "boolean"
        }
      },
      "id": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory",
      "description": "Contains a list of suggested queries for a single category."
    },
    "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata": {
      "id": "EnterpriseTopazSidekickCommonDocumentDriveDocumentMetadata",
      "type": "object",
      "properties": {
        "lastModificationTimeMillis": {
          "description": "Last modification time of the document (independent of the user that modified it).",
          "type": "string",
          "format": "int64"
        },
        "owner": {
          "$ref": "EnterpriseTopazSidekickCommonPerson",
          "description": "The owner of the document."
        },
        "lastUpdatedTimeMs": {
          "description": "Timestamp of the last updated time of the document in milliseconds since epoch.",
          "type": "string",
          "format": "uint64"
        },
        "isPrivate": {
          "description": "Additional field to identify whether a document is private since scope set to LIMITED can mean both that the doc is private or that it's shared with others. is_private indicates whether the doc is not shared with anyone except for the owner.",
          "type": "boolean"
        },
        "scope": {
          "description": "ACL scope of the document which identifies the sharing status of the doc (e.g., limited, shared with link, team drive, ...).",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN_DOCUMENT_SCOPE",
            "LIMITED",
            "DASHER_DOMAIN_WITH_LINK",
            "DASHER_DOMAIN",
            "PUBLIC_WITH_LINK",
            "PUBLIC",
            "TEAM_DRIVE"
          ]
        },
        "lastViewTimeMs": {
          "description": "Timestamp of the most recent view from the current user in milliseconds since epoch.",
          "type": "string",
          "format": "uint64"
        },
        "lastCommentTimeMs": {
          "description": "Timestamp of the most recent comment added to the document in milliseconds since epoch.",
          "type": "string",
          "format": "uint64"
        },
        "lastEditTimeMs": {
          "type": "string",
          "format": "uint64",
          "description": "Timestamp of the most recent edit from the current user in milliseconds since epoch."
        },
        "documentId": {
          "description": "The drive document cosmo id. Client could use the id to build a URL to open a document. Please use Document.document_id.",
          "deprecated": true,
          "type": "string"
        }
      },
      "description": "Meta data for drive documents."
    },
    "EnterpriseTopazSidekickMeetingNotesCardRequest": {
      "type": "object",
      "properties": {
        "error": {
          "$ref": "EnterpriseTopazSidekickMeetingNotesCardError",
          "description": "The error and reason if known error occured."
        },
        "event": {
          "description": "The event to request meeting notes creation",
          "$ref": "EnterpriseTopazSidekickAgendaEntry"
        },
        "canCreateFor": {
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Unknown (default).",
              "For the requester.",
              "For all the meeting attendees."
            ],
            "enum": [
              "UNKNOWN",
              "MYSELF",
              "ALL_ATTENDEES"
            ]
          },
          "description": "Who are the meeting notes created for."
        }
      },
      "id": "EnterpriseTopazSidekickMeetingNotesCardRequest",
      "description": "Meeting notes card request."
    },
    "IntegerFacetingOptions": {
      "description": "Used to specify integer faceting options.",
      "id": "IntegerFacetingOptions",
      "type": "object",
      "properties": {
        "integerBuckets": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Buckets for given integer values should be in strictly ascending order. For example, if values supplied are (1,5,10,100), the following facet buckets will be formed {\u003c1, [1,5), [5-10), [10-100), \u003e=100}."
        }
      }
    },
    "ErrorMessage": {
      "type": "object",
      "properties": {
        "errorMessage": {
          "type": "string"
        },
        "source": {
          "$ref": "Source"
        }
      },
      "id": "ErrorMessage",
      "description": "Error message per source response."
    },
    "EnumValues": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The maximum allowable length for string values is 32 characters."
        }
      },
      "id": "EnumValues",
      "description": "List of enum values."
    },
    "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer": {
      "description": "An answer with a corresponding label.",
      "type": "object",
      "properties": {
        "answer": {
          "description": "The free text answer.",
          "type": "string"
        },
        "label": {
          "description": "A localized label for the answer (e.g. \"Cell phone\" vs \"Desk phone\").",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickAnswerAnswerListLabeledAnswer"
    },
    "IndexItemOptions": {
      "id": "IndexItemOptions",
      "type": "object",
      "properties": {
        "allowUnknownGsuitePrincipals": {
          "description": "Specifies if the index request should allow Google Workspace principals that do not exist or are deleted.",
          "type": "boolean"
        }
      }
    },
    "SearchResponse": {
      "description": "The search API response. NEXT ID: 20",
      "type": "object",
      "properties": {
        "structuredResults": {
          "description": "Structured results for the user query. These results are not counted against the page_size.",
          "type": "array",
          "items": {
            "$ref": "StructuredResult"
          }
        },
        "debugInfo": {
          "description": "Debugging information about the response.",
          "$ref": "ResponseDebugInfo"
        },
        "resultCountExact": {
          "type": "string",
          "format": "int64",
          "description": "The exact result count for this query."
        },
        "hasMoreResults": {
          "description": "Whether there are more search results matching the query.",
          "type": "boolean"
        },
        "resultCountEstimate": {
          "description": "The estimated result count for this query.",
          "type": "string",
          "format": "int64"
        },
        "errorInfo": {
          "description": "Error information about the response.",
          "$ref": "ErrorInfo"
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "SearchResult"
          },
          "description": "Results from a search query."
        },
        "resultCounts": {
          "description": "Expanded result count information.",
          "$ref": "ResultCounts"
        },
        "queryInterpretation": {
          "$ref": "QueryInterpretation",
          "description": "Query interpretation result for user query. Empty if query interpretation is disabled."
        },
        "facetResults": {
          "type": "array",
          "items": {
            "$ref": "FacetResult"
          },
          "description": "Repeated facet results."
        },
        "spellResults": {
          "description": "Suggested spelling for the query.",
          "type": "array",
          "items": {
            "$ref": "SpellResult"
          }
        }
      },
      "id": "SearchResponse"
    },
    "SearchResult": {
      "id": "SearchResult",
      "type": "object",
      "properties": {
        "snippet": {
          "$ref": "Snippet",
          "description": "The concatenation of all snippets (summaries) available for this result."
        },
        "metadata": {
          "$ref": "Metadata",
          "description": "Metadata of the search result."
        },
        "title": {
          "description": "Title of the search result.",
          "type": "string"
        },
        "clusteredResults": {
          "type": "array",
          "items": {
            "$ref": "SearchResult"
          },
          "description": "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."
        },
        "url": {
          "description": "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.",
          "type": "string"
        },
        "debugInfo": {
          "$ref": "ResultDebugInfo",
          "description": "Debugging information about this search result."
        }
      },
      "description": "Results containing indexed information for a document. Next ID: 17"
    },
    "RetrievalImportance": {
      "type": "object",
      "properties": {
        "importance": {
          "description": "Indicates the ranking importance given to property when it is matched during retrieval. Once set, the token importance of a property cannot be changed.",
          "type": "string",
          "enumDescriptions": [
            "Treat the match like a body text match.",
            "Treat the match like a match against title of the item.",
            "Treat the match with higher importance than body text.",
            "Treat the match with lower importance than body text.",
            "Do not match against this field during retrieval. The property can still be used for operator matching, faceting, and suggest if desired."
          ],
          "enum": [
            "DEFAULT",
            "HIGHEST",
            "HIGH",
            "LOW",
            "NONE"
          ]
        }
      },
      "id": "RetrievalImportance"
    },
    "EmailAddress": {
      "description": "A person's email address.",
      "id": "EmailAddress",
      "type": "object",
      "properties": {
        "primary": {
          "description": "Indicates if this is the user's primary email. Only one entry can be marked as primary.",
          "type": "boolean"
        },
        "emailAddress": {
          "description": "The email address.",
          "type": "string"
        },
        "type": {
          "description": "The type of the email account. Acceptable values are: \"custom\", \"home\", \"other\", \"work\".",
          "type": "string"
        },
        "emailUrl": {
          "description": "The URL to send email.",
          "type": "string"
        },
        "customType": {
          "description": "If the value of type is custom, this property contains the custom type string.",
          "type": "string"
        }
      }
    },
    "ResultDebugInfo": {
      "type": "object",
      "properties": {
        "formattedDebugInfo": {
          "description": "General debug info formatted for display.",
          "type": "string"
        }
      },
      "id": "ResultDebugInfo",
      "description": "Debugging information about the result."
    },
    "ResetSearchApplicationRequest": {
      "type": "object",
      "properties": {
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Common debug options."
        }
      },
      "id": "ResetSearchApplicationRequest"
    },
    "CustomerSearchApplicationStats": {
      "description": "Search application stats for a customer for the given date.",
      "type": "object",
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "The date for which search application stats were calculated."
        },
        "count": {
          "description": "The count of search applications for the date.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "CustomerSearchApplicationStats"
    },
    "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard": {
      "description": "Contains a list of suggested queries. Allows the user to determine what natural language queries they can ask Cloud Search (e.g. \"what can I search for?\").",
      "type": "object",
      "properties": {
        "suggestedQueryCategory": {
          "description": "A list of queries to suggest.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickAnswerSuggestedQueryCategory"
          }
        }
      },
      "id": "EnterpriseTopazSidekickAnswerSuggestedQueryAnswerCard"
    },
    "DatePropertyOptions": {
      "description": "The options for date properties.",
      "id": "DatePropertyOptions",
      "type": "object",
      "properties": {
        "operatorOptions": {
          "description": "If set, describes how the date should be used as a search operator.",
          "$ref": "DateOperatorOptions"
        }
      }
    },
    "EnumPropertyOptions": {
      "description": "The options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define *p0* as an allowable enum value and tie this enum to the operator name *priority* so that search users could add *priority:p0* to their query to restrict the set of results to only those items indexed with the value *p0*.",
      "id": "EnumPropertyOptions",
      "type": "object",
      "properties": {
        "possibleValues": {
          "description": "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.",
          "type": "array",
          "items": {
            "$ref": "EnumValuePair"
          }
        },
        "orderedRanking": {
          "description": "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.",
          "type": "string",
          "enumDescriptions": [
            "There is no ranking order for the property. Results aren't adjusted by this property's value.",
            "This property is ranked in ascending order. Lower values indicate lower ranking.",
            "This property is ranked in descending order. Lower values indicate higher ranking."
          ],
          "enum": [
            "NO_ORDER",
            "ASCENDING",
            "DESCENDING"
          ]
        },
        "operatorOptions": {
          "description": "If set, describes how the enum should be used as a search operator.",
          "$ref": "EnumOperatorOptions"
        }
      }
    },
    "RemoveActivityResponse": {
      "type": "object",
      "properties": {},
      "id": "RemoveActivityResponse",
      "description": "Remove Logged Activity Response. will return an empty response for now. Will be revisited in later phases."
    },
    "BooleanOperatorOptions": {
      "description": "Used to provide a search operator for boolean properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.",
      "id": "BooleanOperatorOptions",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *isClosed* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        }
      }
    },
    "SearchApplication": {
      "description": "SearchApplication",
      "id": "SearchApplication",
      "type": "object",
      "properties": {
        "enableAuditLog": {
          "description": "Indicates whether audit logging is on/off for requests made for the search application in query APIs.",
          "type": "boolean"
        },
        "operationIds": {
          "description": "Output only. IDs of the Long Running Operations (LROs) currently running for this schema. Output only field.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "scoringConfig": {
          "$ref": "ScoringConfig",
          "description": "Configuration for ranking results."
        },
        "displayName": {
          "description": "Display name of the Search Application. The maximum length is 300 characters.",
          "type": "string"
        },
        "defaultSortOptions": {
          "description": "The default options for sorting the search results",
          "$ref": "SortOptions"
        },
        "queryInterpretationConfig": {
          "description": "The default options for query interpretation",
          "$ref": "QueryInterpretationConfig"
        },
        "returnResultThumbnailUrls": {
          "description": "With each result we should return the URI for its thumbnail (when applicable)",
          "type": "boolean"
        },
        "dataSourceRestrictions": {
          "description": "Retrictions applied to the configurations. The maximum number of elements is 10.",
          "type": "array",
          "items": {
            "$ref": "DataSourceRestriction"
          }
        },
        "sourceConfig": {
          "description": "Configuration for a sources specified in data_source_restrictions.",
          "type": "array",
          "items": {
            "$ref": "SourceConfig"
          }
        },
        "name": {
          "description": "The name of the Search Application. Format: searchapplications/{application_id}.",
          "type": "string"
        },
        "defaultFacetOptions": {
          "type": "array",
          "items": {
            "$ref": "FacetOptions"
          },
          "description": "The default fields for returning facet results. The sources specified here also have been included in data_source_restrictions above."
        }
      }
    },
    "FacetResult": {
      "id": "FacetResult",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions",
          "type": "string"
        },
        "objectType": {
          "description": "Object type for which facet results are returned. Can be empty.",
          "type": "string"
        },
        "buckets": {
          "type": "array",
          "items": {
            "$ref": "FacetBucket"
          },
          "description": "FacetBuckets for values in response containing at least a single result with the corresponding filter."
        },
        "sourceName": {
          "description": "Source name for which facet results are returned. Will not be empty.",
          "type": "string"
        }
      },
      "description": "Source specific facet response"
    },
    "QueryActivity": {
      "type": "object",
      "properties": {
        "query": {
          "description": "User input query to be logged/removed.",
          "type": "string"
        }
      },
      "id": "QueryActivity",
      "description": "Details about a user's query activity."
    },
    "SourceResultCount": {
      "type": "object",
      "properties": {
        "resultCountExact": {
          "type": "string",
          "format": "int64",
          "description": "The exact result count for this source."
        },
        "source": {
          "description": "The source the result count information is associated with.",
          "$ref": "Source"
        },
        "hasMoreResults": {
          "description": "Whether there are more search results for this source.",
          "type": "boolean"
        },
        "resultCountEstimate": {
          "type": "string",
          "format": "int64",
          "description": "The estimated result count for this source."
        }
      },
      "id": "SourceResultCount",
      "description": "Per source result count information."
    },
    "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard": {
      "description": "An answer card for a list of people that are related to the subject of the query.",
      "id": "EnterpriseTopazSidekickPeopleAnswerRelatedPeopleAnswerCard",
      "type": "object",
      "properties": {
        "header": {
          "description": "The header to display for the card.",
          "$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader"
        },
        "subject": {
          "$ref": "EnterpriseTopazSidekickCommonPerson",
          "description": "The profile of the person that was the subject of the query."
        },
        "statusMessage": {
          "description": "Localized user friendly message to display to the user in the case of missing data or an error.",
          "type": "string"
        },
        "disambiguationInfo": {
          "description": "Disambiguation information.",
          "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo"
        },
        "responseStatus": {
          "description": "The response status.",
          "type": "string",
          "enumDescriptions": [
            "Unknown.",
            "Success.",
            "No such person was found in the user's domain.",
            "A person was found to match the query, but an answer could not be obtained."
          ],
          "enum": [
            "UNKNOWN",
            "SUCCESS",
            "MISSING_PERSON",
            "MISSING_DATA"
          ]
        },
        "relationType": {
          "description": "Defines the type of relation the list of people have with the subject of the card.",
          "type": "string",
          "enumDescriptions": [
            "Unknown.",
            "Direct reports.",
            "The manager.",
            "The teammates/peers of the subject."
          ],
          "enum": [
            "UNKNOWN",
            "DIRECT_REPORTS",
            "MANAGER",
            "PEERS"
          ]
        },
        "relatedPeople": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonPerson"
          },
          "description": "A list of people that are related to the query subject."
        }
      }
    },
    "RequestOptions": {
      "description": "Shared request options for all RPC methods.",
      "id": "RequestOptions",
      "type": "object",
      "properties": {
        "searchApplicationId": {
          "description": "The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).",
          "type": "string"
        },
        "languageCode": {
          "description": "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. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.",
          "type": "string"
        },
        "clientDisplayLanguageCode": {
          "description": "The BCP-47 language code, such as \"pt\" or \"en\". It represents the user's preferred Display Language.",
          "type": "string"
        },
        "timeZone": {
          "description": "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). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.",
          "type": "string"
        },
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Debug options of the request"
        },
        "countryCode": {
          "description": "Optional. Specifies the country/region where the query originated, as a lowercase ISO 3166-1 alpha-2 region code (using 'uk' instead of 'gb' for the United Kingdom).",
          "type": "string"
        }
      }
    },
    "Source": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Source name for content indexed by the Indexing API.",
          "type": "string"
        },
        "predefinedSource": {
          "description": "Predefined content source for Google Apps.",
          "type": "string",
          "enumDescriptions": [
            "",
            "Suggests queries issued by the user in the past. Only valid when used with the suggest API. Ignored when used in the query API.",
            "Suggests people in the organization. Only valid when used with the suggest API. Results in an error when used in the query API.",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "NONE",
            "QUERY_HISTORY",
            "PERSON",
            "GOOGLE_DRIVE",
            "GOOGLE_GMAIL",
            "GOOGLE_SITES",
            "GOOGLE_GROUPS",
            "GOOGLE_CALENDAR",
            "GOOGLE_KEEP"
          ]
        }
      },
      "id": "Source",
      "description": "Defines sources for the suggest/search APIs."
    },
    "SafeHtmlProto": {
      "type": "object",
      "properties": {
        "privateDoNotAccessOrElseSafeHtmlWrappedValue": {
          "description": "IMPORTANT: Never set or read this field, even from tests, it is private. See documentation at the top of .proto file for programming language packages with which to create or read this message.",
          "type": "string"
        }
      },
      "id": "SafeHtmlProto",
      "description": "IMPORTANT: It is unsafe to accept this message from an untrusted source, since it's trivial for an attacker to forge serialized messages that don't fulfill the type's safety contract -- for example, it could contain attacker controlled script. A system which receives a SafeHtmlProto implicitly trusts the producer of the SafeHtmlProto. So, it's generally safe to return this message in RPC responses, but generally unsafe to accept it in RPC requests."
    },
    "UnmappedIdentity": {
      "id": "UnmappedIdentity",
      "type": "object",
      "properties": {
        "externalIdentity": {
          "$ref": "Principal",
          "description": "The resource name for an external user."
        },
        "resolutionStatusCode": {
          "type": "string",
          "enumDescriptions": [
            "Input-only value. Used to list all unmapped identities regardless of status.",
            "The unmapped identity was not found in IDaaS, and needs to be provided by the user.",
            "The identity source associated with the identity was either not found or deleted.",
            "IDaaS does not understand the identity source, probably because the schema was modified in a non compatible way.",
            "The number of users associated with the external identity is too large.",
            "Internal error."
          ],
          "enum": [
            "CODE_UNSPECIFIED",
            "NOT_FOUND",
            "IDENTITY_SOURCE_NOT_FOUND",
            "IDENTITY_SOURCE_MISCONFIGURED",
            "TOO_MANY_MAPPINGS_FOUND",
            "INTERNAL_ERROR"
          ],
          "description": "The resolution status for the external identity."
        }
      }
    },
    "DoubleOperatorOptions": {
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "DoubleOperatorOptions",
      "description": "Used to provide a search operator for double properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched."
    },
    "Item": {
      "description": "Represents a single object that is an item in the search index, such as a file, folder, or a database record.",
      "id": "Item",
      "type": "object",
      "properties": {
        "payload": {
          "description": "Additional state connector can store for this item. The maximum length is 10000 bytes.",
          "type": "string",
          "format": "byte"
        },
        "metadata": {
          "description": "The metadata information.",
          "$ref": "ItemMetadata"
        },
        "queue": {
          "description": "Queue this item belongs to. The maximum length is 100 characters.",
          "type": "string"
        },
        "acl": {
          "$ref": "ItemAcl",
          "description": "Access control list for this item."
        },
        "name": {
          "description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.",
          "type": "string"
        },
        "status": {
          "$ref": "ItemStatus",
          "description": "Status of the item. Output only field."
        },
        "itemType": {
          "type": "string",
          "enumDescriptions": [
            "",
            "An item that is indexed for the only purpose of serving information. These items cannot be referred in containerName or inheritAclFrom fields.",
            "An item that gets indexed and whose purpose is to supply other items with ACLs and/or contain other items.",
            "An item that does not get indexed, but otherwise has the same purpose as CONTAINER_ITEM."
          ],
          "enum": [
            "UNSPECIFIED",
            "CONTENT_ITEM",
            "CONTAINER_ITEM",
            "VIRTUAL_CONTAINER_ITEM"
          ],
          "description": "The type for this item."
        },
        "content": {
          "$ref": "ItemContent",
          "description": "Item content to be indexed and made text searchable."
        },
        "structuredData": {
          "description": "The structured data for the item that should conform to a registered object definition in the schema for the data source.",
          "$ref": "ItemStructuredData"
        },
        "version": {
          "type": "string",
          "format": "byte",
          "description": "Required. The indexing system stores the version from the datasource as a byte string and compares the Item version in the index to the version of the queued Item using lexical ordering. Cloud Search Indexing won't index or delete any queued item with a version value that is less than or equal to the version of the currently indexed item. The maximum length for this field is 1024 bytes. For information on how item version affects the deletion process, refer to [Handle revisions after manual deletes](https://developers.google.com/workspace/cloud-search/docs/guides/operations)."
        }
      }
    },
    "TextOperatorOptions": {
      "description": "Used to provide a search operator for text properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *subjectLine* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        },
        "exactMatchWithOperator": {
          "description": "If true, the text value is tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is \"genre\" and the value is \"science-fiction\" the query restrictions \"genre:science\" and \"genre:fiction\" doesn't match the item; \"genre:science-fiction\" does. Text value matching is case-sensitive and does not remove special characters. If false, the text is tokenized. For example, if the value is \"science-fiction\" the queries \"genre:science\" and \"genre:fiction\" matches the item.",
          "type": "boolean"
        }
      },
      "id": "TextOperatorOptions"
    },
    "EnterpriseTopazSidekickRankingParams": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "Fixed, i.e., the card is time sensitive.",
            "Flexible, i.e., the card is not time sensitive."
          ],
          "enum": [
            "FIXED",
            "FLEXIBLE"
          ],
          "description": "The packing type of this object."
        },
        "startTimeMs": {
          "type": "string",
          "format": "uint64",
          "description": "The start-time that this object will bid-for If the type is marked as FIXED, then this start-time will persist after bidding. If the type is marked as FLEXIBLE, then it will occur at the given time or sometime after the requested time. Expected to be set for all types."
        },
        "priority": {
          "type": "string",
          "enumDescriptions": [
            "Unknown (default).",
            "Critical.",
            "Important.",
            "High.",
            "Normal.",
            "Best effort."
          ],
          "enum": [
            "UNKNOWN",
            "CRITICAL",
            "IMPORTANT",
            "HIGH",
            "NORMAL",
            "BEST_EFFORT"
          ],
          "description": "The priority to determine between objects that have the same start_time_ms The lower-value of priority == ranked higher. Max-priority = 0. Expected to be set for all types."
        },
        "score": {
          "type": "number",
          "format": "float",
          "description": "The score of the card to be used to break priority-ties"
        },
        "endTimeMs": {
          "type": "string",
          "format": "uint64",
          "description": "The end-time that this object will expect to occur. If the type is marked as FIXED, then this end-time will persist after bidding. If the type is marked as FLEXIBLE, this field is NOT expected to be filled and will be filled in after it has won a bid. Expected to be set when type is set to FIXED."
        },
        "spanMs": {
          "description": "The span that this card will take in the stream Expected to be set when type is set to FLEXIBLE.",
          "type": "string",
          "format": "uint64"
        }
      },
      "id": "EnterpriseTopazSidekickRankingParams",
      "description": "Ranking params."
    },
    "CustomerSettings": {
      "id": "CustomerSettings",
      "type": "object",
      "properties": {
        "auditLoggingSettings": {
          "$ref": "AuditLoggingSettings",
          "description": "Audit Logging settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request."
        },
        "vpcSettings": {
          "description": "VPC SC settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request.",
          "$ref": "VPCSettings"
        }
      },
      "description": "Represents settings at a customer level."
    },
    "EnumValuePair": {
      "description": "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.",
      "id": "EnumValuePair",
      "type": "object",
      "properties": {
        "integerValue": {
          "description": "The integer value of the EnumValuePair which must be non-negative. Optional.",
          "type": "integer",
          "format": "int32"
        },
        "stringValue": {
          "description": "The string value of the EnumValuePair. The maximum length is 32 characters.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickPeopleDisambiguationCard": {
      "type": "object",
      "properties": {
        "person": {
          "description": "Candidate persons for the query.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonPerson"
          }
        }
      },
      "id": "EnterpriseTopazSidekickPeopleDisambiguationCard"
    },
    "ResultCounts": {
      "type": "object",
      "properties": {
        "sourceResultCounts": {
          "type": "array",
          "items": {
            "$ref": "SourceResultCount"
          },
          "description": "Result count information for each source with results."
        }
      },
      "id": "ResultCounts",
      "description": "Result count information"
    },
    "SortOptions": {
      "id": "SortOptions",
      "type": "object",
      "properties": {
        "sortOrder": {
          "type": "string",
          "enumDescriptions": [
            "",
            ""
          ],
          "enum": [
            "ASCENDING",
            "DESCENDING"
          ],
          "description": "Ascending is the default sort order"
        },
        "operatorName": {
          "description": "The name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.",
          "type": "string"
        }
      }
    },
    "UserActivity": {
      "id": "UserActivity",
      "type": "object",
      "properties": {
        "queryActivity": {
          "description": "Contains data which needs to be logged/removed.",
          "$ref": "QueryActivity"
        }
      },
      "description": "User's single or bulk query activity. This can be a logging query or deletion query."
    },
    "GetCustomerSessionStatsResponse": {
      "id": "GetCustomerSessionStatsResponse",
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "CustomerSessionStats"
          }
        }
      }
    },
    "DriveMimeTypeRestrict": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNSPECIFIED",
            "PDF",
            "DOCUMENT",
            "PRESENTATION",
            "SPREADSHEET",
            "FORM",
            "DRAWING",
            "SCRIPT",
            "MAP",
            "IMAGE",
            "AUDIO",
            "VIDEO",
            "FOLDER",
            "ARCHIVE",
            "SITE"
          ]
        }
      },
      "id": "DriveMimeTypeRestrict",
      "description": "Drive mime-type search restricts (e.g. \"type:pdf\")."
    },
    "Person": {
      "description": "Object to represent a person.",
      "id": "Person",
      "type": "object",
      "properties": {
        "personNames": {
          "type": "array",
          "items": {
            "$ref": "Name"
          },
          "description": "The person's name"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "PhoneNumber"
          },
          "description": "The person's phone numbers"
        },
        "obfuscatedId": {
          "description": "Obfuscated ID of a person.",
          "type": "string"
        },
        "photos": {
          "description": "A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.",
          "type": "array",
          "items": {
            "$ref": "Photo"
          }
        },
        "name": {
          "description": "The resource name of the person to provide information about. See [`People.get`](https://developers.google.com/people/api/rest/v1/people/get) from the Google People API.",
          "type": "string"
        },
        "emailAddresses": {
          "type": "array",
          "items": {
            "$ref": "EmailAddress"
          },
          "description": "The person's email addresses"
        }
      }
    },
    "QueryOperator": {
      "description": "The definition of a operator that can be used in a Search/Suggest request.",
      "id": "QueryOperator",
      "type": "object",
      "properties": {
        "isSuggestable": {
          "description": "Can get suggestions for this field.",
          "type": "boolean"
        },
        "enumValues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Potential list of values for the opeatror field. This field is only filled when we can safely enumerate all the possible values of this operator."
        },
        "isRepeatable": {
          "description": "Indicates if multiple values can be set for this property.",
          "type": "boolean"
        },
        "lessThanOperatorName": {
          "description": "Indicates the operator name that can be used to isolate the property using the less-than operator.",
          "type": "string"
        },
        "type": {
          "description": "The type of the operator.",
          "type": "string",
          "enumDescriptions": [
            "Invalid value.",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "INTEGER",
            "DOUBLE",
            "TIMESTAMP",
            "BOOLEAN",
            "ENUM",
            "DATE",
            "TEXT",
            "HTML"
          ]
        },
        "operatorName": {
          "description": "The name of the operator.",
          "type": "string"
        },
        "objectType": {
          "description": "The name of the object corresponding to the operator. This field is only filled for schema-specific operators, and is unset for common operators.",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the operator",
          "type": "string"
        },
        "isFacetable": {
          "description": "Can this operator be used to get facets.",
          "type": "boolean"
        },
        "isReturnable": {
          "description": "Will the property associated with this facet be returned as part of search results.",
          "type": "boolean"
        },
        "greaterThanOperatorName": {
          "description": "Indicates the operator name that can be used to isolate the property using the greater-than operator.",
          "type": "string"
        },
        "isSortable": {
          "description": "Can this operator be used to sort results.",
          "type": "boolean"
        }
      }
    },
    "BackgroundColoredText": {
      "type": "object",
      "properties": {
        "backgroundColor": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN_COLOR",
            "WHITE",
            "YELLOW",
            "ORANGE",
            "GREEN",
            "BLUE",
            "GREY"
          ],
          "description": "[Optional] Color of the background. The text color can change depending on the selected background color, and the client does not have control over this. If missing, the background will be WHITE."
        },
        "text": {
          "description": "[Required] The text to display.",
          "type": "string"
        }
      },
      "id": "BackgroundColoredText"
    },
    "QueryItem": {
      "description": "Information relevant only to a query entry.",
      "type": "object",
      "properties": {
        "isSynthetic": {
          "description": "True if the text was generated by means other than a previous user search.",
          "type": "boolean"
        }
      },
      "id": "QueryItem"
    },
    "ResultDisplayField": {
      "description": "Display Fields for Search Results",
      "type": "object",
      "properties": {
        "property": {
          "$ref": "NamedProperty",
          "description": "The name value pair for the property."
        },
        "label": {
          "description": "The display label for the property.",
          "type": "string"
        },
        "operatorName": {
          "description": "The operator name of the property.",
          "type": "string"
        }
      },
      "id": "ResultDisplayField"
    },
    "ObjectPropertyOptions": {
      "description": "The options for object properties.",
      "id": "ObjectPropertyOptions",
      "type": "object",
      "properties": {
        "subobjectProperties": {
          "type": "array",
          "items": {
            "$ref": "PropertyDefinition"
          },
          "description": "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."
        }
      }
    },
    "PropertyDefinition": {
      "description": "The definition of a property within an object.",
      "id": "PropertyDefinition",
      "type": "object",
      "properties": {
        "isSortable": {
          "description": "Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, date, double, integer, and timestamp properties.",
          "type": "boolean"
        },
        "isReturnable": {
          "description": "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.",
          "type": "boolean"
        },
        "htmlPropertyOptions": {
          "$ref": "HtmlPropertyOptions"
        },
        "isFacetable": {
          "description": "Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, enum, integer, and text properties.",
          "type": "boolean"
        },
        "objectPropertyOptions": {
          "$ref": "ObjectPropertyOptions"
        },
        "integerPropertyOptions": {
          "$ref": "IntegerPropertyOptions"
        },
        "name": {
          "description": "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.",
          "type": "string"
        },
        "enumPropertyOptions": {
          "$ref": "EnumPropertyOptions"
        },
        "doublePropertyOptions": {
          "$ref": "DoublePropertyOptions"
        },
        "datePropertyOptions": {
          "$ref": "DatePropertyOptions"
        },
        "displayOptions": {
          "description": "The options that determine how the property is displayed in the Cloud Search results page if it's specified to be displayed in the object's display options.",
          "$ref": "PropertyDisplayOptions"
        },
        "isWildcardSearchable": {
          "description": "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. For more details, see [Define object properties](https://developers.google.com/workspace/cloud-search/docs/guides/schema-guide#properties)",
          "type": "boolean"
        },
        "timestampPropertyOptions": {
          "$ref": "TimestampPropertyOptions"
        },
        "booleanPropertyOptions": {
          "$ref": "BooleanPropertyOptions"
        },
        "isRepeatable": {
          "description": "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.",
          "type": "boolean"
        },
        "isSuggestable": {
          "description": "Indicates that the property can be used for generating query suggestions.",
          "type": "boolean"
        },
        "textPropertyOptions": {
          "$ref": "TextPropertyOptions"
        }
      }
    },
    "ItemAcl": {
      "id": "ItemAcl",
      "type": "object",
      "properties": {
        "owners": {
          "type": "array",
          "items": {
            "$ref": "Principal"
          },
          "description": "Optional. List of owners for the item. This field has no bearing on document access permissions. It does, however, offer a slight ranking boosts items where the querying user is an owner. The maximum number of elements is 5."
        },
        "inheritAclFrom": {
          "description": "The name of the item to inherit the Access Permission List (ACL) from. Note: ACL inheritance *only* provides access permissions to child items and does not define structural relationships, nor does it provide convenient ways to delete large groups of items. Deleting an ACL parent from the index only alters the access permissions of child items that reference the parent in the inheritAclFrom field. The item is still in the index, but may not visible in search results. By contrast, deletion of a container item also deletes all items that reference the container via the containerName field. The maximum length for this field is 1536 characters.",
          "type": "string"
        },
        "deniedReaders": {
          "type": "array",
          "items": {
            "$ref": "Principal"
          },
          "description": "List of principals who are explicitly denied access to the item in search results. While principals are denied access by default, use denied readers to handle exceptions and override the list allowed readers. The maximum number of elements is 100."
        },
        "aclInheritanceType": {
          "type": "string",
          "enumDescriptions": [
            "The default value when this item does not inherit an ACL. Use NOT_APPLICABLE when inheritAclFrom is empty. An item without ACL inheritance can still have ACLs supplied by its own readers and deniedReaders fields.",
            "During an authorization conflict, the ACL of the child item determines its read access.",
            "During an authorization conflict, the ACL of the parent item specified in the inheritAclFrom field determines read access.",
            "Access is granted only if this item and the parent item specified in the inheritAclFrom field both permit read access."
          ],
          "enum": [
            "NOT_APPLICABLE",
            "CHILD_OVERRIDE",
            "PARENT_OVERRIDE",
            "BOTH_PERMIT"
          ],
          "description": "Sets the type of access rules to apply when an item inherits its ACL from a parent. This should always be set in tandem with the inheritAclFrom field. Also, when the inheritAclFrom field is set, this field should be set to a valid AclInheritanceType."
        },
        "readers": {
          "description": "List of principals who are allowed to see the item in search results. Optional if inheriting permissions from another item or if the item is not intended to be visible, such as virtual containers. The maximum number of elements is 1000.",
          "type": "array",
          "items": {
            "$ref": "Principal"
          }
        }
      },
      "description": "Access control list information for the item. For more information see [Map ACLs](https://developers.google.com/workspace/cloud-search/docs/guides/acls)."
    },
    "ListQuerySourcesResponse": {
      "id": "ListQuerySourcesResponse",
      "type": "object",
      "properties": {
        "sources": {
          "type": "array",
          "items": {
            "$ref": "QuerySource"
          }
        },
        "nextPageToken": {
          "type": "string"
        }
      },
      "description": "List sources response."
    },
    "EnterpriseTopazSidekickCommonPerson": {
      "id": "EnterpriseTopazSidekickCommonPerson",
      "type": "object",
      "properties": {
        "manager": {
          "description": "The manager.",
          "$ref": "EnterpriseTopazSidekickCommonPerson"
        },
        "familyName": {
          "description": "The last name.",
          "type": "string"
        },
        "jobTitle": {
          "description": "The person's job title (e.g. Software Engineer).",
          "type": "string"
        },
        "photoUrl": {
          "description": "The URL for the Focus profile picture.",
          "type": "string"
        },
        "deskLocation": {
          "description": "Desk location (e.g. US-MTV-PR55-5-5B1I).",
          "type": "string"
        },
        "department": {
          "description": "The department the person works in (e.g. Engineering).",
          "type": "string"
        },
        "displayName": {
          "description": "The full name.",
          "type": "string"
        },
        "fullAddress": {
          "description": "The fully formatted address (e.g. 1255 Pear Avenue, Mountain View 94043, United States).",
          "type": "string"
        },
        "birthday": {
          "description": "The birthday.",
          "$ref": "EnterpriseTopazSidekickCommonPersonBirthday"
        },
        "email": {
          "description": "Email.",
          "type": "string"
        },
        "cellPhone": {
          "description": "Cell phone number.",
          "type": "string"
        },
        "givenName": {
          "description": "The first name.",
          "type": "string"
        },
        "streetAddress": {
          "description": "The street address (e.g. 1255 Pear Avenue).",
          "type": "string"
        },
        "obfuscatedId": {
          "description": "The obfuscated GAIA ID.",
          "type": "string"
        },
        "gaiaId": {
          "description": "This field is deprecated. The obfuscated_id should be used instead.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "deskPhone": {
          "description": "Work desk phone number.",
          "type": "string"
        }
      },
      "description": "Common representation of a person."
    },
    "HtmlValues": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The maximum allowable length for html values is 2048 characters."
        }
      },
      "id": "HtmlValues",
      "description": "List of html values."
    },
    "QueryInterpretationConfig": {
      "description": "Default options to interpret user query.",
      "type": "object",
      "properties": {
        "forceVerbatimMode": {
          "description": "Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental results retrieval, and usage of synonyms including custom ones. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for verbatim mode.",
          "type": "boolean"
        },
        "forceDisableSupplementalResults": {
          "description": "Set this flag to disable supplemental results retrieval, setting a flag here will not retrieve supplemental results for queries associated with a given search application. If this flag is set to True, it will take precedence over the option set at Query level. For the default value of False, query level flag will set the correct interpretation for supplemental results.",
          "type": "boolean"
        }
      },
      "id": "QueryInterpretationConfig"
    },
    "ObjectDisplayOptions": {
      "id": "ObjectDisplayOptions",
      "type": "object",
      "properties": {
        "metalines": {
          "type": "array",
          "items": {
            "$ref": "Metaline"
          },
          "description": "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."
        },
        "objectDisplayLabel": {
          "description": "The user friendly label to display in the search result to indicate the type of the item. This is OPTIONAL; if not provided, an object label isn't displayed on the context line of the search results. The maximum length is 64 characters.",
          "type": "string"
        }
      },
      "description": "The display options for an object."
    },
    "EnterpriseTopazSidekickPersonProfileCardRelatedPeople": {
      "id": "EnterpriseTopazSidekickPersonProfileCardRelatedPeople",
      "type": "object",
      "properties": {
        "relatedPerson": {
          "description": "Related people.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonPerson"
          }
        },
        "relation": {
          "description": "Relation type.",
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "UNKNOWN",
            "MANAGER",
            "DIRECT_REPORT"
          ]
        }
      }
    },
    "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard": {
      "description": "An answer card for a single person.",
      "id": "EnterpriseTopazSidekickPeopleAnswerPersonAnswerCard",
      "type": "object",
      "properties": {
        "header": {
          "description": "The header to display for the card.",
          "$ref": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader"
        },
        "subject": {
          "description": "The profile of the person that was the subject of the query.",
          "$ref": "EnterpriseTopazSidekickCommonPerson"
        },
        "statusMessage": {
          "description": "Localized user friendly message to display to the user in the case of missing data or an error.",
          "type": "string"
        },
        "answerText": {
          "description": "List of answers.",
          "$ref": "EnterpriseTopazSidekickAnswerAnswerList"
        },
        "disambiguationInfo": {
          "description": "Disambiguation information.",
          "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo"
        },
        "responseStatus": {
          "type": "string",
          "enumDescriptions": [
            "Unknown.",
            "Success.",
            "No such person was found in the user's domain.",
            "A person was found to match the query, but an answer could not be obtained."
          ],
          "enum": [
            "UNKNOWN",
            "SUCCESS",
            "MISSING_PERSON",
            "MISSING_DATA"
          ],
          "description": "The response status."
        },
        "answer": {
          "description": "List of answers.",
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "SafeHtmlProto"
          }
        }
      }
    },
    "DataSourceRestriction": {
      "description": "Restriction on Datasource.",
      "type": "object",
      "properties": {
        "filterOptions": {
          "description": "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.",
          "type": "array",
          "items": {
            "$ref": "FilterOptions"
          }
        },
        "source": {
          "$ref": "Source",
          "description": "The source of restriction."
        }
      },
      "id": "DataSourceRestriction"
    },
    "EnterpriseTopazSidekickCardMetadata": {
      "description": "Card metadata.",
      "type": "object",
      "properties": {
        "chronology": {
          "description": "Chronology.",
          "type": "string",
          "enumDescriptions": [
            "Unknown chronology (default).",
            "Past.",
            "Recently past.",
            "Present.",
            "Near future.",
            "Future."
          ],
          "enum": [
            "UNKNOWN",
            "PAST",
            "RECENTLY_PAST",
            "PRESENT",
            "NEAR_FUTURE",
            "FUTURE"
          ]
        },
        "nlpMetadata": {
          "$ref": "EnterpriseTopazSidekickNlpMetadata",
          "description": "Information about the NLP done to get the card."
        },
        "cardCategory": {
          "type": "string",
          "enumDescriptions": [
            "Let MSCR decide how this card should be packed. Most cards should choose this type. This type should largely be considered equivalent to ANSWER. However, this is not guaranteed to be the case as the request to MSCR may override the static configuration.",
            "This card should be rendered as an answer card.",
            "This card should be rendered as a knowledge card (a non-organic result).",
            "This card should be rendered in the Homepage."
          ],
          "enum": [
            "DEFAULT",
            "ANSWER",
            "KNOWLEDGE",
            "HOMEPAGE"
          ],
          "description": "Declares a preference for how this card should be packed in MSCR. All cards in a response must correspond to a single category. As a result, cards may be dropped from the response if this field is set. Any card that does not match the category of the card with the highest priority in the response will be dropped."
        },
        "renderMode": {
          "description": "Render mode.",
          "type": "string",
          "enumDescriptions": [
            "Unknown mode (default).",
            "Collapsed.",
            "Expanded."
          ],
          "enum": [
            "UNKNOWN_RENDER",
            "COLLAPSED",
            "EXPANDED"
          ]
        },
        "cardId": {
          "description": "An ID to identify the card and match actions to it. Be thoughtful of new card IDs since actions will be associated to that ID. E.g., if two card IDs collide, the system will think that the actions have been applied to the same card. Similarly, if EAS can return multiple cards of the same type (e.g., Meetings), ensure that the card_id identifies a given instance of the card so that, e.g., dismissals only affect the dismissed card as opposed to affecting all meeting cards.",
          "type": "string"
        },
        "rankingParams": {
          "$ref": "EnterpriseTopazSidekickRankingParams",
          "description": "Ranking params."
        },
        "debugInfo": {
          "description": "Debug info (only reported if request's debug_level \u003e 0).",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickCardMetadata"
    },
    "PhoneNumber": {
      "description": "A person's Phone Number",
      "id": "PhoneNumber",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "enum": [
            "OTHER",
            "MOBILE",
            "OFFICE"
          ]
        },
        "phoneNumber": {
          "description": "The phone number of the person.",
          "type": "string"
        }
      }
    },
    "SuggestResult": {
      "description": "One suggestion result.",
      "type": "object",
      "properties": {
        "source": {
          "description": "The source of the suggestion.",
          "$ref": "Source"
        },
        "querySuggestion": {
          "$ref": "QuerySuggestion",
          "description": "This field will be present if the suggested query is a word/phrase completion."
        },
        "peopleSuggestion": {
          "$ref": "PeopleSuggestion",
          "description": "This is present when the suggestion indicates a person. It contains more information about the person - like their email ID, name etc."
        },
        "suggestedQuery": {
          "description": "The suggested query that will be used for search, when the user clicks on the suggestion",
          "type": "string"
        }
      },
      "id": "SuggestResult"
    },
    "UpdateSchemaRequest": {
      "id": "UpdateSchemaRequest",
      "type": "object",
      "properties": {
        "validateOnly": {
          "description": "If true, the schema will be checked for validity, but will not be registered with the data source, even if valid.",
          "type": "boolean"
        },
        "schema": {
          "$ref": "Schema",
          "description": "The new schema for the source."
        },
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Common debug options."
        }
      }
    },
    "GetCustomerSearchApplicationStatsResponse": {
      "type": "object",
      "properties": {
        "averageSearchApplicationCount": {
          "type": "string",
          "format": "int64",
          "description": "Average search application count for the given date range."
        },
        "stats": {
          "type": "array",
          "items": {
            "$ref": "CustomerSearchApplicationStats"
          },
          "description": "Search application stats by date."
        }
      },
      "id": "GetCustomerSearchApplicationStatsResponse",
      "description": "Response format for search application stats for a customer."
    },
    "SpellResult": {
      "type": "object",
      "properties": {
        "suggestedQuery": {
          "description": "The suggested spelling of the query.",
          "type": "string"
        },
        "suggestionType": {
          "description": "Suggestion triggered for the current query.",
          "type": "string",
          "enumDescriptions": [
            "Default spell check type",
            "Spell suggestion without any results changed. The results are still shown for the original query (which has non zero / results) with a suggestion for spelling that would have results.",
            "Spell suggestion triggered when original query has no results. When the original query has no results, and spell suggestion has results we trigger results for the spell corrected query."
          ],
          "enum": [
            "SUGGESTION_TYPE_UNSPECIFIED",
            "NON_EMPTY_RESULTS_SPELL_SUGGESTION",
            "ZERO_RESULTS_FULL_PAGE_REPLACEMENT"
          ]
        },
        "suggestedQueryHtml": {
          "description": "The sanitized HTML representing the spell corrected query that can be used in the UI. This usually has language-specific tags to mark up parts of the query that are spell checked.",
          "$ref": "SafeHtmlProto"
        }
      },
      "id": "SpellResult"
    },
    "GetCustomerUserStatsResponse": {
      "id": "GetCustomerUserStatsResponse",
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "CustomerUserStats"
          }
        }
      }
    },
    "GSuitePrincipal": {
      "id": "GSuitePrincipal",
      "type": "object",
      "properties": {
        "gsuiteDomain": {
          "description": "This principal represents all users of the Google Workspace domain of the customer.",
          "type": "boolean"
        },
        "gsuiteGroupEmail": {
          "description": "This principal references a Google Workspace group name.",
          "type": "string"
        },
        "gsuiteUserEmail": {
          "description": "This principal references a Google Workspace user account.",
          "type": "string"
        }
      }
    },
    "ItemCountByStatus": {
      "id": "ItemCountByStatus",
      "type": "object",
      "properties": {
        "count": {
          "type": "string",
          "format": "int64",
          "description": "Number of items matching the status code."
        },
        "statusCode": {
          "description": "Status of the items.",
          "type": "string",
          "enumDescriptions": [
            "Input-only value. Used with Items.list to list all items in the queue, regardless of status.",
            "Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.",
            "Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.",
            "Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.",
            "API has accepted the up-to-date data of this item."
          ],
          "enum": [
            "CODE_UNSPECIFIED",
            "ERROR",
            "MODIFIED",
            "NEW_ITEM",
            "ACCEPTED"
          ]
        },
        "indexedItemsCount": {
          "description": "Number of items matching the status code for which billing is done. This excludes virtual container items from the total count. This count would not be applicable for items with ERROR or NEW_ITEM status code.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "PushItemRequest": {
      "type": "object",
      "properties": {
        "debugOptions": {
          "description": "Common debug options.",
          "$ref": "DebugOptions"
        },
        "item": {
          "$ref": "PushItem",
          "description": "Item to push onto the queue."
        },
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        }
      },
      "id": "PushItemRequest"
    },
    "ObjectOptions": {
      "id": "ObjectOptions",
      "type": "object",
      "properties": {
        "displayOptions": {
          "$ref": "ObjectDisplayOptions",
          "description": "The options that determine how the object is displayed in the Cloud Search results page."
        },
        "freshnessOptions": {
          "$ref": "FreshnessOptions",
          "description": "The freshness options for an object."
        },
        "suggestionFilteringOperators": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Operators that can be used to filter suggestions. For Suggest API, only operators mentioned here will be honored in the FilterOptions. Only TEXT and ENUM operators are supported. NOTE: \"objecttype\", \"type\" and \"mimetype\" are already supported. This property is to configure schema specific operators. Even though this is an array, only one operator can be specified. This is an array for future extensibility. Operators mapping to multiple properties within the same object are not supported. If the operator spans across different object types, this option has to be set once for each object definition."
        }
      },
      "description": "The options for an object."
    },
    "BooleanPropertyOptions": {
      "id": "BooleanPropertyOptions",
      "type": "object",
      "properties": {
        "operatorOptions": {
          "description": "If set, describes how the boolean should be used as a search operator.",
          "$ref": "BooleanOperatorOptions"
        }
      },
      "description": "The options for boolean properties."
    },
    "ThirdPartyGenericCard": {
      "id": "ThirdPartyGenericCard",
      "type": "object",
      "properties": {
        "cardId": {
          "description": "Unique identifier for the card.",
          "type": "string"
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "Priority of the card, where 0 is the highest priority."
        },
        "context": {
          "description": "[Required] Context where the card should be triggered.",
          "$ref": "Context"
        },
        "content": {
          "$ref": "Content",
          "description": "[Required] Card content."
        },
        "category": {
          "description": "Category that the card belongs to.",
          "type": "string"
        },
        "isDismissible": {
          "description": "Whether the card can be dismissed.",
          "type": "boolean"
        }
      }
    },
    "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents": {
      "description": "A list of events where all guests declined.",
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickAgendaEntry"
          }
        }
      },
      "id": "EnterpriseTopazSidekickGetAndKeepAheadCardProtoDeclinedEvents"
    },
    "Operation": {
      "type": "object",
      "properties": {
        "done": {
          "description": "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.",
          "type": "boolean"
        },
        "metadata": {
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "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.",
          "type": "object"
        },
        "name": {
          "description": "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}`.",
          "type": "string"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "response": {
          "description": "The normal, successful response of the operation. 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`.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        }
      },
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call."
    },
    "SearchApplicationSessionStats": {
      "type": "object",
      "properties": {
        "date": {
          "description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned.",
          "$ref": "Date"
        },
        "searchSessionsCount": {
          "description": "The count of search sessions on the day",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "SearchApplicationSessionStats"
    },
    "StructuredDataObject": {
      "type": "object",
      "properties": {
        "properties": {
          "description": "The properties for the object. The maximum number of elements is 1000.",
          "type": "array",
          "items": {
            "$ref": "NamedProperty"
          }
        }
      },
      "id": "StructuredDataObject",
      "description": "A structured data object consisting of named properties."
    },
    "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson": {
      "id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson",
      "type": "object",
      "properties": {
        "person": {
          "description": "The profile of this person.",
          "$ref": "EnterpriseTopazSidekickCommonPerson"
        },
        "query": {
          "description": "The query that can be used to produce an answer card with the same attribute, but for this person.",
          "type": "string"
        }
      },
      "description": "A person that also matches the query, but was not selected due to a lower affinity with the requesting user."
    },
    "StartUploadItemRequest": {
      "type": "object",
      "properties": {
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        },
        "debugOptions": {
          "$ref": "DebugOptions",
          "description": "Common debug options."
        }
      },
      "id": "StartUploadItemRequest",
      "description": "Start upload file request."
    },
    "ItemStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "enumDescriptions": [
            "Input-only value. Used with Items.list to list all items in the queue, regardless of status.",
            "Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.",
            "Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.",
            "Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.",
            "API has accepted the up-to-date data of this item."
          ],
          "enum": [
            "CODE_UNSPECIFIED",
            "ERROR",
            "MODIFIED",
            "NEW_ITEM",
            "ACCEPTED"
          ],
          "description": "Status code."
        },
        "processingErrors": {
          "description": "Error details in case the item is in ERROR state.",
          "type": "array",
          "items": {
            "$ref": "ProcessingError"
          }
        },
        "repositoryErrors": {
          "type": "array",
          "items": {
            "$ref": "RepositoryError"
          },
          "description": "Repository error reported by connector."
        }
      },
      "id": "ItemStatus",
      "description": "This contains item's status and any errors."
    },
    "ListDataSourceResponse": {
      "type": "object",
      "properties": {
        "sources": {
          "type": "array",
          "items": {
            "$ref": "DataSource"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      },
      "id": "ListDataSourceResponse"
    },
    "EnterpriseTopazSidekickAgendaEntry": {
      "description": "An AgendaEntry, e.g., a Calendar Event.",
      "id": "EnterpriseTopazSidekickAgendaEntry",
      "type": "object",
      "properties": {
        "notifyToUser": {
          "description": "Whether this should be notified to the user.",
          "type": "boolean"
        },
        "chronology": {
          "type": "string",
          "enumDescriptions": [
            "Stale.",
            "All day.",
            "Past.",
            "Recently past.",
            "Present.",
            "Near future.",
            "Future."
          ],
          "enum": [
            "STALE",
            "ALL_DAY",
            "PAST",
            "RECENTLY_PAST",
            "PRESENT",
            "NEAR_FUTURE",
            "FUTURE"
          ],
          "description": "The chronology from the present."
        },
        "document": {
          "description": "Items related to the current AgendaEntry. E.g., related drive/mail/groups documents.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonDocument"
          }
        },
        "lastModificationTimeMs": {
          "type": "string",
          "format": "int64",
          "description": "Last time the event was modified."
        },
        "isAllDay": {
          "description": "Whether the entry lasts all day.",
          "type": "boolean"
        },
        "timeZone": {
          "description": "User's calendar timezone;",
          "type": "string"
        },
        "creator": {
          "$ref": "EnterpriseTopazSidekickPerson",
          "description": "Person who created the event."
        },
        "hangoutUrl": {
          "description": "Absolute URL for the Hangout meeting.",
          "type": "string"
        },
        "guestsCanSeeGuests": {
          "description": "Whether the guests of the event can be seen. If false, the user is going to be reported as the only attendee to the meeting, even though there may be more attendees.",
          "type": "boolean"
        },
        "endTime": {
          "description": "End time (HH:mm) in the user's timezone.",
          "type": "string"
        },
        "showFullEventDetailsToUse": {
          "description": "Whether the details of this entry should be displayed to the user.",
          "type": "boolean"
        },
        "eventId": {
          "description": "Event id provided by Calendar API.",
          "type": "string"
        },
        "description": {
          "description": "Description of the agenda item (i.e., typically, summary in calendar event).",
          "type": "string"
        },
        "endTimeMs": {
          "description": "End time in milliseconds",
          "type": "string",
          "format": "int64"
        },
        "otherAttendeesExcluded": {
          "description": "Whether guest list is not returned because number of attendees is too large.",
          "type": "boolean"
        },
        "startTime": {
          "description": "Start time (HH:mm) in the user's timezone.",
          "type": "string"
        },
        "currentUserAttendingStatus": {
          "description": "Attendance status for the current user making the request. This is a convenience data member in order to avoid figuring out the same by iterating the invitee list above on the caller side.",
          "type": "string",
          "enumDescriptions": [
            "Awaiting for the user to set the status.",
            "Attending.",
            "Not attending.",
            "Tentatively attending."
          ],
          "enum": [
            "AWAITING",
            "YES",
            "NO",
            "MAYBE"
          ]
        },
        "requesterIsOwner": {
          "description": "Whether the requester is the owner of the agenda entry.",
          "type": "boolean"
        },
        "invitee": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickPerson"
          },
          "description": "People attending the meeting."
        },
        "location": {
          "description": "Agenda item location.",
          "type": "string"
        },
        "guestsCanInviteOthers": {
          "description": "Whether the guests can invite other guests.",
          "type": "boolean"
        },
        "startTimeMs": {
          "type": "string",
          "format": "int64",
          "description": "Start time in milliseconds."
        },
        "title": {
          "description": "Title of the agenda item.",
          "type": "string"
        },
        "guestsCanModify": {
          "description": "Whether the guests can modify the event.",
          "type": "boolean"
        },
        "startDate": {
          "description": "Start date \"Friday, August 26\" in the user's timezone.",
          "type": "string"
        },
        "agendaItemUrl": {
          "description": "URL of the agenda item.",
          "type": "string"
        },
        "endDate": {
          "description": "End date \"Friday, August 26\" in the user's timezone.",
          "type": "string"
        },
        "hangoutId": {
          "description": "Hangout meeting identifier.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickPersonalizedDocsCardProto": {
      "description": "Personalized docs card proto.",
      "type": "object",
      "properties": {
        "documentGroup": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickDocumentGroup"
          },
          "description": "Document group."
        }
      },
      "id": "EnterpriseTopazSidekickPersonalizedDocsCardProto"
    },
    "Snippet": {
      "description": "Snippet of the search result, which summarizes the content of the resulting page.",
      "type": "object",
      "properties": {
        "snippet": {
          "description": "The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.",
          "type": "string"
        },
        "matchRanges": {
          "type": "array",
          "items": {
            "$ref": "MatchRange"
          },
          "description": "The matched ranges in the snippet."
        }
      },
      "id": "Snippet"
    },
    "SourceCrowdingConfig": {
      "description": "Set search results crowding limits. Crowding is a situation in which multiple results from the same source or host \"crowd out\" other results, diminishing the quality of search for users. To foster better search quality and source diversity in search results, you can set a condition to reduce repetitive results by source.",
      "type": "object",
      "properties": {
        "numResults": {
          "description": "Maximum number of results allowed from a datasource in a result page as long as results from other sources are not exhausted. Value specified must not be negative. A default value is used if this value is equal to 0. To disable crowding, set the value greater than 100.",
          "type": "integer",
          "format": "int32"
        },
        "numSuggestions": {
          "description": "Maximum number of suggestions allowed from a source. No limits will be set on results if this value is less than or equal to 0.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "SourceCrowdingConfig"
    },
    "GetSearchApplicationUserStatsResponse": {
      "id": "GetSearchApplicationUserStatsResponse",
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "SearchApplicationUserStats"
          }
        }
      }
    },
    "DriveTimeSpanRestrict": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enumDescriptions": [
            "",
            "",
            "",
            "",
            "Not Enabled",
            "Not Enabled"
          ],
          "enum": [
            "UNSPECIFIED",
            "TODAY",
            "YESTERDAY",
            "LAST_7_DAYS",
            "LAST_30_DAYS",
            "LAST_90_DAYS"
          ]
        }
      },
      "id": "DriveTimeSpanRestrict",
      "description": "The time span search restrict (e.g. \"after:2017-09-11 before:2017-09-12\")."
    },
    "FieldViolation": {
      "type": "object",
      "properties": {
        "field": {
          "description": "Path of field with violation.",
          "type": "string"
        },
        "description": {
          "description": "The description of the error.",
          "type": "string"
        }
      },
      "id": "FieldViolation"
    },
    "FacetBucket": {
      "description": "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.",
      "type": "object",
      "properties": {
        "filter": {
          "description": "Filter to be passed in the search request if the corresponding bucket is selected.",
          "$ref": "Filter"
        },
        "count": {
          "type": "integer",
          "format": "int32",
          "description": "Number of results that match the bucket value. Counts are only returned for searches when count accuracy is ensured. Cloud Search does not guarantee facet counts for any query and facet counts might be present only intermittently, even for identical queries. Do not build dependencies on facet count existence; instead use facet ount percentages which are always returned."
        },
        "value": {
          "$ref": "Value"
        },
        "percentage": {
          "description": "Percent of results that match the bucket value. The returned value is between (0-100], and is rounded down to an integer if fractional. If the value is not explicitly returned, it represents a percentage value that rounds to 0. Percentages are returned for all searches, but are an estimate. Because percentages are always returned, you should render percentages instead of counts.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "FacetBucket"
    },
    "DebugOptions": {
      "description": "Shared request debug options for all cloudsearch RPC methods.",
      "type": "object",
      "properties": {
        "enableDebugging": {
          "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
          "type": "boolean"
        }
      },
      "id": "DebugOptions"
    },
    "HtmlOperatorOptions": {
      "id": "HtmlOperatorOptions",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *subjectLine* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator return all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        }
      },
      "description": "Used to provide a search operator for html properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched."
    },
    "Filter": {
      "description": "A generic way of expressing filters in a query, which supports two approaches: **1. Setting a ValueFilter.** The name must match an operator_name defined in the schema for your data source. **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.",
      "type": "object",
      "properties": {
        "valueFilter": {
          "$ref": "ValueFilter"
        },
        "compositeFilter": {
          "$ref": "CompositeFilter"
        }
      },
      "id": "Filter"
    },
    "EnterpriseTopazSidekickAgendaItem": {
      "type": "object",
      "properties": {
        "meeting": {
          "$ref": "EnterpriseTopazSidekickAgendaEntry"
        },
        "gapBefore": {
          "$ref": "EnterpriseTopazSidekickGap"
        },
        "conflictedGroup": {
          "$ref": "EnterpriseTopazSidekickConflictingEventsCardProto"
        }
      },
      "id": "EnterpriseTopazSidekickAgendaItem"
    },
    "EnterpriseTopazSidekickAgendaGroupCardProtoContext": {
      "description": "The context that resulted in the generation of the card.",
      "id": "EnterpriseTopazSidekickAgendaGroupCardProtoContext",
      "type": "object",
      "properties": {
        "context": {
          "description": "User friendly free text that describes the context of the card (e.g. \"Next meeting with Bob\"). This is largely only applicable when the card is generated from a query.",
          "type": "string"
        },
        "eventsRestrict": {
          "type": "string",
          "enumDescriptions": [
            "No specific event was requested.",
            "The next meeting was requested."
          ],
          "enum": [
            "NONE",
            "NEXT_MEETING"
          ],
          "description": "Represents restrictions applied to the events requested in the user's query."
        },
        "date": {
          "description": "Localized free text that describes the dates represented by the card. Currently, the card will only represent a single day.",
          "type": "string"
        }
      }
    },
    "ObjectDefinition": {
      "id": "ObjectDefinition",
      "type": "object",
      "properties": {
        "propertyDefinitions": {
          "type": "array",
          "items": {
            "$ref": "PropertyDefinition"
          },
          "description": "The property definitions for the object. The maximum number of elements is 1000."
        },
        "options": {
          "description": "The optional object-specific options.",
          "$ref": "ObjectOptions"
        },
        "name": {
          "description": "The 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.",
          "type": "string"
        }
      },
      "description": "The definition for an object within a data source."
    },
    "SearchItemsByViewUrlResponse": {
      "id": "SearchItemsByViewUrlResponse",
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "Item"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      }
    },
    "QuerySource": {
      "description": "List of sources that the user can search using the query API.",
      "id": "QuerySource",
      "type": "object",
      "properties": {
        "operators": {
          "description": "List of all operators applicable for this source.",
          "type": "array",
          "items": {
            "$ref": "QueryOperator"
          }
        },
        "source": {
          "$ref": "Source",
          "description": "The name of the source"
        },
        "displayName": {
          "description": "Display name of the data source.",
          "type": "string"
        },
        "shortName": {
          "description": "A short name or alias for the source. This value can be used with the 'source' operator.",
          "type": "string"
        }
      }
    },
    "ValueFilter": {
      "id": "ValueFilter",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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: 1. `operator_name`, where the query filters results by the property that matches the value. 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.",
          "type": "string"
        },
        "value": {
          "$ref": "Value",
          "description": "The value to be compared with."
        }
      }
    },
    "UploadItemRef": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the content reference. The maximum length is 2048 characters.",
          "type": "string"
        }
      },
      "id": "UploadItemRef",
      "description": "Represents an upload session reference. This reference is created via upload method. This reference is valid for 30 days after its creation. Updating of item content may refer to this uploaded content via contentDataRef."
    },
    "ListItemsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "Item"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      },
      "id": "ListItemsResponse"
    },
    "MapInfo": {
      "description": "Geo information used for rendering a map that shows the user's work location.",
      "id": "MapInfo",
      "type": "object",
      "properties": {
        "mapTile": {
          "type": "array",
          "items": {
            "$ref": "MapTile"
          },
          "description": "MapTiles for the area around a user's work location"
        },
        "locationUrl": {
          "$ref": "SafeUrlProto",
          "description": "URL to a view of a map centered on the user's work location in Campus Maps (for google.com) or Google Maps (external)."
        },
        "zoom": {
          "description": "The zoom level of the map. A constant zoom value of 18 is used for now to match the zoom of the map shown on a Moma Teams Profile page",
          "type": "integer",
          "format": "int32"
        },
        "long": {
          "type": "number",
          "format": "double",
          "description": "Longitude in degrees"
        },
        "lat": {
          "description": "Latitude in degrees",
          "type": "number",
          "format": "double"
        }
      }
    },
    "PollItemsRequest": {
      "type": "object",
      "properties": {
        "connectorName": {
          "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
          "type": "string"
        },
        "queue": {
          "description": "Queue name to fetch items from. If unspecified, PollItems will fetch from 'default' queue. The maximum length is 100 characters.",
          "type": "string"
        },
        "debugOptions": {
          "description": "Common debug options.",
          "$ref": "DebugOptions"
        },
        "statusCodes": {
          "description": "Limit the items polled to the ones with these statuses.",
          "type": "array",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Input-only value. Used with Items.list to list all items in the queue, regardless of status.",
              "Error encountered by Cloud Search while processing this item. Details of the error are in repositoryError.",
              "Item has been modified in the repository, and is out of date with the version previously accepted into Cloud Search.",
              "Item is known to exist in the repository, but is not yet accepted by Cloud Search. An item can be in this state when Items.push has been called for an item of this name that did not exist previously.",
              "API has accepted the up-to-date data of this item."
            ],
            "enum": [
              "CODE_UNSPECIFIED",
              "ERROR",
              "MODIFIED",
              "NEW_ITEM",
              "ACCEPTED"
            ]
          }
        },
        "limit": {
          "description": "Maximum number of items to return. The maximum value is 100 and the default value is 20.",
          "type": "integer",
          "format": "int32"
        }
      },
      "id": "PollItemsRequest"
    },
    "CustomerQueryStats": {
      "type": "object",
      "properties": {
        "queryCountByStatus": {
          "type": "array",
          "items": {
            "$ref": "QueryCountByStatus"
          }
        },
        "date": {
          "$ref": "Date",
          "description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned."
        }
      },
      "id": "CustomerQueryStats"
    },
    "InitializeCustomerRequest": {
      "id": "InitializeCustomerRequest",
      "type": "object",
      "properties": {},
      "description": "Request message for `InitializeCustomer` method."
    },
    "GetSearchApplicationQueryStatsResponse": {
      "id": "GetSearchApplicationQueryStatsResponse",
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "SearchApplicationQueryStats"
          },
          "description": "Query stats per date for a search application."
        },
        "totalQueryCount": {
          "description": "Total successful query count (status code 200) for the given date range.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "Response format for getting query stats for a search application between given dates."
    },
    "ListUnmappedIdentitiesResponse": {
      "id": "ListUnmappedIdentitiesResponse",
      "type": "object",
      "properties": {
        "unmappedIdentities": {
          "type": "array",
          "items": {
            "$ref": "UnmappedIdentity"
          }
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
          "type": "string"
        }
      }
    },
    "PeoplePromotionCard": {
      "type": "object",
      "properties": {
        "people": {
          "type": "array",
          "items": {
            "$ref": "PersonCore"
          }
        }
      },
      "id": "PeoplePromotionCard"
    },
    "TextPropertyOptions": {
      "type": "object",
      "properties": {
        "operatorOptions": {
          "$ref": "TextOperatorOptions",
          "description": "If set, describes how the property should be used as a search operator."
        },
        "retrievalImportance": {
          "description": "Indicates the search quality importance of the tokens within the field when used for retrieval.",
          "$ref": "RetrievalImportance"
        }
      },
      "id": "TextPropertyOptions",
      "description": "The options for text properties."
    },
    "ErrorInfo": {
      "id": "ErrorInfo",
      "type": "object",
      "properties": {
        "errorMessages": {
          "type": "array",
          "items": {
            "$ref": "ErrorMessage"
          }
        }
      },
      "description": "Error information about the response."
    },
    "EnterpriseTopazSidekickRecentDocumentsCardProto": {
      "id": "EnterpriseTopazSidekickRecentDocumentsCardProto",
      "type": "object",
      "properties": {
        "document": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickCommonDocument"
          }
        }
      }
    },
    "EnterpriseTopazSidekickAgendaGroupCardProto": {
      "id": "EnterpriseTopazSidekickAgendaGroupCardProto",
      "type": "object",
      "properties": {
        "agendaItem": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickAgendaItem"
          }
        },
        "currentAgendaItem": {
          "$ref": "EnterpriseTopazSidekickAgendaItem"
        },
        "context": {
          "$ref": "EnterpriseTopazSidekickAgendaGroupCardProtoContext"
        }
      }
    },
    "TextValues": {
      "description": "List of text values.",
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The maximum allowable length for text values is 2048 characters."
        }
      },
      "id": "TextValues"
    },
    "EnterpriseTopazSidekickScheduledMeeting": {
      "description": "Details about scheduled meetings.",
      "type": "object",
      "properties": {
        "meetingTime": {
          "$ref": "EnterpriseTopazSidekickTimeSlot",
          "description": "The meeting time slot."
        },
        "meetingLocation": {
          "description": "The meeting location.",
          "type": "string"
        },
        "meetingTitle": {
          "description": "The meeting title.",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickScheduledMeeting"
    },
    "VPCSettings": {
      "id": "VPCSettings",
      "type": "object",
      "properties": {
        "project": {
          "description": "The resource name of the GCP Project to be used for VPC SC policy check. VPC security settings on this project will be honored for Cloud Search APIs after project_name has been updated through CustomerService. Format: projects/{project_id}",
          "type": "string"
        }
      }
    },
    "CustomerUserStats": {
      "id": "CustomerUserStats",
      "type": "object",
      "properties": {
        "date": {
          "$ref": "Date",
          "description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned."
        },
        "thirtyDaysActiveUsersCount": {
          "description": "The count of unique active users in the past thirty days",
          "type": "string",
          "format": "int64"
        },
        "oneDayActiveUsersCount": {
          "description": "The count of unique active users in the past one day",
          "type": "string",
          "format": "int64"
        },
        "sevenDaysActiveUsersCount": {
          "description": "The count of unique active users in the past seven days",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "EnterpriseTopazSidekickFindMeetingTimeCardProto": {
      "type": "object",
      "properties": {
        "requester": {
          "$ref": "EnterpriseTopazSidekickPerson",
          "description": "Requester."
        },
        "commonAvailableTimeSlots": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickTimeSlot"
          },
          "description": "Slots when all attendees have availability."
        },
        "timezoneId": {
          "description": "Timezone ID.",
          "type": "string"
        },
        "timeBoundaries": {
          "$ref": "EnterpriseTopazSidekickTimeSlot",
          "description": "Min and max timestamp used to find a common available timeslot."
        },
        "skippedInvitees": {
          "description": "Invitees that have been skipped in the computation, most likely because they are groups.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickPerson"
          }
        },
        "invitees": {
          "description": "Invitees to the event.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickPerson"
          }
        },
        "scheduledMeeting": {
          "description": "Details about the scheduled meeting, if one exists.",
          "$ref": "EnterpriseTopazSidekickScheduledMeeting"
        }
      },
      "id": "EnterpriseTopazSidekickFindMeetingTimeCardProto",
      "description": "Response to find meeting time among a set of people."
    },
    "Metaline": {
      "type": "object",
      "properties": {
        "properties": {
          "description": "The list of displayed properties for the metaline. The maximum number of properties is 5.",
          "type": "array",
          "items": {
            "$ref": "DisplayedProperty"
          }
        }
      },
      "id": "Metaline",
      "description": "A metaline is a list of properties that are displayed along with the search result to provide context."
    },
    "TimestampOperatorOptions": {
      "description": "Used to provide a search operator for timestamp properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.",
      "id": "TimestampOperatorOptions",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *closeDate* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        },
        "greaterThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *closeDate* is later than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        },
        "lessThanOperatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *closeDate* is earlier than *\u003cvalue\u003e*. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo": {
      "description": "Metadata for disambiguation.",
      "id": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfo",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name that was extracted from the query. This may be in the form of the given name, last name, full name, LDAP, or email address. This name can be considered suitable for displaying to the user and can largely be considered to be normalized (e.g. \"Bob's\" -\u003e \"Bob\").",
          "type": "string"
        },
        "disambiguation": {
          "description": "A list of people that also matched the query. This list is not complete.",
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickPeopleAnswerDisambiguationInfoDisambiguationPerson"
          }
        }
      }
    },
    "GetDataSourceIndexStatsResponse": {
      "type": "object",
      "properties": {
        "stats": {
          "type": "array",
          "items": {
            "$ref": "DataSourceIndexStats"
          },
          "description": "Summary of indexed item counts, one for each day in the requested range."
        },
        "averageIndexedItemCount": {
          "description": "Average item count for the given date range for which billing is done.",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "GetDataSourceIndexStatsResponse"
    },
    "HtmlPropertyOptions": {
      "type": "object",
      "properties": {
        "retrievalImportance": {
          "$ref": "RetrievalImportance",
          "description": "Indicates the search quality importance of the tokens within the field when used for retrieval. Can only be set to DEFAULT or NONE."
        },
        "operatorOptions": {
          "description": "If set, describes how the property should be used as a search operator.",
          "$ref": "HtmlOperatorOptions"
        }
      },
      "id": "HtmlPropertyOptions",
      "description": "The options for html properties."
    },
    "MapTile": {
      "type": "object",
      "properties": {
        "tileX": {
          "type": "number",
          "format": "double",
          "description": "Map tile x coordinate"
        },
        "imageUrl": {
          "description": "URL to an image file containing an office layout of the user's location for their organization, if one is available. For google.com, this image is from Corp Campus Maps.",
          "$ref": "SafeUrlProto"
        },
        "tileY": {
          "type": "number",
          "format": "double",
          "description": "Map tile y coordinate"
        }
      },
      "id": "MapTile",
      "description": "Information used to render a map tile image in the proper location on a map."
    },
    "Photo": {
      "id": "Photo",
      "type": "object",
      "properties": {
        "url": {
          "description": "The URL of the photo.",
          "type": "string"
        }
      },
      "description": "A person's photo."
    },
    "CustomerSessionStats": {
      "type": "object",
      "properties": {
        "date": {
          "description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned.",
          "$ref": "Date"
        },
        "searchSessionsCount": {
          "description": "The count of search sessions on the day",
          "type": "string",
          "format": "int64"
        }
      },
      "id": "CustomerSessionStats"
    },
    "DisplayedProperty": {
      "type": "object",
      "properties": {
        "propertyName": {
          "description": "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.",
          "type": "string"
        }
      },
      "id": "DisplayedProperty",
      "description": "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."
    },
    "IntegerPropertyOptions": {
      "id": "IntegerPropertyOptions",
      "type": "object",
      "properties": {
        "minimumValue": {
          "description": "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.",
          "type": "string",
          "format": "int64"
        },
        "maximumValue": {
          "type": "string",
          "format": "int64",
          "description": "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."
        },
        "orderedRanking": {
          "type": "string",
          "enumDescriptions": [
            "There is no ranking order for the property. Results are not adjusted by this property's value.",
            "This property is ranked in ascending order. Lower values indicate lower ranking.",
            "This property is ranked in descending order. Lower values indicate higher ranking."
          ],
          "enum": [
            "NO_ORDER",
            "ASCENDING",
            "DESCENDING"
          ],
          "description": "Used to specify the ordered ranking for the integer. Can only be used if isRepeatable is false."
        },
        "integerFacetingOptions": {
          "description": "If set, describes integer faceting options for the given integer property. The corresponding integer property should be marked isFacetable.",
          "$ref": "IntegerFacetingOptions"
        },
        "operatorOptions": {
          "description": "If set, describes how the integer should be used as a search operator.",
          "$ref": "IntegerOperatorOptions"
        }
      },
      "description": "The options for integer properties."
    },
    "Status": {
      "id": "Status",
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        },
        "message": {
          "description": "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.",
          "type": "string"
        }
      },
      "description": "The `Status` type defines a logical error model that is suitable for 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)."
    },
    "AuditLoggingSettings": {
      "description": "Represents the settings for Cloud audit logging",
      "id": "AuditLoggingSettings",
      "type": "object",
      "properties": {
        "project": {
          "description": "The resource name of the GCP Project to store audit logs. Cloud audit logging will be enabled after project_name has been updated through CustomerService. Format: projects/{project_id}",
          "type": "string"
        },
        "logAdminReadActions": {
          "description": "Indicates whether audit logging is on/off for admin activity read APIs i.e. Get/List DataSources, Get/List SearchApplications etc.",
          "type": "boolean"
        },
        "logDataWriteActions": {
          "description": "Indicates whether audit logging is on/off for data access write APIs i.e. IndexItem etc.",
          "type": "boolean"
        },
        "logDataReadActions": {
          "description": "Indicates whether audit logging is on/off for data access read APIs i.e. ListItems, GetItem etc.",
          "type": "boolean"
        }
      }
    },
    "EnterpriseTopazSidekickDocumentPerCategoryList": {
      "type": "object",
      "properties": {
        "helpMessage": {
          "description": "Localized message explaining how the documents were derived (e.g. from the last 30 days activity). This field is optional.",
          "type": "string"
        },
        "listType": {
          "type": "string",
          "enumDescriptions": [
            "",
            "All documents in the list correspond to one of the mention categories.",
            "All documents in the list correspond to one of the share categories.",
            "A mixture of document categories that correspond to documents that need the users attention (e.g. documents that have been explicitly shared with the user but have not been viewed and documents where the user was mentioned but has not replied).",
            "All documents in the list correspond to one of the view categories.",
            "All documents in the list correspond to one of the edit categories."
          ],
          "enum": [
            "UNKNOWN_LIST_TYPE",
            "MENTIONS",
            "SHARES",
            "NEEDS_ATTENTION",
            "VIEWS",
            "EDITS"
          ]
        },
        "responseMessage": {
          "description": "Response message in case no documents are present in the card.",
          "type": "string"
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "EnterpriseTopazSidekickDocumentPerCategoryListDocumentPerCategoryListEntry"
          }
        },
        "listTypeDescription": {
          "description": "Description of the types of documents present in the list.",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickDocumentPerCategoryList"
    },
    "EnterpriseTopazSidekickTimeSlot": {
      "description": "Slot of time.",
      "id": "EnterpriseTopazSidekickTimeSlot",
      "type": "object",
      "properties": {
        "endTimeInMillis": {
          "type": "string",
          "format": "int64",
          "description": "End time in milliseconds."
        },
        "endTimeDay": {
          "description": "Day end time at the user's timezone.",
          "type": "string"
        },
        "startTimeInMillis": {
          "description": "Start time in milliseconds.",
          "type": "string",
          "format": "int64"
        },
        "startTimeHourAndMinute": {
          "description": "Hour and minute of the start time at the user's timezone.",
          "type": "string"
        },
        "endTimeHourAndMinute": {
          "description": "Hour and minute of the end time at the user's timezone.",
          "type": "string"
        },
        "startTimeDay": {
          "description": "Day start time at user's timezone.",
          "type": "string"
        }
      }
    },
    "EnumOperatorOptions": {
      "description": "Used to provide a search operator for enum properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched. For example, if you provide no operator for a *priority* enum property with possible values *p0* and *p1*, a query that contains the term *p0* returns items that have *p0* as the value of the *priority* property, as well as any items that contain the string *p0* in other fields. If you provide an operator name for the enum, such as *priority*, then search users can use that operator to refine results to only items that have *p0* as this property's value, with the query *priority:p0*.",
      "id": "EnumOperatorOptions",
      "type": "object",
      "properties": {
        "operatorName": {
          "description": "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:\u003cvalue\u003e* show results only where the value of the property named *priorityVal* matches *\u003cvalue\u003e*. By contrast, a search that uses the same *\u003cvalue\u003e* without an operator returns all items where *\u003cvalue\u003e* 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.",
          "type": "string"
        }
      }
    },
    "EnterpriseTopazSidekickGenericAnswerCard": {
      "type": "object",
      "properties": {
        "title": {
          "description": "Title or header of the card.",
          "type": "string"
        },
        "answer": {
          "description": "The answer.",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickGenericAnswerCard"
    },
    "DateValues": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "Date"
          }
        }
      },
      "id": "DateValues",
      "description": "List of date values."
    },
    "RemoveActivityRequest": {
      "id": "RemoveActivityRequest",
      "type": "object",
      "properties": {
        "userActivity": {
          "$ref": "UserActivity",
          "description": "User Activity containing the data to be deleted."
        },
        "requestOptions": {
          "description": "Request options, such as the search application and clientId.",
          "$ref": "RequestOptions"
        }
      },
      "description": "Remove Logged Activity Request."
    },
    "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader": {
      "description": "Recommended header to display for the card.",
      "type": "object",
      "properties": {
        "title": {
          "description": "The suggested title to display. This defaults to the user's query.",
          "type": "string"
        }
      },
      "id": "EnterpriseTopazSidekickPeopleAnswerPeopleAnswerCardHeader"
    }
  },
  "resources": {
    "debug": {
      "resources": {
        "identitysources": {
          "resources": {
            "unmappedids": {
              "methods": {
                "list": {
                  "flatPath": "v1/debug/identitysources/{identitysourcesId}/unmappedids",
                  "id": "cloudsearch.debug.identitysources.unmappedids.list",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ListUnmappedIdentitiesResponse"
                  },
                  "path": "v1/debug/{+parent}/unmappedids",
                  "parameters": {
                    "resolutionStatusCode": {
                      "description": "Limit users selection to this status.",
                      "type": "string",
                      "enumDescriptions": [
                        "Input-only value. Used to list all unmapped identities regardless of status.",
                        "The unmapped identity was not found in IDaaS, and needs to be provided by the user.",
                        "The identity source associated with the identity was either not found or deleted.",
                        "IDaaS does not understand the identity source, probably because the schema was modified in a non compatible way.",
                        "The number of users associated with the external identity is too large.",
                        "Internal error."
                      ],
                      "enum": [
                        "CODE_UNSPECIFIED",
                        "NOT_FOUND",
                        "IDENTITY_SOURCE_NOT_FOUND",
                        "IDENTITY_SOURCE_MISCONFIGURED",
                        "TOO_MANY_MAPPINGS_FOUND",
                        "INTERNAL_ERROR"
                      ],
                      "location": "query"
                    },
                    "debugOptions.enableDebugging": {
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "parent": {
                      "pattern": "^identitysources/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "The name of the identity source, in the following format: identitysources/{source_id}"
                    },
                    "pageToken": {
                      "description": "The next_page_token value returned from a previous List request, if any.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Maximum number of items to fetch in a request. Defaults to 100.",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Lists unmapped user identities for an identity source. **Note:** This API requires an admin account to execute.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.debug"
                  ]
                }
              }
            },
            "items": {
              "methods": {
                "listForunmappedidentity": {
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ListItemNamesForUnmappedIdentityResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.debug"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Lists names of items associated with an unmapped identity. **Note:** This API requires an admin account to execute.",
                  "parameters": {
                    "pageSize": {
                      "description": "Maximum number of items to fetch in a request. Defaults to 100.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "groupResourceName": {
                      "location": "query",
                      "type": "string"
                    },
                    "userResourceName": {
                      "location": "query",
                      "type": "string"
                    },
                    "debugOptions.enableDebugging": {
                      "type": "boolean",
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query"
                    },
                    "parent": {
                      "description": "The name of the identity source, in the following format: identitysources/{source_id}}",
                      "type": "string",
                      "pattern": "^identitysources/[^/]+$",
                      "location": "path",
                      "required": true
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "The next_page_token value returned from a previous List request, if any.",
                      "location": "query"
                    }
                  },
                  "path": "v1/debug/{+parent}/items:forunmappedidentity",
                  "flatPath": "v1/debug/identitysources/{identitysourcesId}/items:forunmappedidentity",
                  "id": "cloudsearch.debug.identitysources.items.listForunmappedidentity"
                }
              }
            }
          }
        },
        "datasources": {
          "resources": {
            "items": {
              "methods": {
                "searchByViewUrl": {
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "SearchItemsByViewUrlRequest"
                  },
                  "response": {
                    "$ref": "SearchItemsByViewUrlResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.debug"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Fetches the item whose viewUrl exactly matches that of the URL provided in the request. **Note:** This API requires an admin account to execute.",
                  "parameters": {
                    "name": {
                      "description": "Source name, format: datasources/{source_id}",
                      "type": "string",
                      "pattern": "^datasources/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "path": "v1/debug/{+name}/items:searchByViewUrl",
                  "flatPath": "v1/debug/datasources/{datasourcesId}/items:searchByViewUrl",
                  "id": "cloudsearch.debug.datasources.items.searchByViewUrl"
                },
                "checkAccess": {
                  "path": "v1/debug/{+name}:checkAccess",
                  "parameters": {
                    "name": {
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "Item name, format: datasources/{source_id}/items/{item_id}"
                    },
                    "debugOptions.enableDebugging": {
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Checks whether an item is accessible by specified principal. Principal must be a user; groups and domain values aren't supported. **Note:** This API requires an admin account to execute.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.debug"
                  ],
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "Principal"
                  },
                  "response": {
                    "$ref": "CheckAccessResponse"
                  },
                  "id": "cloudsearch.debug.datasources.items.checkAccess",
                  "flatPath": "v1/debug/datasources/{datasourcesId}/items/{itemsId}:checkAccess"
                }
              },
              "resources": {
                "unmappedids": {
                  "methods": {
                    "list": {
                      "flatPath": "v1/debug/datasources/{datasourcesId}/items/{itemsId}/unmappedids",
                      "id": "cloudsearch.debug.datasources.items.unmappedids.list",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListUnmappedIdentitiesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud_search",
                        "https://www.googleapis.com/auth/cloud_search.debug"
                      ],
                      "parameterOrder": [
                        "parent"
                      ],
                      "description": "List all unmapped identities for a specific item. **Note:** This API requires an admin account to execute.",
                      "parameters": {
                        "parent": {
                          "pattern": "^datasources/[^/]+/items/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "description": "The name of the item, in the following format: datasources/{source_id}/items/{ID}"
                        },
                        "pageToken": {
                          "type": "string",
                          "description": "The next_page_token value returned from a previous List request, if any.",
                          "location": "query"
                        },
                        "pageSize": {
                          "type": "integer",
                          "format": "int32",
                          "description": "Maximum number of items to fetch in a request. Defaults to 100.",
                          "location": "query"
                        },
                        "debugOptions.enableDebugging": {
                          "type": "boolean",
                          "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                          "location": "query"
                        }
                      },
                      "path": "v1/debug/{+parent}/unmappedids"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "settings": {
      "methods": {
        "getCustomer": {
          "id": "cloudsearch.settings.getCustomer",
          "flatPath": "v1/settings/customer",
          "path": "v1/settings/customer",
          "parameters": {},
          "parameterOrder": [],
          "description": "Get customer settings. **Note:** This API requires an admin account to execute.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.settings",
            "https://www.googleapis.com/auth/cloud_search.settings.indexing"
          ],
          "httpMethod": "GET",
          "response": {
            "$ref": "CustomerSettings"
          }
        },
        "updateCustomer": {
          "flatPath": "v1/settings/customer",
          "id": "cloudsearch.settings.updateCustomer",
          "httpMethod": "PATCH",
          "request": {
            "$ref": "CustomerSettings"
          },
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.settings",
            "https://www.googleapis.com/auth/cloud_search.settings.indexing"
          ],
          "parameterOrder": [],
          "description": "Update customer settings. **Note:** This API requires an admin account to execute.",
          "parameters": {
            "updateMask": {
              "type": "string",
              "format": "google-fieldmask",
              "description": "Update mask to control which fields get updated. If you specify a field in the update_mask but don't specify its value here, that field will be cleared. If the mask is not present or empty, all fields will be updated. Currently supported field paths: vpc_settings and audit_logging_settings",
              "location": "query"
            }
          },
          "path": "v1/settings/customer"
        }
      },
      "resources": {
        "searchapplications": {
          "methods": {
            "patch": {
              "httpMethod": "PATCH",
              "request": {
                "$ref": "SearchApplication"
              },
              "response": {
                "$ref": "Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Updates a search application. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "path": "v1/settings/{+name}",
              "parameters": {
                "name": {
                  "description": "The name of the Search Application. Format: searchapplications/{application_id}.",
                  "type": "string",
                  "pattern": "^searchapplications/[^/]+$",
                  "location": "path",
                  "required": true
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.",
                  "location": "query"
                }
              },
              "flatPath": "v1/settings/searchapplications/{searchapplicationsId}",
              "id": "cloudsearch.settings.searchapplications.patch"
            },
            "create": {
              "id": "cloudsearch.settings.searchapplications.create",
              "flatPath": "v1/settings/searchapplications",
              "parameters": {},
              "path": "v1/settings/searchapplications",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "parameterOrder": [],
              "description": "Creates a search application. **Note:** This API requires an admin account to execute.",
              "httpMethod": "POST",
              "request": {
                "$ref": "SearchApplication"
              },
              "response": {
                "$ref": "Operation"
              }
            },
            "update": {
              "id": "cloudsearch.settings.searchapplications.update",
              "flatPath": "v1/settings/searchapplications/{searchapplicationsId}",
              "parameters": {
                "name": {
                  "pattern": "^searchapplications/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "The name of the Search Application. Format: searchapplications/{application_id}.",
                  "type": "string"
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.",
                  "location": "query"
                }
              },
              "path": "v1/settings/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Updates a search application. **Note:** This API requires an admin account to execute.",
              "httpMethod": "PUT",
              "request": {
                "$ref": "SearchApplication"
              },
              "response": {
                "$ref": "Operation"
              }
            },
            "list": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "parameterOrder": [],
              "description": "Lists all search applications. **Note:** This API requires an admin account to execute.",
              "parameters": {
                "pageToken": {
                  "description": "The next_page_token value returned from a previous List request, if any. The default value is 10",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "type": "integer",
                  "format": "int32",
                  "description": "The maximum number of items to return.",
                  "location": "query"
                },
                "debugOptions.enableDebugging": {
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query",
                  "type": "boolean"
                }
              },
              "path": "v1/settings/searchapplications",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListSearchApplicationsResponse"
              },
              "id": "cloudsearch.settings.searchapplications.list",
              "flatPath": "v1/settings/searchapplications"
            },
            "reset": {
              "flatPath": "v1/settings/searchapplications/{searchapplicationsId}:reset",
              "id": "cloudsearch.settings.searchapplications.reset",
              "httpMethod": "POST",
              "request": {
                "$ref": "ResetSearchApplicationRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Resets a search application to default settings. This will return an empty response. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "path": "v1/settings/{+name}:reset",
              "parameters": {
                "name": {
                  "required": true,
                  "pattern": "^searchapplications/[^/]+$",
                  "location": "path",
                  "type": "string",
                  "description": "The name of the search application to be reset. Format: applications/{application_id}."
                }
              }
            },
            "get": {
              "path": "v1/settings/{+name}",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the search application. Format: searchapplications/{application_id}.",
                  "required": true,
                  "pattern": "^searchapplications/[^/]+$",
                  "location": "path"
                },
                "debugOptions.enableDebugging": {
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query",
                  "type": "boolean"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Gets the specified search application. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "httpMethod": "GET",
              "response": {
                "$ref": "SearchApplication"
              },
              "id": "cloudsearch.settings.searchapplications.get",
              "flatPath": "v1/settings/searchapplications/{searchapplicationsId}"
            },
            "delete": {
              "id": "cloudsearch.settings.searchapplications.delete",
              "flatPath": "v1/settings/searchapplications/{searchapplicationsId}",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the search application to be deleted. Format: applications/{application_id}.",
                  "required": true,
                  "pattern": "^searchapplications/[^/]+$",
                  "location": "path"
                },
                "debugOptions.enableDebugging": {
                  "type": "boolean",
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query"
                }
              },
              "path": "v1/settings/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes a search application. **Note:** This API requires an admin account to execute.",
              "httpMethod": "DELETE",
              "response": {
                "$ref": "Operation"
              }
            }
          }
        },
        "datasources": {
          "methods": {
            "patch": {
              "flatPath": "v1/settings/datasources/{datasourcesId}",
              "id": "cloudsearch.settings.datasources.patch",
              "httpMethod": "PATCH",
              "request": {
                "$ref": "DataSource"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Updates a datasource. **Note:** This API requires an admin account to execute.",
              "parameters": {
                "updateMask": {
                  "description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.",
                  "location": "query",
                  "type": "string",
                  "format": "google-fieldmask"
                },
                "name": {
                  "required": true,
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.",
                  "type": "string"
                },
                "debugOptions.enableDebugging": {
                  "type": "boolean",
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query"
                }
              },
              "path": "v1/settings/{+name}"
            },
            "create": {
              "httpMethod": "POST",
              "request": {
                "$ref": "DataSource"
              },
              "response": {
                "$ref": "Operation"
              },
              "path": "v1/settings/datasources",
              "parameters": {},
              "parameterOrder": [],
              "description": "Creates a datasource. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "flatPath": "v1/settings/datasources",
              "id": "cloudsearch.settings.datasources.create"
            },
            "update": {
              "id": "cloudsearch.settings.datasources.update",
              "flatPath": "v1/settings/datasources/{datasourcesId}",
              "path": "v1/settings/{+name}",
              "parameters": {
                "name": {
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "required": true,
                  "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Updates a datasource. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "httpMethod": "PUT",
              "request": {
                "$ref": "UpdateDataSourceRequest"
              },
              "response": {
                "$ref": "Operation"
              }
            },
            "delete": {
              "httpMethod": "DELETE",
              "response": {
                "$ref": "Operation"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "description": "The name of the datasource. Format: datasources/{source_id}.",
                  "type": "string"
                },
                "debugOptions.enableDebugging": {
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query",
                  "type": "boolean"
                }
              },
              "path": "v1/settings/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes a datasource. **Note:** This API requires an admin account to execute.",
              "flatPath": "v1/settings/datasources/{datasourcesId}",
              "id": "cloudsearch.settings.datasources.delete"
            },
            "get": {
              "id": "cloudsearch.settings.datasources.get",
              "flatPath": "v1/settings/datasources/{datasourcesId}",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Gets a datasource. **Note:** This API requires an admin account to execute.",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "The name of the datasource resource. Format: datasources/{source_id}.",
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "required": true
                },
                "debugOptions.enableDebugging": {
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query",
                  "type": "boolean"
                }
              },
              "path": "v1/settings/{+name}",
              "httpMethod": "GET",
              "response": {
                "$ref": "DataSource"
              }
            },
            "list": {
              "flatPath": "v1/settings/datasources",
              "id": "cloudsearch.settings.datasources.list",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListDataSourceResponse"
              },
              "path": "v1/settings/datasources",
              "parameters": {
                "pageToken": {
                  "type": "string",
                  "description": "Starting index of the results.",
                  "location": "query"
                },
                "pageSize": {
                  "description": "Maximum number of datasources to fetch in a request. The max value is 1000. The default value is 1000.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "debugOptions.enableDebugging": {
                  "type": "boolean",
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query"
                }
              },
              "parameterOrder": [],
              "description": "Lists datasources. **Note:** This API requires an admin account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ]
            }
          }
        }
      }
    },
    "v1": {
      "methods": {
        "initializeCustomer": {
          "parameters": {},
          "path": "v1:initializeCustomer",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.settings",
            "https://www.googleapis.com/auth/cloud_search.settings.indexing"
          ],
          "parameterOrder": [],
          "description": "Enables `third party` support in Google Cloud Search. **Note:** This API requires an admin account to execute.",
          "httpMethod": "POST",
          "request": {
            "$ref": "InitializeCustomerRequest"
          },
          "response": {
            "$ref": "Operation"
          },
          "id": "cloudsearch.initializeCustomer",
          "flatPath": "v1:initializeCustomer"
        }
      }
    },
    "indexing": {
      "resources": {
        "datasources": {
          "methods": {
            "getSchema": {
              "flatPath": "v1/indexing/datasources/{datasourcesId}/schema",
              "id": "cloudsearch.indexing.datasources.getSchema",
              "httpMethod": "GET",
              "response": {
                "$ref": "Schema"
              },
              "parameters": {
                "name": {
                  "required": true,
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "type": "string",
                  "description": "The name of the data source to get Schema. Format: datasources/{source_id}"
                },
                "debugOptions.enableDebugging": {
                  "type": "boolean",
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query"
                }
              },
              "path": "v1/indexing/{+name}/schema",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Gets the schema of a data source. **Note:** This API requires an admin or service account to execute."
            },
            "updateSchema": {
              "httpMethod": "PUT",
              "request": {
                "$ref": "UpdateSchemaRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "parameters": {
                "name": {
                  "description": "The name of the data source to update Schema. Format: datasources/{source_id}",
                  "type": "string",
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "required": true
                }
              },
              "path": "v1/indexing/{+name}/schema",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "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.",
              "flatPath": "v1/indexing/datasources/{datasourcesId}/schema",
              "id": "cloudsearch.indexing.datasources.updateSchema"
            },
            "deleteSchema": {
              "path": "v1/indexing/{+name}/schema",
              "parameters": {
                "name": {
                  "pattern": "^datasources/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string",
                  "description": "The name of the data source to delete Schema. Format: datasources/{source_id}"
                },
                "debugOptions.enableDebugging": {
                  "type": "boolean",
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "description": "Deletes the schema of a data source. **Note:** This API requires an admin or service account to execute.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing"
              ],
              "httpMethod": "DELETE",
              "response": {
                "$ref": "Operation"
              },
              "id": "cloudsearch.indexing.datasources.deleteSchema",
              "flatPath": "v1/indexing/datasources/{datasourcesId}/schema"
            }
          },
          "resources": {
            "items": {
              "methods": {
                "index": {
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "IndexItemRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Updates Item ACL, metadata, and content. It will insert the Item if it does not exist. This method does not support partial updates. Fields with no provided values are cleared out in the Cloud Search index. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "parameters": {
                    "name": {
                      "description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.",
                      "type": "string",
                      "required": true,
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path"
                    }
                  },
                  "path": "v1/indexing/{+name}:index",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:index",
                  "id": "cloudsearch.indexing.datasources.items.index"
                },
                "deleteQueueItems": {
                  "id": "cloudsearch.indexing.datasources.items.deleteQueueItems",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items:deleteQueueItems",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Deletes all items in a queue. This method is useful for deleting stale items. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^datasources/[^/]+$",
                      "location": "path",
                      "description": "The name of the Data Source to delete items in a queue. Format: datasources/{source_id}",
                      "type": "string"
                    }
                  },
                  "path": "v1/indexing/{+name}/items:deleteQueueItems",
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "DeleteQueueItemsRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "unreserve": {
                  "id": "cloudsearch.indexing.datasources.items.unreserve",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items:unreserve",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Unreserves all items from a queue, making them all eligible to be polled. This method is useful for resetting the indexing queue after a connector has been restarted. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "path": "v1/indexing/{+name}/items:unreserve",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^datasources/[^/]+$",
                      "location": "path",
                      "description": "The name of the Data Source to unreserve all items. Format: datasources/{source_id}",
                      "type": "string"
                    }
                  },
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "UnreserveItemsRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "poll": {
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "PollItemsRequest"
                  },
                  "response": {
                    "$ref": "PollItemsResponse"
                  },
                  "parameters": {
                    "name": {
                      "description": "The name of the Data Source to poll items. Format: datasources/{source_id}",
                      "type": "string",
                      "required": true,
                      "pattern": "^datasources/[^/]+$",
                      "location": "path"
                    }
                  },
                  "path": "v1/indexing/{+name}/items:poll",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Polls for unreserved items from the indexing queue and marks a set as reserved, starting with items that have the oldest timestamp from the highest priority ItemStatus. The priority order is as follows: ERROR MODIFIED NEW_ITEM ACCEPTED Reserving items ensures that polling from other threads cannot create overlapping sets. After handling the reserved items, the client should put items back into the unreserved state, either by calling index, or by calling push with the type REQUEUE. Items automatically become available (unreserved) after 4 hours even if no update or push method is called. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items:poll",
                  "id": "cloudsearch.indexing.datasources.items.poll"
                },
                "push": {
                  "id": "cloudsearch.indexing.datasources.items.push",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:push",
                  "path": "v1/indexing/{+name}:push",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path",
                      "description": "The name of the item to push into the indexing queue. Format: datasources/{source_id}/items/{ID} This is a required field. The maximum length is 1536 characters.",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Pushes an item onto a queue for later polling and updating. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "PushItemRequest"
                  },
                  "response": {
                    "$ref": "Item"
                  }
                },
                "list": {
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items",
                  "id": "cloudsearch.indexing.datasources.items.list",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "ListItemsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Lists all or a subset of Item resources. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "parameters": {
                    "pageSize": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Maximum number of items to fetch in a request. The max value is 1000 when brief is true. The max value is 10 if brief is false. The default value is 10",
                      "location": "query"
                    },
                    "connectorName": {
                      "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the Data Source to list Items. Format: datasources/{source_id}",
                      "pattern": "^datasources/[^/]+$",
                      "location": "path",
                      "required": true
                    },
                    "debugOptions.enableDebugging": {
                      "type": "boolean",
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query"
                    },
                    "brief": {
                      "description": "When set to true, the indexing system only populates the following fields: name, version, queue. metadata.hash, metadata.title, metadata.sourceRepositoryURL, metadata.objectType, metadata.createTime, metadata.updateTime, metadata.contentLanguage, metadata.mimeType, structured_data.hash, content.hash, itemType, itemStatus.code, itemStatus.processingError.code, itemStatus.repositoryError.type, If this value is false, then all the fields are populated in Item.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "pageToken": {
                      "description": "The next_page_token value returned from a previous List request, if any.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1/indexing/{+name}/items"
                },
                "delete": {
                  "id": "cloudsearch.indexing.datasources.items.delete",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Deletes Item resource for the specified resource name. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "parameters": {
                    "connectorName": {
                      "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
                      "location": "query",
                      "type": "string"
                    },
                    "mode": {
                      "description": "Required. The RequestMode for this request.",
                      "type": "string",
                      "enumDescriptions": [
                        "The priority is not specified in the update request. Leaving priority unspecified results in an update failure.",
                        "For real-time updates.",
                        "For changes that are executed after the response is sent back to the caller."
                      ],
                      "enum": [
                        "UNSPECIFIED",
                        "SYNCHRONOUS",
                        "ASYNCHRONOUS"
                      ],
                      "location": "query"
                    },
                    "version": {
                      "description": "Required. The incremented version of the item to delete from the index. The indexing system stores the version from the datasource as a byte string and compares the Item version in the index to the version of the queued Item using lexical ordering. Cloud Search Indexing won't delete any queued item with a version value that is less than or equal to the version of the currently indexed item. The maximum length for this field is 1024 bytes. For information on how item version affects the deletion process, refer to [Handle revisions after manual deletes](https://developers.google.com/workspace/cloud-search/docs/guides/operations).",
                      "location": "query",
                      "type": "string",
                      "format": "byte"
                    },
                    "name": {
                      "type": "string",
                      "description": "Required. The name of the item to delete. Format: datasources/{source_id}/items/{item_id}",
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path",
                      "required": true
                    },
                    "debugOptions.enableDebugging": {
                      "type": "boolean",
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query"
                    }
                  },
                  "path": "v1/indexing/{+name}",
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "get": {
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}",
                  "id": "cloudsearch.indexing.datasources.items.get",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "Item"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets Item resource by item name. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path",
                      "description": "The name of the item to get info. Format: datasources/{source_id}/items/{item_id}",
                      "type": "string"
                    },
                    "debugOptions.enableDebugging": {
                      "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "connectorName": {
                      "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1/indexing/{+name}"
                },
                "upload": {
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "StartUploadItemRequest"
                  },
                  "response": {
                    "$ref": "UploadItemRef"
                  },
                  "parameters": {
                    "name": {
                      "pattern": "^datasources/[^/]+/items/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "The name of the Item to start a resumable upload. Format: datasources/{source_id}/items/{item_id}. The maximum length is 1536 bytes."
                    }
                  },
                  "path": "v1/indexing/{+name}:upload",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Creates an upload session for uploading item content. For items smaller than 100 KB, it's easier to embed the content inline within an index request. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.",
                  "flatPath": "v1/indexing/datasources/{datasourcesId}/items/{itemsId}:upload",
                  "id": "cloudsearch.indexing.datasources.items.upload"
                }
              }
            }
          }
        }
      }
    },
    "media": {
      "methods": {
        "upload": {
          "id": "cloudsearch.media.upload",
          "supportsMediaUpload": true,
          "flatPath": "v1/media/{mediaId}",
          "parameters": {
            "resourceName": {
              "type": "string",
              "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
              "required": true,
              "pattern": "^.*$",
              "location": "path"
            }
          },
          "path": "v1/media/{+resourceName}",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.indexing"
          ],
          "parameterOrder": [
            "resourceName"
          ],
          "description": "Uploads media for indexing. The upload endpoint supports direct and resumable upload protocols and is intended for large items that can not be [inlined during index requests](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#itemcontent). To index large content: 1. Call indexing.datasources.items.upload with the item name to begin an upload session and retrieve the UploadItemRef. 1. Call media.upload to upload the content, as a streaming request, using the same resource name from the UploadItemRef from step 1. 1. Call indexing.datasources.items.index to index the item. Populate the [ItemContent](/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemContent) with the UploadItemRef from step 1. For additional information, see [Create a content connector using the REST API](https://developers.google.com/workspace/cloud-search/docs/guides/content-connector#rest). **Note:** This API requires a service account to execute.",
          "mediaUpload": {
            "accept": [
              "*/*"
            ],
            "protocols": {
              "simple": {
                "path": "/upload/v1/media/{+resourceName}",
                "multipart": true
              }
            }
          },
          "httpMethod": "POST",
          "request": {
            "$ref": "Media"
          },
          "response": {
            "$ref": "Media"
          }
        }
      }
    },
    "query": {
      "methods": {
        "suggest": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.query"
          ],
          "parameterOrder": [],
          "description": "Provides suggestions for autocompleting the query. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/workspace/cloud-search/docs/guides/delegation/).",
          "parameters": {},
          "path": "v1/query/suggest",
          "httpMethod": "POST",
          "request": {
            "$ref": "SuggestRequest"
          },
          "response": {
            "$ref": "SuggestResponse"
          },
          "id": "cloudsearch.query.suggest",
          "flatPath": "v1/query/suggest"
        },
        "removeActivity": {
          "id": "cloudsearch.query.removeActivity",
          "flatPath": "v1/query:removeActivity",
          "path": "v1/query:removeActivity",
          "parameters": {},
          "parameterOrder": [],
          "description": "Provides functionality to remove logged activity for a user. Currently to be used only for Chat 1p clients **Note:** This API requires a standard end user account to execute. A service account can't perform Remove Activity requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/workspace/cloud-search/docs/guides/delegation/).",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.query"
          ],
          "httpMethod": "POST",
          "request": {
            "$ref": "RemoveActivityRequest"
          },
          "response": {
            "$ref": "RemoveActivityResponse"
          }
        },
        "search": {
          "flatPath": "v1/query/search",
          "id": "cloudsearch.query.search",
          "httpMethod": "POST",
          "request": {
            "$ref": "SearchRequest"
          },
          "response": {
            "$ref": "SearchResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.query"
          ],
          "parameterOrder": [],
          "description": "The Cloud Search Query API provides the search method, which returns the most relevant results from a user query. The results can come from Google Workspace apps, such as Gmail or Google Drive, or they can come from data that you have indexed from a third party. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/workspace/cloud-search/docs/guides/delegation/).",
          "parameters": {},
          "path": "v1/query/search"
        }
      },
      "resources": {
        "sources": {
          "methods": {
            "list": {
              "flatPath": "v1/query/sources",
              "id": "cloudsearch.query.sources.list",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListQuerySourcesResponse"
              },
              "parameters": {
                "requestOptions.languageCode": {
                  "type": "string",
                  "description": "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. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.",
                  "location": "query"
                },
                "requestOptions.countryCode": {
                  "description": "Optional. Specifies the country/region where the query originated, as a lowercase ISO 3166-1 alpha-2 region code (using 'uk' instead of 'gb' for the United Kingdom).",
                  "location": "query",
                  "type": "string"
                },
                "requestOptions.timeZone": {
                  "description": "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). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.",
                  "location": "query",
                  "type": "string"
                },
                "requestOptions.debugOptions.enableDebugging": {
                  "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.",
                  "location": "query",
                  "type": "boolean"
                },
                "requestOptions.searchApplicationId": {
                  "description": "The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).",
                  "location": "query",
                  "type": "string"
                },
                "requestOptions.clientDisplayLanguageCode": {
                  "type": "string",
                  "description": "The BCP-47 language code, such as \"pt\" or \"en\". It represents the user's preferred Display Language.",
                  "location": "query"
                },
                "pageToken": {
                  "type": "string",
                  "description": "Number of sources to return in the response.",
                  "location": "query"
                }
              },
              "path": "v1/query/sources",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.query"
              ],
              "parameterOrder": [],
              "description": "Returns list of sources that user can use for Search and Suggest APIs. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [Google Workspace domain-wide delegation of authority](https://developers.google.com/workspace/cloud-search/docs/guides/delegation/)."
            }
          }
        }
      }
    },
    "operations": {
      "methods": {
        "get": {
          "httpMethod": "GET",
          "response": {
            "$ref": "Operation"
          },
          "path": "v1/{+name}",
          "parameters": {
            "name": {
              "description": "The name of the operation resource.",
              "type": "string",
              "required": true,
              "pattern": "^operations/.*$",
              "location": "path"
            }
          },
          "parameterOrder": [
            "name"
          ],
          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.debug",
            "https://www.googleapis.com/auth/cloud_search.indexing",
            "https://www.googleapis.com/auth/cloud_search.settings",
            "https://www.googleapis.com/auth/cloud_search.settings.indexing",
            "https://www.googleapis.com/auth/cloud_search.settings.query"
          ],
          "flatPath": "v1/operations/{operationsId}",
          "id": "cloudsearch.operations.get"
        }
      },
      "resources": {
        "lro": {
          "methods": {
            "list": {
              "flatPath": "v1/operations/{operationsId}/lro",
              "id": "cloudsearch.operations.lro.list",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListOperationsResponse"
              },
              "parameters": {
                "pageSize": {
                  "description": "The standard list page size.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "filter": {
                  "type": "string",
                  "description": "The standard list filter.",
                  "location": "query"
                },
                "returnPartialSuccess": {
                  "type": "boolean",
                  "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                  "location": "query"
                },
                "name": {
                  "description": "The name of the operation's parent resource.",
                  "type": "string",
                  "pattern": "^operations/.*$",
                  "location": "path",
                  "required": true
                },
                "pageToken": {
                  "description": "The standard list page token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/{+name}/lro",
              "scopes": [
                "https://www.googleapis.com/auth/cloud_search",
                "https://www.googleapis.com/auth/cloud_search.debug",
                "https://www.googleapis.com/auth/cloud_search.indexing",
                "https://www.googleapis.com/auth/cloud_search.settings",
                "https://www.googleapis.com/auth/cloud_search.settings.indexing",
                "https://www.googleapis.com/auth/cloud_search.settings.query"
              ],
              "parameterOrder": [
                "name"
              ],
              "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
            }
          }
        }
      }
    },
    "stats": {
      "methods": {
        "getUser": {
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.stats",
            "https://www.googleapis.com/auth/cloud_search.stats.indexing"
          ],
          "parameterOrder": [],
          "description": "Get the users statistics for customer. **Note:** This API requires a standard end user account to execute.",
          "parameters": {
            "fromDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "toDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "fromDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.month": {
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "toDate.day": {
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "fromDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            }
          },
          "path": "v1/stats/user",
          "httpMethod": "GET",
          "response": {
            "$ref": "GetCustomerUserStatsResponse"
          },
          "id": "cloudsearch.stats.getUser",
          "flatPath": "v1/stats/user"
        },
        "getSession": {
          "parameters": {
            "fromDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "toDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "fromDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.day": {
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "fromDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            }
          },
          "path": "v1/stats/session",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.stats",
            "https://www.googleapis.com/auth/cloud_search.stats.indexing"
          ],
          "parameterOrder": [],
          "description": "Get the # of search sessions, % of successful sessions with a click query statistics for customer. **Note:** This API requires a standard end user account to execute.",
          "httpMethod": "GET",
          "response": {
            "$ref": "GetCustomerSessionStatsResponse"
          },
          "id": "cloudsearch.stats.getSession",
          "flatPath": "v1/stats/session"
        },
        "getQuery": {
          "flatPath": "v1/stats/query",
          "id": "cloudsearch.stats.getQuery",
          "httpMethod": "GET",
          "response": {
            "$ref": "GetCustomerQueryStatsResponse"
          },
          "parameters": {
            "fromDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            },
            "fromDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "toDate.year": {
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "fromDate.month": {
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "toDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            }
          },
          "path": "v1/stats/query",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.stats",
            "https://www.googleapis.com/auth/cloud_search.stats.indexing"
          ],
          "parameterOrder": [],
          "description": "Get the query statistics for customer. **Note:** This API requires a standard end user account to execute."
        },
        "getIndex": {
          "parameterOrder": [],
          "description": "Gets indexed item statistics aggreggated across all data sources. This API only returns statistics for previous dates; it doesn't return statistics for the current day. **Note:** This API requires a standard end user account to execute.",
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.stats",
            "https://www.googleapis.com/auth/cloud_search.stats.indexing"
          ],
          "path": "v1/stats/index",
          "parameters": {
            "fromDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "toDate.day": {
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "fromDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "toDate.year": {
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "fromDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            }
          },
          "httpMethod": "GET",
          "response": {
            "$ref": "GetCustomerIndexStatsResponse"
          },
          "id": "cloudsearch.stats.getIndex",
          "flatPath": "v1/stats/index"
        },
        "getSearchapplication": {
          "httpMethod": "GET",
          "response": {
            "$ref": "GetCustomerSearchApplicationStatsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud_search",
            "https://www.googleapis.com/auth/cloud_search.stats",
            "https://www.googleapis.com/auth/cloud_search.stats.indexing"
          ],
          "parameterOrder": [],
          "description": "Get search application stats for customer. **Note:** This API requires a standard end user account to execute.",
          "parameters": {
            "startDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "endDate.year": {
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "startDate.year": {
              "type": "integer",
              "format": "int32",
              "description": "Year of date. Must be from 1 to 9999.",
              "location": "query"
            },
            "startDate.day": {
              "type": "integer",
              "format": "int32",
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query"
            },
            "endDate.month": {
              "type": "integer",
              "format": "int32",
              "description": "Month of date. Must be from 1 to 12.",
              "location": "query"
            },
            "endDate.day": {
              "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            }
          },
          "path": "v1/stats/searchapplication",
          "flatPath": "v1/stats/searchapplication",
          "id": "cloudsearch.stats.getSearchapplication"
        }
      },
      "resources": {
        "query": {
          "resources": {
            "searchapplications": {
              "methods": {
                "get": {
                  "flatPath": "v1/stats/query/searchapplications/{searchapplicationsId}",
                  "id": "cloudsearch.stats.query.searchapplications.get",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "GetSearchApplicationQueryStatsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.stats",
                    "https://www.googleapis.com/auth/cloud_search.stats.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Get the query statistics for search application. **Note:** This API requires a standard end user account to execute.",
                  "parameters": {
                    "fromDate.day": {
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "name": {
                      "pattern": "^searchapplications/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "The resource id of the search application query stats, in the following format: searchapplications/{application_id}"
                    },
                    "fromDate.month": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query"
                    },
                    "toDate.month": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query"
                    },
                    "toDate.day": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query"
                    },
                    "fromDate.year": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query"
                    },
                    "toDate.year": {
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "path": "v1/stats/query/{+name}"
                }
              }
            }
          }
        },
        "index": {
          "resources": {
            "datasources": {
              "methods": {
                "get": {
                  "flatPath": "v1/stats/index/datasources/{datasourcesId}",
                  "id": "cloudsearch.stats.index.datasources.get",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "GetDataSourceIndexStatsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.stats",
                    "https://www.googleapis.com/auth/cloud_search.stats.indexing"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Gets indexed item statistics for a single data source. **Note:** This API requires a standard end user account to execute.",
                  "parameters": {
                    "fromDate.day": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query"
                    },
                    "name": {
                      "pattern": "^datasources/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "The resource id of the data source to retrieve statistics for, in the following format: \"datasources/{source_id}\""
                    },
                    "fromDate.month": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query"
                    },
                    "toDate.month": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query"
                    },
                    "toDate.day": {
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "fromDate.year": {
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.year": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query"
                    }
                  },
                  "path": "v1/stats/index/{+name}"
                }
              }
            }
          }
        },
        "user": {
          "resources": {
            "searchapplications": {
              "methods": {
                "get": {
                  "path": "v1/stats/user/{+name}",
                  "parameters": {
                    "name": {
                      "pattern": "^searchapplications/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string",
                      "description": "The resource id of the search application session stats, in the following format: searchapplications/{application_id}"
                    },
                    "fromDate.day": {
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "fromDate.year": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query"
                    },
                    "toDate.year": {
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "fromDate.month": {
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.month": {
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.day": {
                      "type": "integer",
                      "format": "int32",
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Get the users statistics for search application. **Note:** This API requires a standard end user account to execute.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.stats",
                    "https://www.googleapis.com/auth/cloud_search.stats.indexing"
                  ],
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "GetSearchApplicationUserStatsResponse"
                  },
                  "id": "cloudsearch.stats.user.searchapplications.get",
                  "flatPath": "v1/stats/user/searchapplications/{searchapplicationsId}"
                }
              }
            }
          }
        },
        "session": {
          "resources": {
            "searchapplications": {
              "methods": {
                "get": {
                  "path": "v1/stats/session/{+name}",
                  "parameters": {
                    "fromDate.year": {
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.year": {
                      "description": "Year of date. Must be from 1 to 9999.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "fromDate.month": {
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.month": {
                      "description": "Month of date. Must be from 1 to 12.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "toDate.day": {
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "name": {
                      "pattern": "^searchapplications/[^/]+$",
                      "location": "path",
                      "required": true,
                      "description": "The resource id of the search application session stats, in the following format: searchapplications/{application_id}",
                      "type": "string"
                    },
                    "fromDate.day": {
                      "description": "Day of month. Must be from 1 to 31 and valid for the year and month.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Get the # of search sessions, % of successful sessions with a click query statistics for search application. **Note:** This API requires a standard end user account to execute.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud_search",
                    "https://www.googleapis.com/auth/cloud_search.stats",
                    "https://www.googleapis.com/auth/cloud_search.stats.indexing"
                  ],
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "GetSearchApplicationSessionStatsResponse"
                  },
                  "id": "cloudsearch.stats.session.searchapplications.get",
                  "flatPath": "v1/stats/session/searchapplications/{searchapplicationsId}"
                }
              }
            }
          }
        }
      }
    }
  },
  "documentationLink": "https://developers.google.com/workspace/cloud-search/docs/guides/",
  "version": "v1",
  "basePath": "",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "name": "cloudsearch",
  "description": "Cloud Search provides cloud-based search capabilities over Google Workspace data. The Cloud Search API allows indexing of non-Google Workspace data into Cloud Search."
}
