REST Resource: projects.locations.collections.dataStores.branches.documents

Recurso: Document

El documento captura toda la información de metadatos sin procesar de los elementos que se recomendarán o buscarán.

Representación JSON
{
  "name": string,
  "id": string,
  "schemaId": string,
  "content": {
    object (Content)
  },
  "parentDocumentId": string,
  "derivedStructData": {
    object
  },
  "aclInfo": {
    object (AclInfo)
  },
  "indexTime": string,
  "indexStatus": {
    object (IndexStatus)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "structData": {
    object
  },
  "jsonData": string
  // End of mutually exclusive fields.
}
Campos
name

string

Inmutable. Es el nombre completo del recurso del documento. Formato: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}/branches/{branch}/documents/{documentId}.

Este campo debe ser una cadena codificada en UTF-8 con un límite de 1,024 caracteres.

id

string

Inmutable. Es el identificador del documento.

El ID debe cumplir con el estándar RFC-1034 y tener una longitud máxima de 128 caracteres.

schemaId

string

Es el identificador del esquema ubicado en el mismo almacén de datos.

content

object (Content)

Son los datos no estructurados vinculados a este documento. El contenido solo se puede establecer y se debe establecer si este documento se encuentra en un almacén de datos CONTENT_REQUIRED.

parentDocumentId

string

Es el identificador del documento principal. Actualmente, admite como máximo una jerarquía de documentos de dos niveles.

El ID debe cumplir con el estándar RFC-1034 y tener un límite de 63 caracteres.

derivedStructData

object (Struct format)

Solo salida. Este campo es OUTPUT_ONLY. Contiene datos derivados que no se encuentran en el documento de entrada original.

aclInfo

object (AclInfo)

Es la información de control de acceso del documento.

indexTime

string (Timestamp format)

Solo salida. Fecha y hora en la que se indexó el documento por última vez.

Si este campo se propaga, significa que el documento se indexó. Si bien los documentos suelen permitir la búsqueda en cuestión de segundos luego de la indexación, a veces puede tardar hasta unas horas.

Si este campo no se completa, significa que el documento nunca se indexó.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

indexStatus

object (IndexStatus)

Solo salida. Es el estado de indexación del documento.

  • Si el documento se indexa correctamente, se propagará el campo indexTime.
  • De lo contrario, si el documento no se indexa debido a errores, se propagará el campo errorSamples.
  • De lo contrario, si la indexación del documento está en curso, se propagará el campo pendingMessage.
Representación de datos Se debe proporcionar struct_data o json_data; de lo contrario, se arrojará un error INVALID_ARGUMENT. A continuación, se incluye una lista de campos mutuamente excluyentes. En una respuesta, se establecerá, como máximo, uno de los siguientes campos:
structData

object (Struct format)

Son los datos estructurados en formato JSON del documento. Debe cumplir con el Schema registrado o se arroja un error de INVALID_ARGUMENT.

jsonData

string

Es la representación de la cadena JSON del documento. Debe cumplir con el Schema registrado o se arroja un error de INVALID_ARGUMENT.

Fin de los campos mutuamente exclusivos.

Contenido

Son los datos no estructurados vinculados a este documento.

Representación JSON
{
  "mimeType": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "rawBytes": string,
  "uri": string
  // End of mutually exclusive fields.
}
Campos
mimeType

string

Es el tipo de MIME del contenido. Tipos compatibles:

  • application/pdf (PDF; por el momento, solo se admiten los PDFs nativos)
  • text/html (HTML)
  • text/plain (TXT)
  • application/xml o text/xml (XML)
  • application/json (JSON)
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)
  • application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX)
  • application/vnd.ms-excel.sheet.macroenabled.12 (XLSM)

Los siguientes tipos solo se admiten si el analizador de diseño está habilitado en el almacén de datos:

  • image/bmp (BMP)
  • image/gif (GIF)
  • image/jpeg (JPEG)
  • image/png (PNG)
  • image/tiff (TIFF)

Consulta https://www.iana.org/assignments/media-types/media-types.xhtml.

Es el contenido del documento no estructurado. A continuación, se incluye una lista de campos mutuamente excluyentes. En una respuesta, se establecerá, como máximo, uno de los siguientes campos:
rawBytes

string (bytes format)

Es el contenido representado como un flujo de bytes. La longitud máxima es de 1,000,000 de bytes (1 MB / 0.95 MiB).

Nota: Al igual que con todos los campos de bytes, este campo se representa como binario puro en los búferes de protocolo y como una cadena codificada en Base64 en JSON. Por ejemplo, abc123!?$*&()'-=@~ se debe representar como YWJjMTIzIT8kKiYoKSctPUB+ en JSON. Consulta https://developers.google.com/protocol-buffers/docs/proto3#json.

Es una cadena codificada en Base64.

uri

string

Es el URI del contenido. Solo se admiten los URI de Cloud Storage (p.ej., gs://bucket-name/path/to/file). El tamaño máximo del archivo es de 2.5 MB para los formatos basados en texto y de 200 MB para otros formatos.

Fin de los campos mutuamente exclusivos.

AclInfo

Es la información de la LCA del documento.

Representación JSON
{
  "readers": [
    {
      object (AccessRestriction)
    }
  ]
}
Campos
readers[]

object (AccessRestriction)

Son los lectores del documento.

AccessRestriction

Es un AclRestriction para modelar restricciones de herencia complejas.

Ejemplo: Modelado de una herencia de "Ambos permisos", en la que, para acceder a un documento secundario, el usuario debe tener acceso al documento principal.

Jerarquía del documento: Space_S --> Page_P.

Lectores: Space_S: group_1, user_1 Page_P: group_2, group_3, user_2

Restricción de ACL de Space_S: { "aclInfo": { "lectores": [{ "principals": [{ "groupId": "group_1"}, { "userId": "user_1"} ] } ] }}

Restricción de ACL de Page_P. { "aclInfo": { "readers": [ { "principals": [ { "groupId": "group_2" }, { "groupId": "group_3" }, { "userId": "user_2" } ], }, { "principals": [ { "groupId": "group_1" }, { "userId": "user_1" } ], } ] } }

Representación JSON
{
  "principals": [
    {
      object (Principal)
    }
  ],
  "idpWide": boolean
}
Campos
principals[]

object (Principal)

Es la lista de principales.

idpWide

boolean

Todos los usuarios dentro del proveedor de identidad.

Principal

Es el identificador principal de un usuario o un grupo.

Representación JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "userId": string,
  "groupId": string,
  "externalEntityId": string
  // End of mutually exclusive fields.
}
Campos
Es el campo de unión principal. La principal puede ser un usuario o un grupo. A continuación, se incluye una lista de campos mutuamente excluyentes. En una respuesta, se establecerá, como máximo, uno de los siguientes campos:
userId

string

Es el identificador del usuario. En el caso de las cuentas de usuario de Google Workspace, userId debe ser el correo electrónico del usuario de Google Workspace. En el caso de las cuentas de usuario del proveedor de identidad que no son de Google, userId es el identificador de usuario asignado que se configuró durante la configuración de workforcepool.

groupId

string

Es el identificador del grupo. En el caso de las cuentas de usuario de Google Workspace, groupId debe ser el correo electrónico del grupo de Google Workspace. Para las cuentas de usuario de proveedores de identidad que no son de Google, groupId es el identificador de grupo asignado que se configuró durante la configuración de workforcepool.

externalEntityId

string

Para identidades de aplicaciones de terceros que no están presentes en el proveedor de identidad del cliente.

Fin de los campos mutuamente exclusivos.

IndexStatus

Es el estado de indexación del documento.

Representación JSON
{
  "indexTime": string,
  "errorSamples": [
    {
      object (Status)
    }
  ],
  "pendingMessage": string
}
Campos
indexTime

string (Timestamp format)

Es la fecha y hora en que se indexó el documento. Si este campo se propaga, significa que el documento se indexó. Si bien los documentos suelen permitir la búsqueda en cuestión de segundos luego de la indexación, a veces puede tardar hasta unas horas.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

errorSamples[]

object (Status)

Es una muestra de los errores que se encontraron durante la indexación del documento. Si este campo está propagado, el documento no se indexó debido a errores.

pendingMessage

string

Inmutable. El mensaje indica que el índice del documento está en curso. Si este campo se completa, el índice del documento está pendiente.

Métodos

create

Crea un Document.

delete

Borra un Document.

get

Obtienes una Document.

import

Importación masiva de varios Document.

list

Obtiene una lista de Documents.

patch

Actualiza un Document.

purge

Borra de forma permanente todos los Documents seleccionados en una rama.