TenantAtlas/specs/146-central-tenant-status-presentation/contracts/tenant-lifecycle-presentation.openapi.yaml
2026-03-16 19:17:35 +01:00

128 lines
3.5 KiB
YAML

openapi: 3.1.0
info:
title: Tenant Lifecycle Presentation Contract
version: 0.1.0
description: >-
Internal presentation contract for rendering tenant lifecycle consistently across
tenant management surfaces and canonical viewers. This feature introduces no new
external HTTP endpoints; the contract is expressed as shared schemas for UI-facing
presentation objects.
paths: {}
components:
schemas:
TenantLifecycleValue:
type: string
enum:
- draft
- onboarding
- active
- archived
description: Canonical tenant lifecycle values defined by the tenant domain.
TenantLifecycleBadge:
type: object
additionalProperties: false
required:
- color
- icon
properties:
color:
type: string
description: Shared badge or chip tone token.
icon:
type: string
description: Shared icon token for lifecycle rendering.
iconColor:
type:
- string
- 'null'
description: Optional icon color override.
TenantLifecyclePresentation:
type: object
additionalProperties: false
required:
- value
- label
- badge
- shortDescription
- longDescription
- isInvalidFallback
properties:
value:
$ref: '#/components/schemas/TenantLifecycleValue'
label:
type: string
enum:
- Draft
- Onboarding
- Active
- Archived
badge:
$ref: '#/components/schemas/TenantLifecycleBadge'
shortDescription:
type: string
description: Concise explanation for detail, selector, or viewer surfaces.
longDescription:
type: string
description: Detailed helper text for infolists, banners, or canonical viewers.
isInvalidFallback:
type: boolean
description: Reserved for corrupted or unexpected non-canonical values only.
TenantLifecyclePresentationVariant:
type: object
additionalProperties: false
required:
- surface
- showBadge
- showShortDescription
- showLongDescription
properties:
surface:
type: string
enum:
- table
- detail
- selector
- canonical_viewer
- banner
showBadge:
type: boolean
showShortDescription:
type: boolean
showLongDescription:
type: boolean
contextNote:
type:
- string
- 'null'
description: Optional surface-specific note that does not change lifecycle meaning.
ReferencedTenantLifecyclePresentation:
type: object
additionalProperties: false
required:
- tenantId
- tenantName
- presentation
- viewerContext
properties:
tenantId:
type:
- integer
- 'null'
tenantName:
type:
- string
- 'null'
presentation:
$ref: '#/components/schemas/TenantLifecyclePresentation'
viewerContext:
type: string
enum:
- operation_run
- report
- audit_reference
contextNote:
type:
- string
- 'null'
description: Optional explanatory copy for onboarding or archived references.