REST Resource: projects.locations.jobs

Recurso: Job

A descrição do job de operações em lote de armazenamento.

Representação JSON
{
  "name": string,
  "description": string,
  "loggingConfig": {
    object (LoggingConfig)
  },
  "createTime": string,
  "scheduleTime": string,
  "completeTime": string,
  "counters": {
    object (Counters)
  },
  "errorSummaries": [
    {
      object (ErrorSummary)
    }
  ],
  "state": enum (State),

  // Union field source can be only one of the following:
  "bucketList": {
    object (BucketList)
  }
  // End of list of possible types for union field source.

  // Union field transformation can be only one of the following:
  "putObjectHold": {
    object (PutObjectHold)
  },
  "deleteObject": {
    object (DeleteObject)
  },
  "putMetadata": {
    object (PutMetadata)
  },
  "rewriteObject": {
    object (RewriteObject)
  }
  // End of list of possible types for union field transformation.
}
Campos
name

string

Identificador. O nome do recurso do job.

Formato: projects/{project}/locations/global/jobs/{jobId}.

Por exemplo, projects/123456/locations/global/jobs/job01.

jobId é exclusivo em um determinado projeto para um local específico. Se jobId não for especificado, um identificador gerado pelo servidor será atribuído.

description

string

Opcional. Uma descrição fornecida pelo usuário para a vaga.

Comprimento máximo: 1.024 bytes quando codificado em Unicode.

loggingConfig

object (LoggingConfig)

Opcional. Configuração da geração de registros.

createTime

string (Timestamp format)

Apenas saída. O horário em que o job foi criado.

Usa o RFC 3339, em que a saída gerada é sempre normalizada em Z e usa dígitos fracionários 0, 3, 6 ou 9. Deslocamentos diferentes de "Z" 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".

scheduleTime

string (Timestamp format)

Apenas saída. A hora em que o job foi programado.

Usa o RFC 3339, em que a saída gerada é sempre normalizada em Z e usa dígitos fracionários 0, 3, 6 ou 9. Deslocamentos diferentes de "Z" 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".

completeTime

string (Timestamp format)

Apenas saída. O horário em que o job foi concluído.

Usa o RFC 3339, em que a saída gerada é sempre normalizada em Z e usa dígitos fracionários 0, 3, 6 ou 9. Deslocamentos diferentes de "Z" 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".

counters

object (Counters)

Apenas saída. Informações sobre o progresso do job.

errorSummaries[]

object (ErrorSummary)

Apenas saída. Resume os erros encontrados com exemplos de entradas de registro de erros.

state

enum (State)

Apenas saída. Estado do job.

Campo de união source. Especifica objetos a serem transformados. source pode ser apenas de um dos tipos a seguir:
bucketList

object (BucketList)

Especifica uma lista de buckets e os objetos deles a serem transformados.

Campo de união transformation. Operação a ser realizada nos objetos. transformation pode ser apenas de um dos tipos a seguir:
putObjectHold

object (PutObjectHold)

Muda o status de retenção do objeto.

deleteObject

object (DeleteObject)

Excluir objetos.

putMetadata

object (PutMetadata)

Atualiza os metadados do objeto. Permite atualizar metadados de chave fixa e personalizados. Por exemplo, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type e Custom-Time.

rewriteObject

object (RewriteObject)

Reescreva o objeto e atualize os metadados, como a chave do KMS.

BucketList

Descreve a lista de buckets e os objetos a serem transformados.

Representação JSON
{
  "buckets": [
    {
      object (Bucket)
    }
  ]
}
Campos
buckets[]

object (Bucket)

Obrigatório. Lista de buckets e objetos a serem transformados. É possível especificar apenas um bucket por job. Se vários buckets forem especificados, um erro vai ocorrer.

Bucket

Descreve a configuração de um único bucket e os objetos a serem transformados.

Representação JSON
{
  "bucket": string,

  // Union field object_configuration can be only one of the following:
  "prefixList": {
    object (PrefixList)
  },
  "manifest": {
    object (Manifest)
  }
  // End of list of possible types for union field object_configuration.
}
Campos
bucket

string

Obrigatório. Nome do bucket para os objetos a serem transformados.

Campo de união object_configuration. Especifica objetos a serem transformados. object_configuration pode ser apenas de um dos tipos a seguir:
prefixList

object (PrefixList)

Especifica objetos que correspondem a um conjunto de prefixos.

manifest

object (Manifest)

Especifica objetos em um arquivo de manifesto.

PrefixList

Descreve os prefixos dos objetos a serem transformados.

Representação JSON
{
  "includedObjectPrefixes": [
    string
  ]
}
Campos
includedObjectPrefixes[]

string

Opcional. Especifique um ou mais prefixos de objeto. Exemplo:

  • Para corresponder a um objeto, use um único prefixo, prefix1.

  • Para corresponder a vários objetos, use prefixos separados por vírgulas, prefix1,prefix2.

  • Para corresponder a todos os objetos, use um prefixo vazio,''

Manifesto

Descreve a lista de objetos a serem transformados.

Representação JSON
{
  "manifestLocation": string
}
Campos
manifestLocation

string

Obrigatório. Especifique o local do arquivo de manifesto, por exemplo, gs://bucket_name/path/object_name.csv. O manifesto é um arquivo CSV enviado para o Cloud Storage que contém um objeto ou uma lista de objetos que você quer processar. Cada linha no manifesto precisa incluir bucket e name do objeto. Você pode especificar o generation do objeto. Se você não especificar o generation, a versão atual do objeto será usada.

O arquivo precisa incluir uma linha de cabeçalho com o seguinte formato: bucket,name,generation. A coluna generation é opcional. Por exemplo,

bucket,name,generation
bucket_1,object_1,generation_1
bucket_1,object_2,generation_2
bucket_1,object_3,generation_3

Observação: o arquivo de manifesto precisa especificar apenas objetos dentro do bucket fornecido para o job. As linhas que fazem referência a objetos em outros buckets são ignoradas.

PutObjectHold

Descreve as opções para atualizar a retenção de objetos.

Representação JSON
{
  "temporaryHold": enum (HoldStatus),
  "eventBasedHold": enum (HoldStatus)
}
Campos
temporaryHold

enum (HoldStatus)

Obrigatório. Atualiza o estado de retenção temporária do objeto. Quando a retenção temporária de um objeto é definida, ele não pode ser excluído nem substituído.

eventBasedHold

enum (HoldStatus)

Obrigatório. Atualiza o estado de retenção de objetos baseado em eventos. Quando a retenção baseada em evento é definida, o objeto não pode ser excluído nem substituído. Redefine o tempo do objeto no bucket para os propósitos do período de armazenamento.

HoldStatus

Descreve o status da retenção.

Enums
HOLD_STATUS_UNSPECIFIED Valor padrão. O status de retenção do objeto não foi alterado.
SET Faz a retenção.
UNSET Libera a guarda de documentos.

DeleteObject

Descreve as opções para excluir um objeto.

Representação JSON
{
  "permanentObjectDeletionEnabled": boolean
}
Campos
permanentObjectDeletionEnabled

boolean

Obrigatório. Controla o comportamento de exclusão quando o controle de versões está ativado para o bucket do objeto. Se definido como "true", os objetos ativos e não atuais serão excluídos permanentemente. Caso contrário, os objetos ativos em buckets com controle de versões não serão atuais, e os objetos que já não são atuais serão ignorados. Essa configuração não afeta o recurso de exclusão temporária. Todos os objetos excluídos por esse serviço podem ser restaurados durante o período de retenção da exclusão reversível, se ela estiver ativada. Se ativada e o manifesto não especificar a geração de um objeto, uma chamada GetObjectMetadata será feita para determinar a geração de objetos ativos.

PutMetadata

Descreve as opções para atualizar os metadados do objeto.

Representação JSON
{
  "customMetadata": {
    string: string,
    ...
  },
  "contentDisposition": string,
  "contentEncoding": string,
  "contentLanguage": string,
  "contentType": string,
  "cacheControl": string,
  "customTime": string
}
Campos
customMetadata

map (key: string, value: string)

Opcional. Atualiza os metadados personalizados do objeto. Essa operação adiciona ou define pares de chave-valor de metadados personalizados individuais. Os valores das chaves especificadas com valores vazios serão apagados. As chaves de metadados personalizadas atuais que não forem incluídas na solicitação permanecem inalteradas. Para mais detalhes, consulte Custom-Metadata.

Um objeto com uma lista de pares "key": "value". Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

contentDisposition

string

Opcional. Atualiza os metadados fixos Content-Disposition dos objetos. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Para mais detalhes, consulte Content-Disposition.

contentEncoding

string

Opcional. Atualiza os metadados fixos Content-Encoding dos objetos. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Para mais detalhes, consulte Content-Encoding.

contentLanguage

string

Opcional. Atualiza os metadados do idioma do conteúdo fixo dos objetos. Os valores de metadados precisam usar códigos de idioma ISO 639-1. O comprimento máximo dos valores de metadados é de 100 caracteres. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Para mais detalhes, consulte Content-Language.

contentType

string

Opcional. Atualiza os metadados fixos Content-Type dos objetos. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Para mais detalhes, consulte Content-Type.

cacheControl

string

Opcional. Atualiza os metadados fixos Cache-Control dos objetos. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Além disso, o valor de Custom-Time não pode diminuir. Para mais detalhes, consulte Cache-Control.

customTime

string

Opcional. Atualiza os metadados de horário personalizado fixo do objeto. Os valores não definidos na solicitação são ignorados. Para limpar os metadados, defina um valor vazio. Para mais detalhes, consulte Tempo personalizado.

RewriteObject

Descreve as opções de reescrita de objetos.

Representação JSON
{
  "kmsKey": string
}
Campos
kmsKey

string

Obrigatório. Nome do recurso da chave do Cloud KMS usada para criptografar o objeto. A chave do Cloud KMS precisa estar no mesmo local que o objeto. Para saber mais, consulte Criptografar um objeto com uma chave do Cloud KMS.

Formato: projects/{project}/locations/{locationid}/keyRings/{keyring}/cryptoKeys/{key}

Por exemplo, projects/123456/locations/us-central1/keyRings/my-keyring/cryptoKeys/my-key. O objeto é reescrito e definido com a chave KMS especificada.

LoggingConfig

Especifica o comportamento do Cloud Logging.

Representação JSON
{
  "logActions": [
    enum (LoggableAction)
  ],
  "logActionStates": [
    enum (LoggableActionState)
  ]
}
Campos
logActions[]

enum (LoggableAction)

Obrigatório. Especifica as ações a serem registradas.

logActionStates[]

enum (LoggableActionState)

Obrigatório. Estados em que as ações são registradas. Se estiver vazio, nenhum registro será gerado.

LoggableAction

Tipos de ações registráveis.

Enums
LOGGABLE_ACTION_UNSPECIFIED Valor ilegal para evitar um padrão.
TRANSFORM A ação de transformação correspondente neste job.

LoggableActionState

Filtro de estados de ação registráveis.

Enums
LOGGABLE_ACTION_STATE_UNSPECIFIED Valor ilegal, para evitar um padrão.
SUCCEEDED LoggableAction foi concluído. As ações SUCCEEDED são registradas como [INFO][google.logging.type.LogSeverity.INFO].
FAILED LoggableAction foi encerrado em um estado de erro. As ações FAILED são registradas como [ERROR][google.logging.type.LogSeverity.ERROR].

Contadores

Descreve detalhes sobre o progresso do job.

Representação JSON
{
  "totalObjectCount": string,
  "succeededObjectCount": string,
  "failedObjectCount": string
}
Campos
totalObjectCount

string (int64 format)

Apenas saída. Número de objetos listados.

succeededObjectCount

string (int64 format)

Apenas saída. Número de objetos concluídos.

failedObjectCount

string (int64 format)

Apenas saída. Número de objetos com falha.

ErrorSummary

Um resumo dos erros por código, além de uma contagem e exemplos de entradas de registro de erros.

Representação JSON
{
  "errorCode": enum (Code),
  "errorCount": string,
  "errorLogEntries": [
    {
      object (ErrorLogEntry)
    }
  ]
}
Campos
errorCode

enum (Code)

Obrigatório. O código de erro canônico.

errorCount

string (int64 format)

Obrigatório. Número de erros encontrados por errorCode.

errorLogEntries[]

object (ErrorLogEntry)

Obrigatório. Exemplos de registros de erros.

Código

Define os códigos de erro usados para processar respostas da API gRPC.

Quando vários códigos de erro são aplicados, retorne o código de erro mais específico. Por exemplo, dê preferência a OUT_OF_RANGE em vez de FAILED_PRECONDITION, se ambos os códigos se aplicarem. Da mesma maneira, dê preferência a NOT_FOUND ou ALREADY_EXISTS em vez de FAILED_PRECONDITION.

Enums
OK

Retornado quando a operação é concluída.

Mapeamento HTTP: 200 OK

CANCELLED

A operação foi cancelada, geralmente pelo chamador

Mapeamento HTTP: 499 Solicitação fechada pelo cliente

UNKNOWN

Erro desconhecido. Por exemplo, esse erro pode ser retornado quando um valor Status recebido de outro espaço de endereço pertence a um espaço de erro desconhecido nesse espaço de endereço. Além disso, os erros gerados por APIs que não retornam informações de erro suficientes podem ser convertidos neste erro.

Mapeamento HTTP: 500 Erro interno do servidor

INVALID_ARGUMENT

O cliente especificou um argumento inválido. Observe que isso é diferente de FAILED_PRECONDITION. INVALID_ARGUMENT indica argumentos problemáticos, independentemente do estado do sistema. Por exemplo, um nome de arquivo incorreto.

Mapeamento HTTP: 400 Solicitação inválida

DEADLINE_EXCEEDED

O prazo expirou antes do término da operação. Para operações que alteram o estado do sistema, este erro pode ser retornado mesmo que a operação tenha sido concluída com sucesso. Por exemplo, uma resposta bem-sucedida de um servidor pode ter atrasado tempo suficiente para que o prazo expirasse.

Mapeamento HTTP: 504 Tempo limite do gateway

NOT_FOUND

Alguma entidade solicitada (por exemplo, arquivo ou diretório) não foi encontrada.

Observação para desenvolvedores de servidor: se uma solicitação for negada para uma classe inteira de usuários, como a implementação gradual de recursos ou a lista de permissões não documentada de permissões, NOT_FOUND poderá ser usado. Se uma solicitação for negada para alguns usuários de uma classe, como o controle de acesso baseado em usuário, PERMISSION_DENIED precisará ser usado.

Mapeamento HTTP: 404 Não encontrado

ALREADY_EXISTS

A entidade que um cliente tentou criar (por exemplo, arquivo ou diretório) já existe.

Mapeamento HTTP: 409 Conflito

PERMISSION_DENIED

O autor da chamada não tem permissão para executar a operação especificada. PERMISSION_DENIED não pode ser usado para rejeições causadas pelo esgotamento de algum recurso. Em vez dele, use RESOURCE_EXHAUSTED para esses erros. PERMISSION_DENIED não poderá ser usado se o autor da chamada não for identificado. Em vez dele, use UNAUTHENTICATED para esses erros. Esse código do erro não indica que a solicitação seja válida nem que a entidade solicitada exista ou satisfaça outras condições prévias.

Mapeamento HTTP: 403 Proibido

UNAUTHENTICATED

A solicitação não tem credenciais válidas de autenticação para a operação.

Mapeamento HTTP: 401 Não autorizado

RESOURCE_EXHAUSTED

Houve o esgotamento de algum recurso, como uma cota por usuário. Também é possível que todo sistema de arquivos esteja sem espaço.

Mapeamento HTTP: 429 Há muitas solicitações

FAILED_PRECONDITION

A operação foi rejeitada porque o estado do sistema não é o necessário para a execução dela. Por exemplo, o diretório a ser excluído não está vazio, uma operação "rmdir" foi aplicada a um elemento que não é um diretório etc.

Os implementadores de serviços podem usar as diretrizes a seguir para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE:

  • Use UNAVAILABLE se o cliente puder repetir apenas a chamada com falha.
  • Use ABORTED se o cliente precisar tentar novamente em um nível mais alto. Por exemplo, quando um teste e um conjunto especificado pelo cliente falha, indicando que o cliente precisa reiniciar uma sequência de leitura-modificação-gravação.
  • Use FAILED_PRECONDITION se o cliente não tentar novamente até que o estado do sistema seja explicitamente corrigido. Por exemplo, se houver falha em um "rmdir" porque o diretório não está vazio, FAILED_PRECONDITION será retornado, porque o cliente não precisa tentar novamente, a menos que os arquivos sejam excluídos do diretório.

Mapeamento HTTP: 400 Solicitação inválida

ABORTED

A operação foi cancelada. Isso ocorre normalmente devido a um problema de simultaneidade, como falha na verificação do sequenciador ou cancelamento da transação.

Consulte as diretrizes acima para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mapeamento HTTP: 409 Conflito

OUT_OF_RANGE

Houve uma tentativa da operação depois do intervalo válido. Por exemplo, busca ou leitura após o fim do arquivo.

Diferentemente de INVALID_ARGUMENT, este erro indica um problema que poderá ser corrigido se o estado do sistema mudar. Por exemplo, um sistema de arquivos de 32 bits gerará INVALID_ARGUMENT se for solicitado a ler em um deslocamento fora do intervalo [0,2^32-1], mas gerará OUT_OF_RANGE se for solicitado a ler um deslocamento que ultrapasse o tamanho do arquivo atual.

Há alguma sobreposição entre FAILED_PRECONDITION e OUT_OF_RANGE. Recomendamos usar OUT_OF_RANGE (o erro mais específico) quando aplicável para que os autores da chamada que estão iterando por meio de um espaço possam procurar facilmente um erro OUT_OF_RANGE a fim de detectar quando tiverem concluído.

Mapeamento HTTP: 400 Solicitação inválida

UNIMPLEMENTED

A operação não foi implementada ou não é compatível nem está ativada neste serviço.

Mapeamento HTTP: 501 Não implementado

INTERNAL

Erros internos. Significa que algumas invariantes esperadas pelo sistema subjacente foram corrompidas. Este código do erro é reservado para erros graves.

Mapeamento HTTP: 500 Erro interno do servidor

UNAVAILABLE

Atualmente, o serviço não está disponível. Muito provavelmente, trata-se de uma condição temporária, que pode ser corrigida ao tentar novamente com uma retirada. Nem sempre é seguro repetir operações não idempotentes.

Consulte as diretrizes acima para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mapeamento HTTP: 503 Serviço indisponível

DATA_LOSS

Perda ou corrupção irrecuperável de dados.

Mapeamento HTTP: 500 Erro interno do servidor

ErrorLogEntry

Uma entrada que descreve um erro que ocorreu.

Representação JSON
{
  "objectUri": string,
  "errorDetails": [
    string
  ]
}
Campos
objectUri

string

Obrigatório. Apenas saída. URL do objeto. Por exemplo, gs://my_bucket/object.txt.

errorDetails[]

string

Opcional. Apenas saída. Um máximo de cinco entradas de registro de erro são registradas por código de erro para cada job.

Estado

Descreve o estado de um job.

Enums
STATE_UNSPECIFIED Valor padrão. Esse valor não é usado.
RUNNING Em andamento.
SUCCEEDED Concluído.
CANCELED Cancelada pelo usuário.
FAILED Encerrado devido a uma falha irrecuperável.

Métodos

cancel

Cancela um job em lote em um determinado projeto para um local específico.

create

Cria um job em lote em um determinado projeto para um local específico.

delete

Exclui um job em lote em um determinado projeto para um local específico.

get

Recebe um job em lote em um determinado projeto para um local específico.

list

Lista todos os jobs em lote em um determinado projeto para um determinado local.