{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-factory-controller-disposable-host-conformance-admission.v1.schema.json",
  "title": "Runner Factory Controller Disposable-host Conformance Admission",
  "type": "object",
  "required": ["schemaVersion", "status", "observedAt", "scope", "truth", "operations", "hostProfile", "phases", "watchdog", "evidenceManifest", "stateModel", "invariants", "verification", "productionPrerequisites", "fixtureRegistry", "discovery"],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-factory-disposable-host-conformance-admission/v1" },
    "status": { "const": "DISPOSABLE_HOST_CONFORMANCE_ADMISSION_IMPLEMENTED_NOT_CONFIGURED" },
    "observedAt": { "type": "string", "format": "date-time" },
    "scope": {
      "type": "object",
      "required": ["mode", "input", "output", "hostProvisioned", "packageLoaded", "driverExecuted", "watchdogStarted", "networkAuthority", "deploymentAuthority", "productionEntrypointWired"],
      "properties": {
        "mode": { "const": "PLAN_ADMISSION_ONLY_NO_HOST_EXECUTION" },
        "input": { "const": "EXACT_DRIVER_QUALIFICATION_HOST_PROFILE_PLAN_AND_EMPTY_EVIDENCE_MANIFEST" },
        "output": { "const": "TEST_ONLY_DISPOSABLE_HOST_CONFORMANCE_PLAN_ADMISSION_RECEIPT" },
        "hostProvisioned": { "const": false },
        "packageLoaded": { "const": false },
        "driverExecuted": { "const": false },
        "watchdogStarted": { "const": false },
        "networkAuthority": { "const": "NONE" },
        "deploymentAuthority": { "const": "NONE" },
        "productionEntrypointWired": { "const": false }
      },
      "additionalProperties": false
    },
    "truth": {
      "type": "object",
      "required": ["productionHostClaims", "productionCandidatePackages", "productionDriversConfigured", "systemdUnitsInstalled", "controllerServicesStarted", "controllerListeners", "listenerStarts", "publicRoutes", "reverseProxyRoutes", "externalReadsExecuted", "externalWritesExecuted", "mutationsExecuted", "paidResourcesCreated", "deploymentPermitted"],
      "properties": {
        "productionHostClaims": { "const": 0 }, "productionCandidatePackages": { "const": 0 }, "productionDriversConfigured": { "const": 0 }, "systemdUnitsInstalled": { "const": 0 }, "controllerServicesStarted": { "const": 0 }, "controllerListeners": { "const": 0 }, "listenerStarts": { "const": 0 }, "publicRoutes": { "const": 0 }, "reverseProxyRoutes": { "const": 0 }, "externalReadsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "mutationsExecuted": { "const": 0 }, "paidResourcesCreated": { "const": false }, "deploymentPermitted": { "const": false }
      },
      "additionalProperties": false
    },
    "operations": { "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "object", "required": ["id", "guard", "result"], "properties": { "id": { "enum": ["prepare", "admit", "verify", "dispose"] }, "guard": { "type": "string" }, "result": { "type": "string" } }, "additionalProperties": false } },
    "hostProfile": {
      "type": "object",
      "required": ["provider", "environment", "platform", "lifecycle", "productionAccount", "productionVpc", "publicIp", "ipv6", "ingressRules", "productionRoute", "peering", "instanceProfile", "imdsEnabled", "artifactDelivery", "encryptedRootVolume", "deleteOnTermination", "productionHostMarkerExpected", "serviceUser", "unitName", "endpoint"],
      "properties": {
        "provider": { "const": "AWS_EC2_DISPOSABLE_TEST_HOST" }, "environment": { "const": "NON_PRODUCTION_CONFORMANCE" }, "platform": { "const": "linux/amd64" }, "lifecycle": { "const": "ONE_PLAN_ONE_HOST_TERMINATE" }, "productionAccount": { "const": false }, "productionVpc": { "const": false }, "publicIp": { "const": false }, "ipv6": { "const": false }, "ingressRules": { "const": 0 }, "productionRoute": { "const": false }, "peering": { "const": false }, "instanceProfile": { "const": false }, "imdsEnabled": { "const": false }, "artifactDelivery": { "const": "PRESTAGED_IMMUTABLE_IMAGE" }, "encryptedRootVolume": { "const": true }, "deleteOnTermination": { "const": true }, "productionHostMarkerExpected": { "const": false }, "serviceUser": { "const": "reits-runner-factory" }, "unitName": { "const": "reits-runner-factory-controller.service" }, "endpoint": { "const": "127.0.0.1:8110" }
      },
      "additionalProperties": false
    },
    "phases": { "type": "array", "minItems": 12, "maxItems": 12, "items": { "type": "object", "required": ["ordinal", "id", "evidenceType", "state"], "properties": { "ordinal": { "type": "integer", "minimum": 1, "maximum": 12 }, "id": { "type": "string" }, "evidenceType": { "type": "string" }, "state": { "const": "PLANNED_NOT_EXECUTED" } }, "additionalProperties": false } },
    "watchdog": {
      "type": "object",
      "required": ["mode", "owner", "sharesControllerProcess", "sharesControllerUser", "deadlineSeconds", "killEscalationSeconds", "triggers", "terminalAssertions", "commands", "networkAuthority", "deploymentAuthority"],
      "properties": {
        "mode": { "const": "INDEPENDENT_FAIL_CLOSED_OBSERVER" }, "owner": { "const": "DISPOSABLE_HOST_WATCHDOG" }, "sharesControllerProcess": { "const": false }, "sharesControllerUser": { "const": false }, "deadlineSeconds": { "const": 60 }, "killEscalationSeconds": { "const": 10 },
        "triggers": { "type": "array", "minItems": 8, "maxItems": 8, "items": { "type": "string" } },
        "terminalAssertions": { "type": "array", "minItems": 8, "maxItems": 8, "items": { "type": "string" } },
        "commands": { "const": [] }, "networkAuthority": { "const": "NONE" }, "deploymentAuthority": { "const": "NONE" }
      },
      "additionalProperties": false
    },
    "evidenceManifest": {
      "type": "object",
      "required": ["requiredSlots", "observedEvidence", "state", "signer", "hostCallsExecuted", "driverCallsExecuted", "watchdogStarts"],
      "properties": { "requiredSlots": { "const": 12 }, "observedEvidence": { "const": 0 }, "state": { "const": "REQUIRED_NOT_OBSERVED" }, "signer": { "const": "ASYMMETRIC_REQUIRED_NOT_CONFIGURED" }, "hostCallsExecuted": { "const": 0 }, "driverCallsExecuted": { "const": 0 }, "watchdogStarts": { "const": 0 } },
      "additionalProperties": false
    },
    "stateModel": { "type": "array", "minItems": 9, "maxItems": 9, "items": { "type": "object", "required": ["id", "meaning"], "properties": { "id": { "type": "string" }, "meaning": { "type": "string" } }, "additionalProperties": false } },
    "invariants": { "type": "array", "minItems": 48, "maxItems": 48, "items": { "type": "string" } },
    "verification": {
      "type": "object",
      "required": ["status", "fixtures", "acceptedOutcomes", "deniedOutcomes", "qualificationReceiptsVerified", "admittedPlans", "admissionReceiptsVerified", "disposedHandles", "productionHostClaims", "productionCandidatePackages", "productionDriversConfigured", "systemdUnitsInstalled", "controllerServicesStarted", "listenerStarts", "externalReadsExecuted", "externalWritesExecuted", "mutationsExecuted"],
      "properties": {
        "status": { "const": "PASS_FIXTURE_ONLY" }, "fixtures": { "const": 68 }, "acceptedOutcomes": { "const": 8 }, "deniedOutcomes": { "const": 60 }, "qualificationReceiptsVerified": { "const": 54 }, "admittedPlans": { "const": 5 }, "admissionReceiptsVerified": { "const": 3 }, "disposedHandles": { "const": 1 }, "productionHostClaims": { "const": 0 }, "productionCandidatePackages": { "const": 0 }, "productionDriversConfigured": { "const": 0 }, "systemdUnitsInstalled": { "const": 0 }, "controllerServicesStarted": { "const": 0 }, "listenerStarts": { "const": 0 }, "externalReadsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "mutationsExecuted": { "const": 0 }
      },
      "additionalProperties": false
    },
    "productionPrerequisites": { "type": "array", "minItems": 10, "maxItems": 10, "items": { "type": "string" } },
    "fixtureRegistry": { "type": "object", "required": ["schemaVersion", "cases"], "properties": { "schemaVersion": { "const": "developer.reits.tech/runner-factory-disposable-host-conformance-admission-fixtures/v1" }, "cases": { "type": "array", "minItems": 68, "maxItems": 68, "items": { "type": "object", "required": ["id", "mutation", "expected"], "properties": { "id": { "type": "string", "pattern": "^RFDHCA-[0-9]{2}$" }, "mutation": { "type": "string" }, "expected": { "enum": ["ACCEPT", "DENY"] } }, "additionalProperties": false } } }, "additionalProperties": false },
    "discovery": { "type": "object", "required": ["controller", "lifecycle", "upstream", "workbench", "schema"], "properties": { "controller": { "const": "/api/runner-factory/controller" }, "lifecycle": { "const": "/api/runner-factory" }, "upstream": { "const": "/api/runner-factory/controller/target-host-driver-qualification" }, "workbench": { "const": "/release-foundation#disposable-host-conformance-admission" }, "schema": { "const": "/schemas/runner-factory-controller-disposable-host-conformance-admission.v1.schema.json" } }, "additionalProperties": false }
  },
  "additionalProperties": false
}
