|
32 | 32 | description: Workflows, runs, and provenance records |
33 | 33 | - name: Collaboration |
34 | 34 | description: Comments and ratings |
| 35 | + - name: Boot |
| 36 | + description: NLBoot plans, artifact cache, proof records, and Apple Silicon adapter evidence |
35 | 37 |
|
36 | 38 | components: |
37 | 39 | securitySchemes: |
@@ -524,3 +526,111 @@ paths: |
524 | 526 | description: Request body is valid JSON but fails schema validation. |
525 | 527 | content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
526 | 528 |
|
| 529 | + |
| 530 | + /v2/nlboot-plans: |
| 531 | + post: |
| 532 | + operationId: upsertNLBootPlan |
| 533 | + summary: Upsert an NLBootPlan |
| 534 | + description: Creates or updates an NLBoot boot plan describing ordered boot stages, artifact refs, and verification policy for a target device. Idempotent on `id`. |
| 535 | + tags: [Boot] |
| 536 | + requestBody: |
| 537 | + required: true |
| 538 | + content: |
| 539 | + application/json: |
| 540 | + schema: { $ref: './schemas/NLBootPlan.json' } |
| 541 | + responses: |
| 542 | + '200': |
| 543 | + description: NLBootPlan created or updated successfully. |
| 544 | + '400': |
| 545 | + description: Request body is malformed JSON. |
| 546 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 547 | + '401': |
| 548 | + description: Missing or invalid authentication token. |
| 549 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 550 | + '403': |
| 551 | + description: Authenticated subject is not permitted to upsert boot plans. |
| 552 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 553 | + '422': |
| 554 | + description: Request body is valid JSON but fails schema validation. |
| 555 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 556 | + |
| 557 | + /v2/artifact-cache-records: |
| 558 | + post: |
| 559 | + operationId: upsertArtifactCacheRecord |
| 560 | + summary: Upsert an ArtifactCacheRecord |
| 561 | + description: Creates or updates a content-addressed cache entry for a locally-stored NLBoot artifact. Idempotent on `id`. |
| 562 | + tags: [Boot] |
| 563 | + requestBody: |
| 564 | + required: true |
| 565 | + content: |
| 566 | + application/json: |
| 567 | + schema: { $ref: './schemas/ArtifactCacheRecord.json' } |
| 568 | + responses: |
| 569 | + '200': |
| 570 | + description: ArtifactCacheRecord created or updated successfully. |
| 571 | + '400': |
| 572 | + description: Request body is malformed JSON. |
| 573 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 574 | + '401': |
| 575 | + description: Missing or invalid authentication token. |
| 576 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 577 | + '403': |
| 578 | + description: Authenticated subject is not permitted to upsert artifact cache records. |
| 579 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 580 | + '422': |
| 581 | + description: Request body is valid JSON but fails schema validation. |
| 582 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 583 | + |
| 584 | + /v2/boot-proof-records: |
| 585 | + post: |
| 586 | + operationId: recordBootProof |
| 587 | + summary: Record a BootProofRecord |
| 588 | + description: Persists an immutable boot integrity proof record with per-stage verdicts and attestation evidence refs. Idempotent on `id`. |
| 589 | + tags: [Boot] |
| 590 | + requestBody: |
| 591 | + required: true |
| 592 | + content: |
| 593 | + application/json: |
| 594 | + schema: { $ref: './schemas/BootProofRecord.json' } |
| 595 | + responses: |
| 596 | + '200': |
| 597 | + description: BootProofRecord persisted successfully. |
| 598 | + '400': |
| 599 | + description: Request body is malformed JSON. |
| 600 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 601 | + '401': |
| 602 | + description: Missing or invalid authentication token. |
| 603 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 604 | + '403': |
| 605 | + description: Authenticated subject is not permitted to record boot proofs. |
| 606 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 607 | + '422': |
| 608 | + description: Request body is valid JSON but fails schema validation. |
| 609 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 610 | + |
| 611 | + /v2/apple-silicon-adapter-evidence: |
| 612 | + post: |
| 613 | + operationId: recordAppleSiliconAdapterEvidence |
| 614 | + summary: Record AppleSiliconAdapterEvidence |
| 615 | + description: Persists evidence collected by the Asahi-compatible Apple Silicon boot adapter, capturing chip identity, security policy, and boot-chain hashes. Idempotent on `id`. |
| 616 | + tags: [Boot] |
| 617 | + requestBody: |
| 618 | + required: true |
| 619 | + content: |
| 620 | + application/json: |
| 621 | + schema: { $ref: './schemas/AppleSiliconAdapterEvidence.json' } |
| 622 | + responses: |
| 623 | + '200': |
| 624 | + description: AppleSiliconAdapterEvidence persisted successfully. |
| 625 | + '400': |
| 626 | + description: Request body is malformed JSON. |
| 627 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 628 | + '401': |
| 629 | + description: Missing or invalid authentication token. |
| 630 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 631 | + '403': |
| 632 | + description: Authenticated subject is not permitted to record Apple Silicon adapter evidence. |
| 633 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
| 634 | + '422': |
| 635 | + description: Request body is valid JSON but fails schema validation. |
| 636 | + content: { application/json: { schema: { $ref: '#/components/schemas/Error' } } } |
0 commit comments