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.
Operações e eventos¶
Estado de processamento e eventos independentes; não existe FK entre eles.
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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
Valores: PENDING, CLONED, FAILED.
HeritageType¶
Valores: OWN, NONE, INHERITED, OVERWRITE.
HttpMethod¶
Valores: GET, POST, PUT, PATCH, DELETE.
InstanceSelectType¶
enums/InstanceSelectType.java.
Valores: INSTANCE_INFORM_ALL, INSTANCE_INFORM_ID, TEMPLATE_SETUP.
IpPolicyType¶
Valores: ALLOW, DENY.
OperationStatus¶
Valores: PENDING, FAILED, COMPLETED.
OperationType¶
Valores: TEMPLATE_INSTANTIATION, TEMPLATE_UPGRADE.
OutboxEventStatus¶
Valores: PENDING, SENT.
RateLimitApplyOver¶
enums/RateLimitApplyOver.java.
Valores: GLOBAL, INSTANCE.
StageName¶
Valores: CREATING_GATEWAY, RESOLVING_SETUPS, CREATING_RESOURCES, PATCHING_GATEWAY, CREATING_CATEGORIES, CREATING_ROUTES.
StageStatus¶
Valores: IN_PROGRESS, COMPLETED, FAILED.
TemplateRevisionStatus¶
enums/TemplateRevisionStatus.java.
Valores: DRAFT, PUBLISHABLE, AVAILABLE, DEPRECATED.
TemplateSetupType¶
Valores: AUTHENTICATION_ALL, AUTHENTICATION_BASIC, AUTHENTICATION_API_KEY, IP_POLICY_ALL, IP_POLICY_ALLOW, IP_POLICY_DENY, APPLICATION_ENVIRONMENT, APPLICATION_ACCOUNT.
Visibility¶
Valores: GLOBAL, TENANT_SEQUENCE, HIDDEN.