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

Recurso: Document

O documento captura todas as informações de metadados brutos dos itens a serem recomendados ou pesquisados.

Representação 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

Imutável. O nome completo do recurso do documento. Formato: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}/branches/{branch}/documents/{documentId}.

Esse campo precisa ser uma string codificada em UTF-8 com um limite de 1.024 caracteres.

id

string

Imutável. O identificador do documento.

O ID precisa estar em conformidade com o padrão RFC-1034 e ter um limite de 128 caracteres.

schemaId

string

O identificador do esquema localizado no mesmo repositório de dados.

content

object (Content)

Os dados não estruturados vinculados a este documento. O conteúdo só pode ser definido e precisa ser definido se este documento estiver em um repositório de dados CONTENT_REQUIRED.

parentDocumentId

string

O identificador do documento principal. Atualmente, é possível usar no máximo dois níveis de hierarquia de documentos.

O ID precisa estar em conformidade com o padrão RFC-1034 e ter um limite de 63 caracteres.

derivedStructData

object (Struct format)

Apenas saída. Este campo é OUTPUT_ONLY. Ele contém dados derivados que não estão no documento de entrada original.

aclInfo

object (AclInfo)

Informações de controle de acesso do documento.

indexTime

string (Timestamp format)

Apenas saída. A hora em que o documento foi indexado pela última vez.

Se esse campo for preenchido, significa que o documento foi indexado. Os documentos geralmente estão disponíveis para pesquisa alguns segundos após a indexação, mas às vezes isso pode levar algumas horas.

Se esse campo não for preenchido, significa que o documento nunca foi indexado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

indexStatus

object (IndexStatus)

Apenas saída. O status de indexação do documento.

  • Se o documento for indexado, o campo "indexTime" será preenchido.
  • Caso contrário, se o documento não for indexado devido a erros, o campo "errorSamples" será preenchido.
  • Caso contrário, se o índice do documento estiver em andamento, o campo "pendingMessage" será preenchido.
Representação de dados. É necessário fornecer struct_data ou json_data. Caso contrário, um erro INVALID_ARGUMENT será gerado. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo, um dos campos será definido em uma resposta:
structData

object (Struct format)

Os dados JSON estruturados do documento. Ele precisa estar de acordo com o Schema registrado ou um erro INVALID_ARGUMENT será gerado.

jsonData

string

A representação de string JSON do documento. Ele precisa estar de acordo com o Schema registrado ou um erro INVALID_ARGUMENT será gerado.

Fim dos campos mutuamente exclusivos.

Conteúdo

Dados não estruturados vinculados a este documento.

Representação 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

O tipo MIME do conteúdo. Tipos compatíveis:

  • application/pdf (PDF, por enquanto, apenas PDFs nativos são aceitos)
  • text/html (HTML)
  • text/plain (TXT)
  • application/xml ou 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)

Os seguintes tipos só são compatíveis se o analisador de layout estiver ativado no repositório de dados:

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

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

O conteúdo do documento não estruturado. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo, um dos campos será definido em uma resposta:
rawBytes

string (bytes format)

O conteúdo representado como um stream de bytes. O comprimento máximo é de 1.000.000 bytes (1 MB / ~0,95 MiB).

Observação: assim como acontece com todos os campos bytes, esse campo é representado como binário puro em buffers de protocolo e como uma string codificada em base64 em JSON. Por exemplo, abc123!?$*&()'-=@~ deve ser representado como YWJjMTIzIT8kKiYoKSctPUB+ em JSON. Consulte https://developers.google.com/protocol-buffers/docs/proto3#json.

Uma string codificada em base64.

uri

string

O URI do conteúdo. Somente URIs do Cloud Storage (por exemplo, gs://bucket-name/path/to/file) são aceitos. O tamanho máximo do arquivo é de 2, 5 MB para formatos baseados em texto e de 200 MB para outros formatos.

Fim dos campos mutuamente exclusivos.

AclInfo

Informações da ACL do documento.

Representação JSON
{
  "readers": [
    {
      object (AccessRestriction)
    }
  ]
}
Campos
readers[]

object (AccessRestriction)

Leitores do documento.

AccessRestriction

AclRestriction para modelar restrições complexas de herança.

Exemplo: modelagem de uma herança "Ambas as permissões", em que, para acessar um documento filho, o usuário precisa ter acesso ao documento pai.

Hierarquia de documentos: Space_S --> Page_P.

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

Restrição de ACL do Space_S: { "aclInfo": { "readers": [ { "principals": [ { "groupId": "group_1" }, { "userId": "user_1" } ] } ] } }

Restrição de ACL Page_P. { "aclInfo": { "readers": [ { "principals": [ { "groupId": "group_2" }, { "groupId": "group_3" }, { "userId": "user_2" } ], }, { "principals": [ { "groupId": "group_1" }, { "userId": "user_1" } ], } ] } }

Representação JSON
{
  "principals": [
    {
      object (Principal)
    }
  ],
  "idpWide": boolean
}
Campos
principals[]

object (Principal)

Lista de principais.

idpWide

boolean

Todos os usuários no provedor de identidade.

Principal

Identificador principal de um usuário ou grupo.

Representação 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
Campo de união principal. O principal pode ser um usuário ou um grupo. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo, um dos campos será definido em uma resposta:
userId

string

Identificador do usuário. Para uma conta de usuário do Google Workspace, o userId precisa ser o e-mail do usuário do Google Workspace. Para contas de usuário de provedores de identidade que não são do Google, o userId é o identificador de usuário mapeado configurado durante a configuração do workforcepool.

groupId

string

Identificador do grupo. Para uma conta de usuário do Google Workspace, o groupId precisa ser o e-mail do grupo do Google Workspace. Para contas de usuário de provedores de identidade que não são do Google, groupId é o identificador de grupo mapeado configurado durante a configuração do workforcepool.

externalEntityId

string

Para identidades de aplicativos de terceiros que não estão presentes no provedor de identidade do cliente.

Fim dos campos mutuamente exclusivos.

IndexStatus

Status de indexação do documento.

Representação JSON
{
  "indexTime": string,
  "errorSamples": [
    {
      object (Status)
    }
  ],
  "pendingMessage": string
}
Campos
indexTime

string (Timestamp format)

O horário em que o documento foi indexado. Se esse campo for preenchido, significa que o documento foi indexado. Os documentos geralmente estão disponíveis para pesquisa alguns segundos após a indexação, mas às vezes isso pode levar algumas horas.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

errorSamples[]

object (Status)

Uma amostra dos erros encontrados ao indexar o documento. Se esse campo for preenchido, o documento não será indexado devido a erros.

pendingMessage

string

Imutável. A mensagem indica que o índice de documentos está em andamento. Se este campo for preenchido, o índice do documento estará pendente.

Métodos

create

Cria uma Document.

delete

Exclui um Document.

get

Recebe um Document.

getProcessedDocument

Recebe as informações de layout analisadas para um Document.

import

Importação em massa de vários Documents.

list

Recebe uma lista de Documents.

patch

Atualiza um Document.

purge

Exclui permanentemente todos os Documents selecionados em uma ramificação.