Pular para conteúdo

Template Service — modelos e operações

Owner: Template Service. Escopo: database do tenant autor. A instanciação lê o banco do proprietário e mantém a Operation no tenant consumidor. A escolha de owner e os snapshots são parte do contrato, não uma cópia automática de todo o banco.

Modelos visuais

Modelos e revisões

Identidades e associação entre versões; categorias estão na visão de autoria.

Modelos e revisões; visão simplificada. Detalhes no visualizador abaixo. Modelos e revisões; visão simplificada em tema escuro.

Operações e eventos

Estado de processamento e eventos independentes; não existe FK entre eles.

Operações e eventos; visão simplificada. Detalhes no visualizador abaixo. Operações e eventos; visão simplificada em tema escuro.

Explorar diagramas detalhados com zoom

Legenda e convenções dos modelos. Os dicionários e evidências desta página permanecem a referência dos campos.

Identidades e revisões

Referências por ID são lógicas. Os nomes físicos e os IDs de revisão são diferentes dos modelos de Core.

%%{init: {"theme":"base","themeVariables":{"fontFamily":"Arial, sans-serif","fontSize":"16px","lineColor":"#64748b","primaryTextColor":"#172b4d"},"flowchart":{"htmlLabels":true,"useMaxWidth":true,"nodeSpacing":28,"rankSpacing":38,"padding":14,"curve":"linear","subGraphTitleMargin":{"top":12,"bottom":16}},"sequence":{"useMaxWidth":true,"actorMargin":28,"width":145,"height":45,"diagramMarginX":32,"diagramMarginY":12,"messageMargin":24,"wrap":true,"mirrorActors":false},"themeCSS":".edgeLabel, .edgeLabel p {background-color:var(--diagram-surface)!important;color:var(--diagram-text)!important}\n.cluster rect {fill:var(--diagram-group)!important;stroke:var(--diagram-line)!important}\n.cluster-label span, .cluster-label text {color:var(--diagram-text)!important;fill:var(--diagram-text)!important}\n.flowchart-link, .actor-line {stroke:var(--diagram-line)!important}\nmarker path {fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important}\n.actor {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\ntext.actor, .messageText, .loopText, .labelText {fill:var(--diagram-text)!important}\n.messageLine0, .messageLine1, .loopLine {stroke:var(--diagram-line)!important}\n.labelBox {fill:var(--diagram-surface)!important;stroke:var(--diagram-line)!important}\n.note {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.noteText {fill:var(--diagram-text)!important}\n.nodeLabel, .nodeLabel p, .nodeLabel span {color:var(--diagram-text)!important}\n.node .nodeLabel, .node .nodeLabel p {font-size:17px;font-weight:600;line-height:1.4;text-align:center}\n.nodeLabel small {display:inline-block;margin-top:4px;font-size:15px;font-weight:400;line-height:1.4;color:var(--diagram-description)!important}\ntext.actor, text.actor tspan {font-size:17px;font-weight:600}\n.node.entry rect, .node.entry polygon, .node.entry path, .node.entry circle {fill:var(--diagram-entry)!important;stroke:var(--diagram-entry-border)!important}\n.node.domain rect, .node.domain polygon, .node.domain path, .node.domain circle {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\n.node.security rect, .node.security polygon, .node.security path, .node.security circle {fill:var(--diagram-security)!important;stroke:var(--diagram-security-border)!important}\n.node.store rect, .node.store polygon, .node.store path, .node.store circle {fill:var(--diagram-store)!important;stroke:var(--diagram-store-border)!important}\n.node.async rect, .node.async polygon, .node.async path, .node.async circle {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.node.external rect, .node.external polygon, .node.external path, .node.external circle {fill:var(--diagram-external)!important;stroke:var(--diagram-external-border)!important}\n text.actor tspan, .loopText tspan, .labelText tspan, .messageText tspan, .noteText tspan {fill:var(--diagram-text)!important}\n\n"}}%%
flowchart TB
    rr["route_template_revisions<br/><small>Configuração de modelo</small>"]:::store
    gr["gateway_template_revisions<br/><small>Versão consumível</small>"]:::store
    route["route_templates<br/><small>Identidade da rota modelo</small>"]:::store
    gateway["gateway_templates<br/><small>Identidade do modelo</small>"]:::store
    rr -->|gatewayTemplateRevisionId| gr
    rr -->|routeTemplateId| route
    gr -->|gatewayTemplateId| gateway
    classDef store stroke-width:1.5px;

route_templates.gatewayTemplateId e route_template_categories.gatewayTemplateId apontam à raiz GatewayTemplate; route_templates.categoryId referencia sua categoria. São relações de autoria, preservadas como snapshots na publicação.

Snapshots e execução

A revisão publicada embute raízes, categorias e revisões de rotas; a Operation de teste pode embutir testTemplateSnapshot. A Operation normal referencia a origem por template/versão/owner e mantém o progresso no consumidor.

%%{init: {"theme":"base","themeVariables":{"fontFamily":"Arial, sans-serif","fontSize":"16px","lineColor":"#64748b","primaryTextColor":"#172b4d"},"flowchart":{"htmlLabels":true,"useMaxWidth":true,"nodeSpacing":28,"rankSpacing":38,"padding":14,"curve":"linear","subGraphTitleMargin":{"top":12,"bottom":16}},"sequence":{"useMaxWidth":true,"actorMargin":28,"width":145,"height":45,"diagramMarginX":32,"diagramMarginY":12,"messageMargin":24,"wrap":true,"mirrorActors":false},"themeCSS":".edgeLabel, .edgeLabel p {background-color:var(--diagram-surface)!important;color:var(--diagram-text)!important}\n.cluster rect {fill:var(--diagram-group)!important;stroke:var(--diagram-line)!important}\n.cluster-label span, .cluster-label text {color:var(--diagram-text)!important;fill:var(--diagram-text)!important}\n.flowchart-link, .actor-line {stroke:var(--diagram-line)!important}\nmarker path {fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important}\n.actor {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\ntext.actor, .messageText, .loopText, .labelText {fill:var(--diagram-text)!important}\n.messageLine0, .messageLine1, .loopLine {stroke:var(--diagram-line)!important}\n.labelBox {fill:var(--diagram-surface)!important;stroke:var(--diagram-line)!important}\n.note {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.noteText {fill:var(--diagram-text)!important}\n.nodeLabel, .nodeLabel p, .nodeLabel span {color:var(--diagram-text)!important}\n.node .nodeLabel, .node .nodeLabel p {font-size:17px;font-weight:600;line-height:1.4;text-align:center}\n.nodeLabel small {display:inline-block;margin-top:4px;font-size:15px;font-weight:400;line-height:1.4;color:var(--diagram-description)!important}\ntext.actor, text.actor tspan {font-size:17px;font-weight:600}\n.node.entry rect, .node.entry polygon, .node.entry path, .node.entry circle {fill:var(--diagram-entry)!important;stroke:var(--diagram-entry-border)!important}\n.node.domain rect, .node.domain polygon, .node.domain path, .node.domain circle {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\n.node.security rect, .node.security polygon, .node.security path, .node.security circle {fill:var(--diagram-security)!important;stroke:var(--diagram-security-border)!important}\n.node.store rect, .node.store polygon, .node.store path, .node.store circle {fill:var(--diagram-store)!important;stroke:var(--diagram-store-border)!important}\n.node.async rect, .node.async polygon, .node.async path, .node.async circle {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.node.external rect, .node.external polygon, .node.external path, .node.external circle {fill:var(--diagram-external)!important;stroke:var(--diagram-external-border)!important}\n text.actor tspan, .loopText tspan, .labelText tspan, .messageText tspan, .noteText tspan {fill:var(--diagram-text)!important}\n\n"}}%%
flowchart TB
    revision["gateway_template_revisions<br/><small>Owner: tenant autor</small>"]:::store
    snapshots["publishedRoutes / publishedCategories<br/><small>publishedRouteRevisions · embutidos</small>"]:::domain
    operation["operations<br/><small>Owner: tenant consumidor</small>"]:::async
    core["Core<br/><small>Instância e wizard</small>"]:::domain
    revision -->|Snapshot| snapshots
    operation -->|template: ID / versão / owner| revision
    operation -->|gateway.gatewayId / wizard.wizardId| core
    classDef domain stroke-width:1.5px;
    classDef store stroke-width:1.5px;
    classDef async stroke-width:1.5px;
Collection Escrita e consultas
gateway_templates Identidade, metadados, tags, ícone e visibilidade. CRUD; metadados globais são publicados no Registry por API
gateway_template_revisions Autoria/revisões; consulta por gateway/status/versão. Publicação valida e prepara; promoção disponibiliza e captura snapshots
route_templates Identidade, categoria, gateway e metadados da rota modelo; CRUD e leitura pelo gateway
route_template_revisions Configuração embutida, herança, seleção para instanciação e vínculo à revisão do gateway modelo
route_template_categories Agrupamento lógico de rotas por gateway; CRUD e captura em publishedCategories
operations Insert, checkpoints por etapa, retry e conclusão/falha. Consulta por gateway.gatewayId, upgradeKey e status; claim de upgrade com token/lease
outbox_events Eventos de publicação/exclusão de template; transporte comum descrito em eventos

Fontes: repositories, ciclo de revisão, snapshots, instanciação, upgrade.

Índices e defaults

Collection Nome / chave crescente Restrição
gateway_template_revisions uq_gateway_work_revision / gatewayTemplateId Unique parcial em status ∈ {DRAFT,PUBLISHABLE}
route_template_revisions uq_route_work_revision / routeTemplateId Unique parcial em status ∈ {DRAFT,PUBLISHABLE}
operations idx_operation_gateway_id / gateway.gatewayId Consulta de progresso
operations idx_template_upgrade_identity / upgradeKey Unique parcial onde upgradeKey tem tipo string
operations idx_one_pending_template_upgrade / gateway.gatewayId Unique parcial operationType=TEMPLATE_UPGRADE e operationStatus=PENDING

Fontes: GatewayTemplateRevisionRepository, RouteTemplateRevisionRepository, CurrentTenantOperationRepository. Não há TTL Mongo declarado; executionExpiresAt controla um lease de 900 s, não exclusão automática.

Operation é criada PENDING, com mapa de etapas e início de CREATING_GATEWAY; status finais são FAILED/COMPLETED. operationType ausente é lido como TEMPLATE_INSTANTIATION. stages é um mapa por StageName; listas de recursos clonados conservam IDs de origem/destino e estado. O JSON de request de upgrade é uma string persistida, não uma collection.

O nome BSON da nota da revisão é release-notes, mapeado no getter/setter releaseNotes. hasConfigurations é propriedade calculada explicitamente mapeada para BSON a partir de templateSetups. Diferentemente do wizard Core, não é marcada @BsonIgnore.

Referências históricas e regras de versão estão em versionamento. Regras de visibilidade/owner não devem ser confundidas com autorização geral cross-tenant.

Dicionário de documentos

Os nomes BSON abaixo respeitam @BsonId/@BsonProperty. A nulabilidade descreve o tipo Java, não uma validação de schema Mongo. Valores iniciais Java precedem os construtores e serviços; os defaults de criação e invariantes estão descritos acima. Referências anuláveis não significam que a API aceite omiti-las em todas as operações. Campos de mapas/documentos livres não possuem schema fechado no modelo.

Propriedades calculadas expostas por getters públicos são identificadas separadamente: fazem parte da superfície do codec POJO, não do estado independente da entidade. @BsonIgnore é respeitado. A representação UUID depende da configuração do codec; os tipos de transporte JSON não substituem os tipos BSON.

Collection / documento raiz Modelo
gateway_templates GatewayTemplate
gateway_template_revisions GatewayTemplateRevision
operations Operation
outbox_events OutboxEvent
route_templates RouteTemplate
route_template_categories RouteTemplateCategory
route_template_revisions RouteTemplateRevision

gateway_templates — GatewayTemplate

GatewayTemplate.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
tenantName String string Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
tags List<String> array Referência anulável; inicial Java: null
icon String string Referência anulável; inicial Java: null
visibility Visibility enum string Referência anulável; inicial Java: null
hash String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "tenantName": "exemplo-sanitizado"
}

gateway_template_revisions — GatewayTemplateRevision

GatewayTemplateRevision.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
versionNo (herdado) String string Referência anulável; inicial Java: null
status (herdado) TemplateRevisionStatus enum string Referência anulável; inicial Java: null
gatewayTemplateId ObjectId ObjectId Referência anulável; inicial Java: null
authentication Authentication documento embutido Referência anulável; inicial Java: null
ipPolicy IpPolicy documento embutido Referência anulável; inicial Java: null
rateLimit RateLimit documento embutido Referência anulável; inicial Java: null
basePath String string Referência anulável; inicial Java: null
documentationPath String string Referência anulável; inicial Java: null
release-notes String string Referência anulável; inicial Java: null
templateSetups List<TemplateSetup> array Referência anulável; inicial Java: null
publishedRoutes List<RouteTemplate> array Referência anulável; inicial Java: null
publishedCategories List<RouteTemplateCategory> array Referência anulável; inicial Java: null
publishedRouteRevisions List<RouteTemplateRevision> array Referência anulável; inicial Java: null
hasConfigurations boolean boolean Calculado por getHasConfigurations(); propriedade derivada

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "versionNo": "0.1"
}

operations — Operation

Operation.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
testTemplateSnapshot GatewayTemplateRevision documento embutido Referência anulável; inicial Java: null
tenantId String string Referência anulável; inicial Java: null
template OperationTemplate documento embutido Referência anulável; inicial Java: null
operationStatus OperationStatus enum string Referência anulável; inicial Java: null
gateway OperationGateway documento embutido Referência anulável; inicial Java: null
wizard OperationWizard documento embutido Referência anulável; inicial Java: null
stages Map<String, OperationStage> documento / mapa Referência anulável; inicial Java: null
rateLimits List<ClonedResource> array Referência anulável; inicial Java: null
categories List<ClonedResource> array Referência anulável; inicial Java: null
routes List<ClonedResource> array Referência anulável; inicial Java: null
error OperationError documento embutido Referência anulável; inicial Java: null
completedAt Instant data/hora Referência anulável; inicial Java: null
operationType OperationType enum string Referência anulável; inicial Java: null
gatewayRevisionId String string Referência anulável; inicial Java: null
upgradeKey String string Referência anulável; inicial Java: null
upgradeRequestJson String string Referência anulável; inicial Java: null
executionToken String string Referência anulável; inicial Java: null
executionExpiresAt Instant data/hora Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "tenantId": "exemplo-id"
}

outbox_events — OutboxEvent

OutboxEvent.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
eventId ObjectId ObjectId Referência anulável; inicial Java: null
routingKey String string Referência anulável; inicial Java: null
tenantId String string Referência anulável; inicial Java: null
payload Document documento / mapa Referência anulável; inicial Java: null
status OutboxEventStatus enum string Referência anulável; inicial Java: null
attempts Integer int32 Referência anulável; inicial Java: null
nextAttemptAt Instant data/hora Referência anulável; inicial Java: null
lastError String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "eventId": {
    "$oid": "000000000000000000000001"
  }
}

route_templates — RouteTemplate

RouteTemplate.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayTemplateId ObjectId ObjectId Referência anulável; inicial Java: null
categoryId ObjectId ObjectId Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayTemplateId": {
    "$oid": "000000000000000000000001"
  }
}

route_template_categories — RouteTemplateCategory

RouteTemplateCategory.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayTemplateId ObjectId ObjectId Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayTemplateId": {
    "$oid": "000000000000000000000001"
  }
}

route_template_revisions — RouteTemplateRevision

RouteTemplateRevision.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
versionNo (herdado) String string Referência anulável; inicial Java: null
status (herdado) TemplateRevisionStatus enum string Referência anulável; inicial Java: null
routeTemplateId ObjectId ObjectId Referência anulável; inicial Java: null
gatewayTemplateRevisionId ObjectId ObjectId Referência anulável; inicial Java: null
ipaasResource IpaasResource documento embutido Referência anulável; inicial Java: null
client ClientConfig documento embutido Referência anulável; inicial Java: null
resource ResourceConfig documento embutido Referência anulável; inicial Java: null
response Response documento embutido Referência anulável; inicial Java: null
ipPolicy RouteIpPolicy documento embutido Referência anulável; inicial Java: null
rateLimit RouteRateLimit documento embutido Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "versionNo": "0.1"
}

Estruturas embutidas, herança e enums

Estes tipos não criam collections próprias. Quando uma entidade raiz aparece dentro de um snapshot, a mesma estrutura é embutida naquele caminho. Tipos de elementos de arrays e valores de mapas estão vinculados nas tabelas.

BaseEntity

entity/BaseEntity.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt Instant data/hora Referência anulável; inicial Java: null
updatedAt Instant data/hora Referência anulável; inicial Java: null

VersionedTemplateRevision

entity/VersionedTemplateRevision.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
versionNo String string Referência anulável; inicial Java: null
status TemplateRevisionStatus enum string Referência anulável; inicial Java: null

Body

entity/embedded/client/Body.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
content String string Referência anulável; inicial Java: null
type String string Referência anulável; inicial Java: null

ClientConfig

entity/embedded/client/ClientConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
input InputConfig documento embutido Referência anulável; inicial Java: null
method HttpMethod enum string Referência anulável; inicial Java: null
path String string Referência anulável; inicial Java: null
authentication RouteAuthentication documento embutido Referência anulável; inicial Java: null

Header

entity/embedded/client/Header.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
key String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

InputConfig

entity/embedded/client/InputConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
headers List<Header> array Referência anulável; inicial Java: null
body Body documento embutido Referência anulável; inicial Java: null
pathParams List<PathParam> array Referência anulável; inicial Java: null
queryParams List<QueryParam> array Referência anulável; inicial Java: null

PathParam

entity/embedded/client/PathParam.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
key String string Referência anulável; inicial Java: null
keyType String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

QueryParam

entity/embedded/client/QueryParam.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
key String string Referência anulável; inicial Java: null
keyType String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

RouteAuthentication

entity/embedded/client/RouteAuthentication.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
heritageType HeritageType enum string Referência anulável; inicial Java: null
type AuthenticationType enum string Referência anulável; inicial Java: null
authenticationId ObjectId ObjectId Referência anulável; inicial Java: null
instanceSelectType InstanceSelectType enum string Referência anulável; inicial Java: null
informedByInstance boolean boolean Calculado por isInformedByInstance(); propriedade derivada
chosenByTemplateCreator boolean boolean Calculado por isChosenByTemplateCreator(); propriedade derivada

Authentication

entity/embedded/gateway/Authentication.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
type AuthenticationType enum string Referência anulável; inicial Java: null
authenticationId ObjectId ObjectId Referência anulável; inicial Java: null
instanceSelectType InstanceSelectType enum string Referência anulável; inicial Java: null
informedByInstance boolean boolean Calculado por isInformedByInstance(); propriedade derivada
chosenByTemplateCreator boolean boolean Calculado por isChosenByTemplateCreator(); propriedade derivada

IpPolicy

entity/embedded/gateway/IpPolicy.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
ipPolicyIds List<ObjectId> array Referência anulável; inicial Java: null
type IpPolicyType enum string Referência anulável; inicial Java: null
instanceSelectType InstanceSelectType enum string Referência anulável; inicial Java: null
informedByInstance boolean boolean Calculado por isInformedByInstance(); propriedade derivada
chosenByTemplateCreator boolean boolean Calculado por isChosenByTemplateCreator(); propriedade derivada

IpaasResource

entity/embedded/gateway/IpaasResource.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
applicationId UUID UUID (representação do codec) Referência anulável; inicial Java: null
resourceId UUID UUID (representação do codec) Referência anulável; inicial Java: null
serviceId UUID UUID (representação do codec) Referência anulável; inicial Java: null
environmentId UUID UUID (representação do codec) Referência anulável; inicial Java: null
userSelectAccount Boolean boolean Referência anulável; inicial Java: null
userSelectEnvironment Boolean boolean Referência anulável; inicial Java: null

RateLimit

entity/embedded/gateway/RateLimit.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
rateLimitId ObjectId ObjectId Referência anulável; inicial Java: null
applyOver RateLimitApplyOver enum string Referência anulável; inicial Java: null

TemplateSetup

entity/embedded/gateway/TemplateSetup.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
targetObjectPath String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
type TemplateSetupType enum string Referência anulável; inicial Java: null
defaultValue String string Referência anulável; inicial Java: null
applicationId UUID UUID (representação do codec) Referência anulável; inicial Java: null
resourceId UUID UUID (representação do codec) Referência anulável; inicial Java: null
serviceId UUID UUID (representação do codec) Referência anulável; inicial Java: null
environmentId UUID UUID (representação do codec) Referência anulável; inicial Java: null

ClonedResource

entity/embedded/operation/ClonedResource.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
templateResourceId String string Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
status CloneStatus enum string Referência anulável; inicial Java: null
clonedResourceId String string Referência anulável; inicial Java: null
cloned boolean boolean Calculado por isCloned(); propriedade derivada

OperationError

entity/embedded/operation/OperationError.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
stage StageName enum string Referência anulável; inicial Java: null
templateResourceId String string Referência anulável; inicial Java: null
code String string Referência anulável; inicial Java: null
message String string Referência anulável; inicial Java: null
httpStatus Integer int32 Referência anulável; inicial Java: null
occurredAt Instant data/hora Referência anulável; inicial Java: null

OperationGateway

entity/embedded/operation/OperationGateway.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
gatewayId String string Referência anulável; inicial Java: null
createdAt Instant data/hora Referência anulável; inicial Java: null

OperationStage

entity/embedded/operation/OperationStage.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
status StageStatus enum string Referência anulável; inicial Java: null
startedAt Instant data/hora Referência anulável; inicial Java: null
completedAt Instant data/hora Referência anulável; inicial Java: null

OperationTemplate

entity/embedded/operation/OperationTemplate.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
templateId String string Referência anulável; inicial Java: null
version String string Referência anulável; inicial Java: null
ownerTenantId String string Referência anulável; inicial Java: null

OperationWizard

entity/embedded/operation/OperationWizard.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
wizardId String string Referência anulável; inicial Java: null
resolvedAt Instant data/hora Referência anulável; inicial Java: null
resolved boolean boolean Calculado por isResolved(); propriedade derivada

ResourceConfig

entity/embedded/resource/ResourceConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
transform Transform documento embutido Referência anulável; inicial Java: null

Response

entity/embedded/resource/Response.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
responseConfig List<ResponseConfigEntry> array Referência anulável; inicial Java: null

ResponseBody

entity/embedded/resource/ResponseBody.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
type String string Referência anulável; inicial Java: null
content String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

ResponseConfigEntry

entity/embedded/resource/ResponseConfigEntry.java.

A propriedade Java id é codificada como _id pela convenção do codec POJO MongoDB. Identifica o elemento embutido.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id ObjectId ObjectId Referência anulável; inicial Java: null
originStatusCode String string Referência anulável; inicial Java: null
gatewayStatusCode Integer int32 Referência anulável; inicial Java: null
type String string Referência anulável; inicial Java: null
headers List<ResponseHeader> array Referência anulável; inicial Java: null
body ResponseBody documento embutido Referência anulável; inicial Java: null

ResponseHeader

entity/embedded/resource/ResponseHeader.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
key String string Referência anulável; inicial Java: null
value String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

RouteIpPolicy

entity/embedded/resource/RouteIpPolicy.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
ipPolicyIds List<ObjectId> array Referência anulável; inicial Java: null
type IpPolicyType enum string Referência anulável; inicial Java: null
instanceSelectType InstanceSelectType enum string Referência anulável; inicial Java: null
heritageType HeritageType enum string Referência anulável; inicial Java: null
informedByInstance boolean boolean Calculado por isInformedByInstance(); propriedade derivada
chosenByTemplateCreator boolean boolean Calculado por isChosenByTemplateCreator(); propriedade derivada

RouteRateLimit

entity/embedded/resource/RouteRateLimit.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
rateLimitId ObjectId ObjectId Referência anulável; inicial Java: null
applyOver RateLimitApplyOver enum string Referência anulável; inicial Java: null
heritageType HeritageType enum string Referência anulável; inicial Java: null

Transform

entity/embedded/resource/Transform.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
headers List<TransformField> array Referência anulável; inicial Java: null
body Body documento embutido Referência anulável; inicial Java: null
pathParams List<TransformField> array Referência anulável; inicial Java: null
queryParams List<TransformField> array Referência anulável; inicial Java: null

TransformField

entity/embedded/resource/TransformField.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
key String string Referência anulável; inicial Java: null
value String string Referência anulável; inicial Java: null

AuthenticationType

enums/AuthenticationType.java.

Valores: BASIC, API_KEY, OAUTH2_EXTERNAL, OAUTH2_PROVIDED.

CloneStatus

enums/CloneStatus.java.

Valores: PENDING, CLONED, FAILED.

HeritageType

enums/HeritageType.java.

Valores: OWN, NONE, INHERITED, OVERWRITE.

HttpMethod

enums/HttpMethod.java.

Valores: GET, POST, PUT, PATCH, DELETE.

InstanceSelectType

enums/InstanceSelectType.java.

Valores: INSTANCE_INFORM_ALL, INSTANCE_INFORM_ID, TEMPLATE_SETUP.

IpPolicyType

enums/IpPolicyType.java.

Valores: ALLOW, DENY.

OperationStatus

enums/OperationStatus.java.

Valores: PENDING, FAILED, COMPLETED.

OperationType

enums/OperationType.java.

Valores: TEMPLATE_INSTANTIATION, TEMPLATE_UPGRADE.

OutboxEventStatus

enums/OutboxEventStatus.java.

Valores: PENDING, SENT.

RateLimitApplyOver

enums/RateLimitApplyOver.java.

Valores: GLOBAL, INSTANCE.

StageName

enums/StageName.java.

Valores: CREATING_GATEWAY, RESOLVING_SETUPS, CREATING_RESOURCES, PATCHING_GATEWAY, CREATING_CATEGORIES, CREATING_ROUTES.

StageStatus

enums/StageStatus.java.

Valores: IN_PROGRESS, COMPLETED, FAILED.

TemplateRevisionStatus

enums/TemplateRevisionStatus.java.

Valores: DRAFT, PUBLISHABLE, AVAILABLE, DEPRECATED.

TemplateSetupType

enums/TemplateSetupType.java.

Valores: AUTHENTICATION_ALL, AUTHENTICATION_BASIC, AUTHENTICATION_API_KEY, IP_POLICY_ALL, IP_POLICY_ALLOW, IP_POLICY_DENY, APPLICATION_ENVIRONMENT, APPLICATION_ACCOUNT.

Visibility

enums/Visibility.java.

Valores: GLOBAL, TENANT_SEQUENCE, HIDDEN.