Receber e responder a eventos de ciclo de vida das assinaturas do Google Workspace

Esta página explica os eventos de ciclo de vida que você recebe para assinaturas do Google Workspace e como usar os eventos para manter uma assinatura ativa.

A API Events do Google Workspace envia os seguintes tipos de eventos do ciclo de vida:

Seu app precisa processar explicitamente esses tipos de evento de ciclo de vida e ignorar novos tipos que possam aparecer no futuro.

Os eventos de ciclo de vida da API Events do Google Workspace são estruturados de acordo com a especificação do CloudEvents. Para saber mais, consulte Estrutura dos eventos do Google Workspace.

Eventos de suspensão

Quando ocorre um erro em uma assinatura do Google Workspace, a API Google Workspace Events suspende a assinatura e impede que ela receba eventos. Resolva os erros com a assinatura antes de reativá-la.

Para notificar você sobre uma suspensão, a API Google Workspace Events envia um evento de ciclo de vida com o tipo de evento google.workspace.events.subscription.v1.suspended.

Depois de receber um evento de suspensão, descubra o motivo da suspensão, resolva os erros e reative a assinatura. Saiba mais em Resolver erros e reativar uma assinatura do Google Workspace.

Veja a seguir um CloudEvent para um evento de ciclo de vida sobre uma assinatura do Google Workspace que foi suspensa devido ao erro ENDPOINT_PERMISSION_DENIED:

{
  "id": "EVENT_UUID",
  "source": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "subject": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "type": "google.workspace.events.subscription.v1.suspended",
  "time": "2023-06-08T06:50:43.641299Z",
  "spec_version": '1.0',
  "datacontenttype": "application/json",
  "data": {
    "subscription":{
      "name": "subscriptions/SUBSCRIPTION_ID",
      "suspension_reason": "ENDPOINT_PERMISSION_DENIED",
      ...
    }
  }
}

Eventos de lembrete de expiração

Quando uma assinatura expira, a API Google Workspace Events a exclui permanentemente, e não é possível renová-la ou reativá-la.

Para notificar você sobre o vencimento da assinatura, a API Google Workspace Events envia eventos do ciclo de vida 12 horas e uma hora antes do prazo de validade. O tipo de evento para eventos de ciclo de vida é google.workspace.events.subscription.v1.expirationReminder.

Ao receber um evento de lembrete de expiração, use o método subscriptions.update() para atualizar o prazo de validade. Para mais detalhes, consulte Atualizar ou renovar uma assinatura do Google Workspace.

Veja a seguir um CloudEvent para um evento de ciclo de vida sobre uma assinatura do Google Workspace prestes a expirar:

{
  "id": "EVENT_UUID",
  "source": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "subject": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "type": "google.workspace.events.subscription.v1.expirationReminder",
  "time": "2023-06-08T06:50:43.641299Z",
  "spec_version": '1.0',
  "datacontenttype": "application/json",
  "data": {
    "subscription":{
      "name": "subscriptions/SUBSCRIPTION_ID",
      "expire_time": "2023-06-08T18:50:43.641299Z",
      ...
    }
  }
}

Eventos de assinatura expirada

A API Google Workspace Events envia um evento de ciclo de vida quando a assinatura expira. O tipo de evento desse ciclo de vida é google.workspace.events.subscription.v1.expired.

A API Google Workspace Events exclui permanentemente as assinaturas expiradas. Se a assinatura expirar, use o método subscriptions.create() para criar outra assinatura. Para mais detalhes, consulte Criar uma assinatura do Google Workspace.

Veja a seguir um CloudEvent para um evento de ciclo de vida sobre uma assinatura expirada do Google Workspace:

{
  "id": "EVENT_UUID",
  "source": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "subject": "//workspaceevents.googleapis.com/subscriptions/SUBSCRIPTION_ID",
  "type": "google.workspace.events.subscription.v1.expired",
  "time": "2023-06-08T07:00:00.000000Z",
  "spec_version": '1.0',
  "datacontenttype": "application/json",
  "data": {
    "subscription":{
      "name": "subscriptions/SUBSCRIPTION_ID",
      "expire_time": "2023-06-08T07:00:00.000000Z",
      ...
    }
  }
}