openapi: 3.1.0
info:
  title: TenantAtlas Public Website Surface Contract
  version: 0.1.0
  summary: Static route contract for the v0 TenantAtlas public website.
  description: >-
    This contract defines the required public routes for Spec 213. The website
    serves static HTML pages only in this feature. Contact handling remains a
    page-level conversion surface and does not introduce an internal submission
    API in Spec 213.
servers:
  - url: http://localhost:{port}
    description: Local Astro development or preview server
    variables:
      port:
        default: "4321"
tags:
  - name: Public Pages
    description: Public HTML routes required for v0 launch
paths:
  /:
    get:
      tags: [Public Pages]
      operationId: getHomePage
      summary: Home page
      description: Product-category framing, product pillars, trust positioning, and next-step CTA.
      responses:
        "200":
          description: Home page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /product:
    get:
      tags: [Public Pages]
      operationId: getProductPage
      summary: Product page
      description: Explains TenantAtlas as one connected governance model rather than a loose feature list.
      responses:
        "200":
          description: Product page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /solutions:
    get:
      tags: [Public Pages]
      operationId: getSolutionsPage
      summary: Solutions page
      description: Audience-specific fit for MSP and Enterprise IT visitors.
      responses:
        "200":
          description: Solutions page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /security-trust:
    get:
      tags: [Public Pages]
      operationId: getSecurityTrustPage
      summary: Security and Trust page
      description: Product principles, trust posture, and substantiated public claims.
      responses:
        "200":
          description: Security and Trust page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /integrations:
    get:
      tags: [Public Pages]
      operationId: getIntegrationsPage
      summary: Integrations page
      description: Public ecosystem fit for Microsoft-centric workflows and adjacent systems only where grounded in product truth.
      responses:
        "200":
          description: Integrations page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /contact:
    get:
      tags: [Public Pages]
      operationId: getContactPage
      summary: Contact or demo page
      description: Qualification and next-step page for contact intent.
      responses:
        "200":
          description: Contact page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /legal:
    get:
      tags: [Public Pages]
      operationId: getLegalIndexPage
      summary: Legal index page
      description: Landing page for public legal disclosures.
      responses:
        "200":
          description: Legal index HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /privacy:
    get:
      tags: [Public Pages]
      operationId: getPrivacyPage
      summary: Privacy page
      description: Public privacy disclosure required for launch.
      responses:
        "200":
          description: Privacy page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /terms:
    get:
      tags: [Public Pages]
      operationId: getTermsPage
      summary: Terms page
      description: Public terms disclosure required for launch.
      responses:
        "200":
          description: Terms page HTML
          content:
            text/html:
              schema:
                $ref: "#/components/schemas/HtmlDocument"
  /robots.txt:
    get:
      tags: [Public Pages]
      operationId: getRobotsFile
      summary: Robots file
      description: Public robots instructions for search crawlers.
      responses:
        "200":
          description: Robots text output
          content:
            text/plain:
              schema:
                type: string
  /sitemap.xml:
    get:
      tags: [Public Pages]
      operationId: getSitemapFile
      summary: Sitemap file
      description: Public XML sitemap covering the published website routes.
      responses:
        "200":
          description: XML sitemap output
          content:
            application/xml:
              schema:
                type: string
components:
  schemas:
    HtmlDocument:
      type: string
      description: Server-rendered static HTML document