Openstatus sdk www.openstatus.dev

Status page (#6)

* fix gh action

* add status page

authored by

Thibault Le Ouay and committed by
GitHub
c00aa42d 15bb1d9e

+2438 -10
+345 -10
README.md
··· 4 4 [![npm](https://img.shields.io/npm/v/@openstatus/sdk-node)](https://www.npmjs.com/package/@openstatus/sdk-node) 5 5 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 6 6 7 - Official Node.js SDK for [OpenStatus](https://openstatus.dev) - The open-source status page with uptime monitoring. 7 + Official Node.js SDK for [OpenStatus](https://openstatus.dev) - The open-source 8 + status page with uptime monitoring. 8 9 9 10 ## Features 10 11 11 12 ### Status Page 12 - - **Status Reports** - Manage incident and maintenance reports with update timelines 13 + 14 + - **Status Pages** - Create and manage public status pages with custom domains 15 + - **Page Components** - Add monitor-based or static components with grouping 16 + - **Subscribers** - Manage email subscriptions for status updates 17 + - **Status Reports** - Manage incident and maintenance reports with update 18 + timelines 13 19 14 20 ### Monitoring 21 + 15 22 - **HTTP Monitoring** - Monitor websites and APIs with customizable assertions 16 23 - **TCP Monitoring** - Check database connections and other TCP services 17 24 - **DNS Monitoring** - Verify DNS records and resolution ··· 380 387 { 381 388 limit: 10, 382 389 offset: 0, 383 - statuses: [StatusReportStatus.INVESTIGATING, StatusReportStatus.IDENTIFIED], 390 + statuses: [ 391 + StatusReportStatus.INVESTIGATING, 392 + StatusReportStatus.IDENTIFIED, 393 + ], 384 394 }, 385 395 { headers }, 386 396 ); ··· 428 438 { 429 439 statusReportId: "sr_123", 430 440 status: StatusReportStatus.IDENTIFIED, 431 - message: "The issue has been identified as a database connection problem.", 441 + message: 442 + "The issue has been identified as a database connection problem.", 432 443 date: "2024-01-15T11:00:00", // optional, defaults to current time 433 444 notify: true, 434 445 }, ··· 438 449 439 450 ### Status Report Status 440 451 441 - | Enum Value | Description | 442 - | --------------- | ------------------------------- | 443 - | `UNSPECIFIED` | Default/unspecified status | 452 + | Enum Value | Description | 453 + | --------------- | -------------------------------- | 454 + | `UNSPECIFIED` | Default/unspecified status | 444 455 | `INVESTIGATING` | Actively investigating the issue | 445 - | `IDENTIFIED` | Root cause has been identified | 446 - | `MONITORING` | Fix deployed, monitoring | 447 - | `RESOLVED` | Issue fully resolved | 456 + | `IDENTIFIED` | Root cause has been identified | 457 + | `MONITORING` | Fix deployed, monitoring | 458 + | `RESOLVED` | Issue fully resolved | 459 + 460 + ### Status Page Service 461 + 462 + Manage status pages, components, and subscribers. 463 + 464 + #### `createStatusPage(request, options)` 465 + 466 + Create a new status page. 467 + 468 + ```typescript 469 + const { statusPage } = await openstatus.statusPage.v1.StatusPageService 470 + .createStatusPage( 471 + { 472 + title: "My Service Status", 473 + slug: "my-service", 474 + description: "Status page for My Service", 475 + homepageUrl: "https://example.com", 476 + contactUrl: "https://example.com/contact", 477 + }, 478 + { headers }, 479 + ); 480 + 481 + console.log(`Status page created: ${statusPage?.id}`); 482 + ``` 483 + 484 + #### `getStatusPage(request, options)` 485 + 486 + Get a status page by ID. 487 + 488 + ```typescript 489 + const { statusPage } = await openstatus.statusPage.v1.StatusPageService 490 + .getStatusPage( 491 + { id: "page_123" }, 492 + { headers }, 493 + ); 494 + ``` 495 + 496 + #### `listStatusPages(request, options)` 497 + 498 + List all status pages with pagination. 499 + 500 + ```typescript 501 + const { statusPages, totalSize } = await openstatus.statusPage.v1 502 + .StatusPageService.listStatusPages( 503 + { limit: 10, offset: 0 }, 504 + { headers }, 505 + ); 506 + 507 + console.log(`Found ${totalSize} status pages`); 508 + ``` 509 + 510 + #### `updateStatusPage(request, options)` 511 + 512 + Update a status page. 513 + 514 + ```typescript 515 + const { statusPage } = await openstatus.statusPage.v1.StatusPageService 516 + .updateStatusPage( 517 + { 518 + id: "page_123", 519 + title: "Updated Title", 520 + description: "Updated description", 521 + }, 522 + { headers }, 523 + ); 524 + ``` 525 + 526 + #### `deleteStatusPage(request, options)` 527 + 528 + Delete a status page. 529 + 530 + ```typescript 531 + const { success } = await openstatus.statusPage.v1.StatusPageService 532 + .deleteStatusPage( 533 + { id: "page_123" }, 534 + { headers }, 535 + ); 536 + ``` 537 + 538 + #### `addMonitorComponent(request, options)` 539 + 540 + Add a monitor-based component to a status page. 541 + 542 + ```typescript 543 + const { component } = await openstatus.statusPage.v1.StatusPageService 544 + .addMonitorComponent( 545 + { 546 + pageId: "page_123", 547 + monitorId: "mon_456", 548 + name: "API Server", 549 + description: "Main API endpoint", 550 + order: 1, 551 + }, 552 + { headers }, 553 + ); 554 + ``` 555 + 556 + #### `addStaticComponent(request, options)` 557 + 558 + Add a static component (not linked to a monitor). 559 + 560 + ```typescript 561 + const { component } = await openstatus.statusPage.v1.StatusPageService 562 + .addStaticComponent( 563 + { 564 + pageId: "page_123", 565 + name: "Third-party Service", 566 + description: "External dependency", 567 + order: 2, 568 + }, 569 + { headers }, 570 + ); 571 + ``` 572 + 573 + #### `updateComponent(request, options)` 574 + 575 + Update a component. 576 + 577 + ```typescript 578 + const { component } = await openstatus.statusPage.v1.StatusPageService 579 + .updateComponent( 580 + { 581 + id: "comp_123", 582 + name: "Updated Component Name", 583 + order: 3, 584 + }, 585 + { headers }, 586 + ); 587 + ``` 588 + 589 + #### `removeComponent(request, options)` 590 + 591 + Remove a component from a status page. 592 + 593 + ```typescript 594 + const { success } = await openstatus.statusPage.v1.StatusPageService 595 + .removeComponent( 596 + { id: "comp_123" }, 597 + { headers }, 598 + ); 599 + ``` 600 + 601 + #### `createComponentGroup(request, options)` 602 + 603 + Create a component group. 604 + 605 + ```typescript 606 + const { group } = await openstatus.statusPage.v1.StatusPageService 607 + .createComponentGroup( 608 + { 609 + pageId: "page_123", 610 + name: "Core Services", 611 + }, 612 + { headers }, 613 + ); 614 + ``` 615 + 616 + #### `updateComponentGroup(request, options)` 617 + 618 + Update a component group. 619 + 620 + ```typescript 621 + const { group } = await openstatus.statusPage.v1.StatusPageService 622 + .updateComponentGroup( 623 + { 624 + id: "group_123", 625 + name: "Updated Group Name", 626 + }, 627 + { headers }, 628 + ); 629 + ``` 630 + 631 + #### `deleteComponentGroup(request, options)` 632 + 633 + Delete a component group. 634 + 635 + ```typescript 636 + const { success } = await openstatus.statusPage.v1.StatusPageService 637 + .deleteComponentGroup( 638 + { id: "group_123" }, 639 + { headers }, 640 + ); 641 + ``` 642 + 643 + #### `subscribeToPage(request, options)` 644 + 645 + Subscribe an email to status page updates. 646 + 647 + ```typescript 648 + const { subscriber } = await openstatus.statusPage.v1.StatusPageService 649 + .subscribeToPage( 650 + { 651 + pageId: "page_123", 652 + email: "user@example.com", 653 + }, 654 + { headers }, 655 + ); 656 + ``` 657 + 658 + #### `unsubscribeFromPage(request, options)` 659 + 660 + Unsubscribe from a status page. 661 + 662 + ```typescript 663 + // By email 664 + const { success } = await openstatus.statusPage.v1.StatusPageService 665 + .unsubscribeFromPage( 666 + { 667 + pageId: "page_123", 668 + identifier: { case: "email", value: "user@example.com" }, 669 + }, 670 + { headers }, 671 + ); 672 + 673 + // Or by subscriber ID 674 + const { success: success2 } = await openstatus.statusPage.v1.StatusPageService 675 + .unsubscribeFromPage( 676 + { 677 + pageId: "page_123", 678 + identifier: { case: "id", value: "sub_456" }, 679 + }, 680 + { headers }, 681 + ); 682 + ``` 683 + 684 + #### `listSubscribers(request, options)` 685 + 686 + List all subscribers for a status page. 687 + 688 + ```typescript 689 + const { subscribers, totalSize } = await openstatus.statusPage.v1 690 + .StatusPageService.listSubscribers( 691 + { 692 + pageId: "page_123", 693 + limit: 50, 694 + offset: 0, 695 + includeUnsubscribed: false, 696 + }, 697 + { headers }, 698 + ); 699 + ``` 700 + 701 + #### `getStatusPageContent(request, options)` 702 + 703 + Get full status page content including components, groups, and active reports. 704 + 705 + ```typescript 706 + const content = await openstatus.statusPage.v1.StatusPageService 707 + .getStatusPageContent( 708 + { identifier: { case: "slug", value: "my-service" } }, 709 + { headers }, 710 + ); 711 + 712 + console.log(`Page: ${content.statusPage?.title}`); 713 + console.log(`Components: ${content.components.length}`); 714 + console.log(`Active reports: ${content.statusReports.length}`); 715 + ``` 716 + 717 + #### `getOverallStatus(request, options)` 718 + 719 + Get the aggregated status of a status page. 720 + 721 + ```typescript 722 + import { OverallStatus } from "@openstatus/sdk-node"; 723 + 724 + const { overallStatus, componentStatuses } = await openstatus.statusPage.v1 725 + .StatusPageService.getOverallStatus( 726 + { identifier: { case: "id", value: "page_123" } }, 727 + { headers }, 728 + ); 729 + 730 + console.log(`Overall: ${OverallStatus[overallStatus]}`); 731 + for (const { componentId, status } of componentStatuses) { 732 + console.log(` ${componentId}: ${OverallStatus[status]}`); 733 + } 734 + ``` 735 + 736 + ### Status Page Options 737 + 738 + | Option | Type | Required | Description | 739 + | ------------- | ------ | -------- | ---------------------------------------- | 740 + | `title` | string | Yes | Title of the status page (max 256 chars) | 741 + | `slug` | string | Yes | URL-friendly slug (lowercase, hyphens) | 742 + | `description` | string | No | Description (max 2048 chars) | 743 + | `homepageUrl` | string | No | Link to your homepage | 744 + | `contactUrl` | string | No | Link to your contact page | 745 + 746 + ### Page Access Type 747 + 748 + | Enum Value | Description | 749 + | -------------------- | ----------------------- | 750 + | `UNSPECIFIED` | Default/unspecified | 751 + | `PUBLIC` | Publicly accessible | 752 + | `PASSWORD_PROTECTED` | Requires password | 753 + | `AUTHENTICATED` | Requires authentication | 754 + 755 + ### Page Theme 756 + 757 + | Enum Value | Description | 758 + | ------------- | ------------------- | 759 + | `UNSPECIFIED` | Default/unspecified | 760 + | `SYSTEM` | Follow system theme | 761 + | `LIGHT` | Light theme | 762 + | `DARK` | Dark theme | 763 + 764 + ### Overall Status 765 + 766 + | Enum Value | Description | 767 + | ---------------- | --------------------------- | 768 + | `UNSPECIFIED` | Default/unspecified | 769 + | `OPERATIONAL` | All systems operational | 770 + | `DEGRADED` | Performance is degraded | 771 + | `PARTIAL_OUTAGE` | Some systems are down | 772 + | `MAJOR_OUTAGE` | Major systems are down | 773 + | `MAINTENANCE` | Scheduled maintenance | 774 + | `UNKNOWN` | Status cannot be determined | 775 + 776 + ### Page Component Type 777 + 778 + | Enum Value | Description | 779 + | ------------- | ------------------------- | 780 + | `UNSPECIFIED` | Default/unspecified | 781 + | `MONITOR` | Linked to a monitor | 782 + | `STATIC` | Static component (manual) | 448 783 449 784 ## Monitor Options 450 785
+194
src/gen/openstatus/status_page/v1/page_component_pb.ts
··· 1 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 2 + // @generated from file openstatus/status_page/v1/page_component.proto (package openstatus.status_page.v1, syntax proto3) 3 + /* eslint-disable */ 4 + 5 + import type { 6 + GenEnum, 7 + GenFile, 8 + GenMessage, 9 + } from "@bufbuild/protobuf/codegenv2"; 10 + import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 11 + import type { Message } from "@bufbuild/protobuf"; 12 + 13 + /** 14 + * Describes the file openstatus/status_page/v1/page_component.proto. 15 + */ 16 + export const file_openstatus_status_page_v1_page_component: 17 + GenFile = /*@__PURE__*/ 18 + fileDesc( 19 + "Ci5vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2VfY29tcG9uZW50LnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIv0BCg1QYWdlQ29tcG9uZW50EgoKAmlkGAEgASgJEg8KB3BhZ2VfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI6CgR0eXBlGAUgASgOMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50VHlwZRISCgptb25pdG9yX2lkGAYgASgJEg0KBW9yZGVyGAcgASgFEhAKCGdyb3VwX2lkGAggASgJEhMKC2dyb3VwX29yZGVyGAkgASgFEhIKCmNyZWF0ZWRfYXQYCiABKAkSEgoKdXBkYXRlZF9hdBgLIAEoCSJnChJQYWdlQ29tcG9uZW50R3JvdXASCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCSp5ChFQYWdlQ29tcG9uZW50VHlwZRIjCh9QQUdFX0NPTVBPTkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobUEFHRV9DT01QT05FTlRfVFlQRV9NT05JVE9SEAESHgoaUEFHRV9DT01QT05FTlRfVFlQRV9TVEFUSUMQAkJaWlhnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3BhZ2UvdjE7c3RhdHVzcGFnZXYxYgZwcm90bzM", 20 + ); 21 + 22 + /** 23 + * PageComponent represents a component displayed on a status page. 24 + * 25 + * @generated from message openstatus.status_page.v1.PageComponent 26 + */ 27 + export type PageComponent = 28 + & Message<"openstatus.status_page.v1.PageComponent"> 29 + & { 30 + /** 31 + * Unique identifier for the component. 32 + * 33 + * @generated from field: string id = 1; 34 + */ 35 + id: string; 36 + 37 + /** 38 + * ID of the status page this component belongs to. 39 + * 40 + * @generated from field: string page_id = 2; 41 + */ 42 + pageId: string; 43 + 44 + /** 45 + * Display name of the component. 46 + * 47 + * @generated from field: string name = 3; 48 + */ 49 + name: string; 50 + 51 + /** 52 + * Description of the component (optional). 53 + * 54 + * @generated from field: string description = 4; 55 + */ 56 + description: string; 57 + 58 + /** 59 + * Type of the component (monitor or static). 60 + * 61 + * @generated from field: openstatus.status_page.v1.PageComponentType type = 5; 62 + */ 63 + type: PageComponentType; 64 + 65 + /** 66 + * ID of the monitor if type is MONITOR (optional). 67 + * 68 + * @generated from field: string monitor_id = 6; 69 + */ 70 + monitorId: string; 71 + 72 + /** 73 + * Display order of the component. 74 + * 75 + * @generated from field: int32 order = 7; 76 + */ 77 + order: number; 78 + 79 + /** 80 + * ID of the group this component belongs to (optional). 81 + * 82 + * @generated from field: string group_id = 8; 83 + */ 84 + groupId: string; 85 + 86 + /** 87 + * Order within the group if grouped. 88 + * 89 + * @generated from field: int32 group_order = 9; 90 + */ 91 + groupOrder: number; 92 + 93 + /** 94 + * Timestamp when the component was created (RFC 3339 format). 95 + * 96 + * @generated from field: string created_at = 10; 97 + */ 98 + createdAt: string; 99 + 100 + /** 101 + * Timestamp when the component was last updated (RFC 3339 format). 102 + * 103 + * @generated from field: string updated_at = 11; 104 + */ 105 + updatedAt: string; 106 + }; 107 + 108 + /** 109 + * Describes the message openstatus.status_page.v1.PageComponent. 110 + * Use `create(PageComponentSchema)` to create a new message. 111 + */ 112 + export const PageComponentSchema: GenMessage<PageComponent> = /*@__PURE__*/ 113 + messageDesc(file_openstatus_status_page_v1_page_component, 0); 114 + 115 + /** 116 + * PageComponentGroup represents a group of components on a status page. 117 + * 118 + * @generated from message openstatus.status_page.v1.PageComponentGroup 119 + */ 120 + export type PageComponentGroup = 121 + & Message<"openstatus.status_page.v1.PageComponentGroup"> 122 + & { 123 + /** 124 + * Unique identifier for the group. 125 + * 126 + * @generated from field: string id = 1; 127 + */ 128 + id: string; 129 + 130 + /** 131 + * ID of the status page this group belongs to. 132 + * 133 + * @generated from field: string page_id = 2; 134 + */ 135 + pageId: string; 136 + 137 + /** 138 + * Display name of the group. 139 + * 140 + * @generated from field: string name = 3; 141 + */ 142 + name: string; 143 + 144 + /** 145 + * Timestamp when the group was created (RFC 3339 format). 146 + * 147 + * @generated from field: string created_at = 4; 148 + */ 149 + createdAt: string; 150 + 151 + /** 152 + * Timestamp when the group was last updated (RFC 3339 format). 153 + * 154 + * @generated from field: string updated_at = 5; 155 + */ 156 + updatedAt: string; 157 + }; 158 + 159 + /** 160 + * Describes the message openstatus.status_page.v1.PageComponentGroup. 161 + * Use `create(PageComponentGroupSchema)` to create a new message. 162 + */ 163 + export const PageComponentGroupSchema: GenMessage< 164 + PageComponentGroup 165 + > = /*@__PURE__*/ 166 + messageDesc(file_openstatus_status_page_v1_page_component, 1); 167 + 168 + /** 169 + * PageComponentType defines the type of a component on a status page. 170 + * 171 + * @generated from enum openstatus.status_page.v1.PageComponentType 172 + */ 173 + export enum PageComponentType { 174 + /** 175 + * @generated from enum value: PAGE_COMPONENT_TYPE_UNSPECIFIED = 0; 176 + */ 177 + UNSPECIFIED = 0, 178 + 179 + /** 180 + * @generated from enum value: PAGE_COMPONENT_TYPE_MONITOR = 1; 181 + */ 182 + MONITOR = 1, 183 + 184 + /** 185 + * @generated from enum value: PAGE_COMPONENT_TYPE_STATIC = 2; 186 + */ 187 + STATIC = 2, 188 + } 189 + 190 + /** 191 + * Describes the enum openstatus.status_page.v1.PageComponentType. 192 + */ 193 + export const PageComponentTypeSchema: GenEnum<PageComponentType> = /*@__PURE__*/ 194 + enumDesc(file_openstatus_status_page_v1_page_component, 0);
+81
src/gen/openstatus/status_page/v1/page_subscriber_pb.ts
··· 1 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 2 + // @generated from file openstatus/status_page/v1/page_subscriber.proto (package openstatus.status_page.v1, syntax proto3) 3 + /* eslint-disable */ 4 + 5 + import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"; 6 + import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 7 + import type { Message } from "@bufbuild/protobuf"; 8 + 9 + /** 10 + * Describes the file openstatus/status_page/v1/page_subscriber.proto. 11 + */ 12 + export const file_openstatus_status_page_v1_page_subscriber: 13 + GenFile = /*@__PURE__*/ 14 + fileDesc( 15 + "Ci9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2Vfc3Vic2NyaWJlci5wcm90bxIZb3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MSKSAQoOUGFnZVN1YnNjcmliZXISCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRINCgVlbWFpbBgDIAEoCRITCgthY2NlcHRlZF9hdBgEIAEoCRIXCg91bnN1YnNjcmliZWRfYXQYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRISCgp1cGRhdGVkX2F0GAcgASgJQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 16 + ); 17 + 18 + /** 19 + * PageSubscriber represents a subscriber to a status page. 20 + * 21 + * @generated from message openstatus.status_page.v1.PageSubscriber 22 + */ 23 + export type PageSubscriber = 24 + & Message<"openstatus.status_page.v1.PageSubscriber"> 25 + & { 26 + /** 27 + * Unique identifier for the subscriber. 28 + * 29 + * @generated from field: string id = 1; 30 + */ 31 + id: string; 32 + 33 + /** 34 + * ID of the status page the user is subscribed to. 35 + * 36 + * @generated from field: string page_id = 2; 37 + */ 38 + pageId: string; 39 + 40 + /** 41 + * Email address of the subscriber. 42 + * 43 + * @generated from field: string email = 3; 44 + */ 45 + email: string; 46 + 47 + /** 48 + * Timestamp when the subscription was accepted/confirmed (RFC 3339 format, optional). 49 + * 50 + * @generated from field: string accepted_at = 4; 51 + */ 52 + acceptedAt: string; 53 + 54 + /** 55 + * Timestamp when the user unsubscribed (RFC 3339 format, optional). 56 + * 57 + * @generated from field: string unsubscribed_at = 5; 58 + */ 59 + unsubscribedAt: string; 60 + 61 + /** 62 + * Timestamp when the subscription was created (RFC 3339 format). 63 + * 64 + * @generated from field: string created_at = 6; 65 + */ 66 + createdAt: string; 67 + 68 + /** 69 + * Timestamp when the subscription was last updated (RFC 3339 format). 70 + * 71 + * @generated from field: string updated_at = 7; 72 + */ 73 + updatedAt: string; 74 + }; 75 + 76 + /** 77 + * Describes the message openstatus.status_page.v1.PageSubscriber. 78 + * Use `create(PageSubscriberSchema)` to create a new message. 79 + */ 80 + export const PageSubscriberSchema: GenMessage<PageSubscriber> = /*@__PURE__*/ 81 + messageDesc(file_openstatus_status_page_v1_page_subscriber, 0);
+1351
src/gen/openstatus/status_page/v1/service_pb.ts
··· 1 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 2 + // @generated from file openstatus/status_page/v1/service.proto (package openstatus.status_page.v1, syntax proto3) 3 + /* eslint-disable */ 4 + 5 + import type { 6 + GenFile, 7 + GenMessage, 8 + GenService, 9 + } from "@bufbuild/protobuf/codegenv2"; 10 + import { 11 + fileDesc, 12 + messageDesc, 13 + serviceDesc, 14 + } from "@bufbuild/protobuf/codegenv2"; 15 + import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 16 + import type { PageComponent, PageComponentGroup } from "./page_component_pb.ts"; 17 + import { file_openstatus_status_page_v1_page_component } from "./page_component_pb.ts"; 18 + import type { PageSubscriber } from "./page_subscriber_pb.ts"; 19 + import { file_openstatus_status_page_v1_page_subscriber } from "./page_subscriber_pb.ts"; 20 + import type { 21 + Maintenance, 22 + OverallStatus, 23 + StatusPage, 24 + StatusPageSummary, 25 + } from "./status_page_pb.ts"; 26 + import { file_openstatus_status_page_v1_status_page } from "./status_page_pb.ts"; 27 + import type { StatusReport } from "../../status_report/v1/status_report_pb.ts"; 28 + import { file_openstatus_status_report_v1_status_report } from "../../status_report/v1/status_report_pb.ts"; 29 + import type { Message } from "@bufbuild/protobuf"; 30 + 31 + /** 32 + * Describes the file openstatus/status_page/v1/service.proto. 33 + */ 34 + export const file_openstatus_status_page_v1_service: GenFile = /*@__PURE__*/ 35 + fileDesc( 36 + "CidvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEi9AEKF0NyZWF0ZVN0YXR1c1BhZ2VSZXF1ZXN0EhkKBXRpdGxlGAEgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAIgASgJQgi6SAVyAxiACEgAiAEBEjQKBHNsdWcYAyABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokEhkKDGhvbWVwYWdlX3VybBgEIAEoCUgBiAEBEhgKC2NvbnRhY3RfdXJsGAUgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGENyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIrChRHZXRTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJTChVHZXRTdGF0dXNQYWdlUmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2UiagoWTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQicQoXTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USQgoMc3RhdHVzX3BhZ2VzGAEgAygLMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIqYCChdVcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIeCgV0aXRsZRgCIAEoCUIKukgHcgUQARiAAkgAiAEBEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgBiAEBEjkKBHNsdWcYBCABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokSAKIAQESGQoMaG9tZXBhZ2VfdXJsGAUgASgJSAOIAQESGAoLY29udGFjdF91cmwYBiABKAlIBIgBAUIICgZfdGl0bGVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9zbHVnQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGFVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIuChdEZWxldGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIrChhEZWxldGVTdGF0dXNQYWdlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLvAQoaQWRkTW9uaXRvckNvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIbCgptb25pdG9yX2lkGAIgASgJQge6SARyAhABEhsKBG5hbWUYAyABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YBCABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBSABKAVIAogBARIVCghncm91cF9pZBgGIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfb3JkZXJCCwoJX2dyb3VwX2lkIloKG0FkZE1vbml0b3JDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQixQEKGUFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgAiAEBEhIKBW9yZGVyGAQgASgFSAGIAQESFQoIZ3JvdXBfaWQYBSABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX29yZGVyQgsKCV9ncm91cF9pZCJZChpBZGRTdGF0aWNDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQiLQoWUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIqChdSZW1vdmVDb21wb25lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIvMBChZVcGRhdGVDb21wb25lbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhsKBG5hbWUYAiABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YAyABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBCABKAVIAogBARIVCghncm91cF9pZBgFIAEoCUgDiAEBEhgKC2dyb3VwX29yZGVyGAYgASgFSASIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQggKBl9vcmRlckILCglfZ3JvdXBfaWRCDgoMX2dyb3VwX29yZGVyIlYKF1VwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCJRChtDcmVhdGVDb21wb25lbnRHcm91cFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACIlwKHENyZWF0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USPAoFZ3JvdXAYASABKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cCIyChtEZWxldGVDb21wb25lbnRHcm91cFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLwocRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIloKG1VwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIdCgRuYW1lGAIgASgJQgq6SAdyBRABGIACSACIAQFCBwoFX25hbWUiXAocVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRI8CgVncm91cBgBIAEoCzItLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudEdyb3VwIkoKFlN1YnNjcmliZVRvUGFnZVJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgASJYChdTdWJzY3JpYmVUb1BhZ2VSZXNwb25zZRI9CgpzdWJzY3JpYmVyGAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlciJjChpVbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEg8KBWVtYWlsGAIgASgJSAASDAoCaWQYAyABKAlIAEIMCgppZGVudGlmaWVyIi4KG1Vuc3Vic2NyaWJlRnJvbVBhZ2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABChZMaXN0U3Vic2NyaWJlcnNSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESHQoFbGltaXQYAiABKAVCCbpIBhoEGGQoAUgAiAEBEhwKBm9mZnNldBgDIAEoBUIHukgEGgIoAEgBiAEBEiEKFGluY2x1ZGVfdW5zdWJzY3JpYmVkGAQgASgISAKIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXRCFwoVX2luY2x1ZGVfdW5zdWJzY3JpYmVkIm0KF0xpc3RTdWJzY3JpYmVyc1Jlc3BvbnNlEj4KC3N1YnNjcmliZXJzGAEgAygLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlchISCgp0b3RhbF9zaXplGAIgASgFIkkKG0dldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBIMCgJpZBgBIAEoCUgAEg4KBHNsdWcYAiABKAlIAEIMCgppZGVudGlmaWVyItgCChxHZXRTdGF0dXNQYWdlQ29udGVudFJlc3BvbnNlEjoKC3N0YXR1c19wYWdlGAEgASgLMiUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlEjwKCmNvbXBvbmVudHMYAiADKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQSPQoGZ3JvdXBzGAMgAygLMi0ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50R3JvdXASQQoOc3RhdHVzX3JlcG9ydHMYBCADKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0EjwKDG1haW50ZW5hbmNlcxgFIAMoCzImLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTWFpbnRlbmFuY2UiRQoXR2V0T3ZlcmFsbFN0YXR1c1JlcXVlc3QSDAoCaWQYASABKAlIABIOCgRzbHVnGAIgASgJSABCDAoKaWRlbnRpZmllciJhCg9Db21wb25lbnRTdGF0dXMSFAoMY29tcG9uZW50X2lkGAEgASgJEjgKBnN0YXR1cxgCIAEoDjIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuT3ZlcmFsbFN0YXR1cyKkAQoYR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlEkAKDm92ZXJhbGxfc3RhdHVzGAEgASgOMigub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5PdmVyYWxsU3RhdHVzEkYKEmNvbXBvbmVudF9zdGF0dXNlcxgCIAMoCzIqLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ29tcG9uZW50U3RhdHVzMpcRChFTdGF0dXNQYWdlU2VydmljZRJ7ChBDcmVhdGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlU3RhdHVzUGFnZVJlc3BvbnNlEnIKDUdldFN0YXR1c1BhZ2USLy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VSZXF1ZXN0GjAub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlUmVzcG9uc2USeAoPTGlzdFN0YXR1c1BhZ2VzEjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3RhdHVzUGFnZXNSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3RhdHVzUGFnZXNSZXNwb25zZRJ7ChBVcGRhdGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlU3RhdHVzUGFnZVJlc3BvbnNlEnsKEERlbGV0ZVN0YXR1c1BhZ2USMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkRlbGV0ZVN0YXR1c1BhZ2VSZXF1ZXN0GjMub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVTdGF0dXNQYWdlUmVzcG9uc2UShAEKE0FkZE1vbml0b3JDb21wb25lbnQSNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZE1vbml0b3JDb21wb25lbnRSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5BZGRNb25pdG9yQ29tcG9uZW50UmVzcG9uc2USgQEKEkFkZFN0YXRpY0NvbXBvbmVudBI0Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkU3RhdGljQ29tcG9uZW50UmVxdWVzdBo1Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkU3RhdGljQ29tcG9uZW50UmVzcG9uc2USeAoPUmVtb3ZlQ29tcG9uZW50EjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5SZW1vdmVDb21wb25lbnRSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5SZW1vdmVDb21wb25lbnRSZXNwb25zZRJ4Cg9VcGRhdGVDb21wb25lbnQSMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudFJlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEocBChRDcmVhdGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVDb21wb25lbnRHcm91cFJlc3BvbnNlEocBChREZWxldGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVDb21wb25lbnRHcm91cFJlc3BvbnNlEocBChRVcGRhdGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRHcm91cFJlc3BvbnNlEngKD1N1YnNjcmliZVRvUGFnZRIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3Vic2NyaWJlVG9QYWdlUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3Vic2NyaWJlVG9QYWdlUmVzcG9uc2UShAEKE1Vuc3Vic2NyaWJlRnJvbVBhZ2USNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVuc3Vic2NyaWJlRnJvbVBhZ2VSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VbnN1YnNjcmliZUZyb21QYWdlUmVzcG9uc2USeAoPTGlzdFN1YnNjcmliZXJzEjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3Vic2NyaWJlcnNSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3Vic2NyaWJlcnNSZXNwb25zZRKHAQoUR2V0U3RhdHVzUGFnZUNvbnRlbnQSNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0U3RhdHVzUGFnZUNvbnRlbnRSZXNwb25zZRJ7ChBHZXRPdmVyYWxsU3RhdHVzEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRPdmVyYWxsU3RhdHVzUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 37 + [ 38 + file_buf_validate_validate, 39 + file_openstatus_status_page_v1_page_component, 40 + file_openstatus_status_page_v1_page_subscriber, 41 + file_openstatus_status_page_v1_status_page, 42 + file_openstatus_status_report_v1_status_report, 43 + ], 44 + ); 45 + 46 + /** 47 + * @generated from message openstatus.status_page.v1.CreateStatusPageRequest 48 + */ 49 + export type CreateStatusPageRequest = 50 + & Message<"openstatus.status_page.v1.CreateStatusPageRequest"> 51 + & { 52 + /** 53 + * Title of the status page (required). 54 + * 55 + * @generated from field: string title = 1; 56 + */ 57 + title: string; 58 + 59 + /** 60 + * Description of the status page (optional). 61 + * 62 + * @generated from field: optional string description = 2; 63 + */ 64 + description?: string; 65 + 66 + /** 67 + * URL-friendly slug for the status page (required). 68 + * 69 + * @generated from field: string slug = 3; 70 + */ 71 + slug: string; 72 + 73 + /** 74 + * URL to the homepage (optional). 75 + * 76 + * @generated from field: optional string homepage_url = 4; 77 + */ 78 + homepageUrl?: string; 79 + 80 + /** 81 + * URL to the contact page (optional). 82 + * 83 + * @generated from field: optional string contact_url = 5; 84 + */ 85 + contactUrl?: string; 86 + }; 87 + 88 + /** 89 + * Describes the message openstatus.status_page.v1.CreateStatusPageRequest. 90 + * Use `create(CreateStatusPageRequestSchema)` to create a new message. 91 + */ 92 + export const CreateStatusPageRequestSchema: GenMessage< 93 + CreateStatusPageRequest 94 + > = /*@__PURE__*/ 95 + messageDesc(file_openstatus_status_page_v1_service, 0); 96 + 97 + /** 98 + * @generated from message openstatus.status_page.v1.CreateStatusPageResponse 99 + */ 100 + export type CreateStatusPageResponse = 101 + & Message<"openstatus.status_page.v1.CreateStatusPageResponse"> 102 + & { 103 + /** 104 + * The created status page. 105 + * 106 + * @generated from field: openstatus.status_page.v1.StatusPage status_page = 1; 107 + */ 108 + statusPage?: StatusPage; 109 + }; 110 + 111 + /** 112 + * Describes the message openstatus.status_page.v1.CreateStatusPageResponse. 113 + * Use `create(CreateStatusPageResponseSchema)` to create a new message. 114 + */ 115 + export const CreateStatusPageResponseSchema: GenMessage< 116 + CreateStatusPageResponse 117 + > = /*@__PURE__*/ 118 + messageDesc(file_openstatus_status_page_v1_service, 1); 119 + 120 + /** 121 + * @generated from message openstatus.status_page.v1.GetStatusPageRequest 122 + */ 123 + export type GetStatusPageRequest = 124 + & Message<"openstatus.status_page.v1.GetStatusPageRequest"> 125 + & { 126 + /** 127 + * ID of the status page to retrieve (required). 128 + * 129 + * @generated from field: string id = 1; 130 + */ 131 + id: string; 132 + }; 133 + 134 + /** 135 + * Describes the message openstatus.status_page.v1.GetStatusPageRequest. 136 + * Use `create(GetStatusPageRequestSchema)` to create a new message. 137 + */ 138 + export const GetStatusPageRequestSchema: GenMessage< 139 + GetStatusPageRequest 140 + > = /*@__PURE__*/ 141 + messageDesc(file_openstatus_status_page_v1_service, 2); 142 + 143 + /** 144 + * @generated from message openstatus.status_page.v1.GetStatusPageResponse 145 + */ 146 + export type GetStatusPageResponse = 147 + & Message<"openstatus.status_page.v1.GetStatusPageResponse"> 148 + & { 149 + /** 150 + * The requested status page. 151 + * 152 + * @generated from field: openstatus.status_page.v1.StatusPage status_page = 1; 153 + */ 154 + statusPage?: StatusPage; 155 + }; 156 + 157 + /** 158 + * Describes the message openstatus.status_page.v1.GetStatusPageResponse. 159 + * Use `create(GetStatusPageResponseSchema)` to create a new message. 160 + */ 161 + export const GetStatusPageResponseSchema: GenMessage< 162 + GetStatusPageResponse 163 + > = /*@__PURE__*/ 164 + messageDesc(file_openstatus_status_page_v1_service, 3); 165 + 166 + /** 167 + * @generated from message openstatus.status_page.v1.ListStatusPagesRequest 168 + */ 169 + export type ListStatusPagesRequest = 170 + & Message<"openstatus.status_page.v1.ListStatusPagesRequest"> 171 + & { 172 + /** 173 + * Maximum number of pages to return (1-100, defaults to 50). 174 + * 175 + * @generated from field: optional int32 limit = 1; 176 + */ 177 + limit?: number; 178 + 179 + /** 180 + * Number of pages to skip for pagination (defaults to 0). 181 + * 182 + * @generated from field: optional int32 offset = 2; 183 + */ 184 + offset?: number; 185 + }; 186 + 187 + /** 188 + * Describes the message openstatus.status_page.v1.ListStatusPagesRequest. 189 + * Use `create(ListStatusPagesRequestSchema)` to create a new message. 190 + */ 191 + export const ListStatusPagesRequestSchema: GenMessage< 192 + ListStatusPagesRequest 193 + > = /*@__PURE__*/ 194 + messageDesc(file_openstatus_status_page_v1_service, 4); 195 + 196 + /** 197 + * @generated from message openstatus.status_page.v1.ListStatusPagesResponse 198 + */ 199 + export type ListStatusPagesResponse = 200 + & Message<"openstatus.status_page.v1.ListStatusPagesResponse"> 201 + & { 202 + /** 203 + * List of status pages (metadata only). 204 + * 205 + * @generated from field: repeated openstatus.status_page.v1.StatusPageSummary status_pages = 1; 206 + */ 207 + statusPages: StatusPageSummary[]; 208 + 209 + /** 210 + * Total number of status pages. 211 + * 212 + * @generated from field: int32 total_size = 2; 213 + */ 214 + totalSize: number; 215 + }; 216 + 217 + /** 218 + * Describes the message openstatus.status_page.v1.ListStatusPagesResponse. 219 + * Use `create(ListStatusPagesResponseSchema)` to create a new message. 220 + */ 221 + export const ListStatusPagesResponseSchema: GenMessage< 222 + ListStatusPagesResponse 223 + > = /*@__PURE__*/ 224 + messageDesc(file_openstatus_status_page_v1_service, 5); 225 + 226 + /** 227 + * @generated from message openstatus.status_page.v1.UpdateStatusPageRequest 228 + */ 229 + export type UpdateStatusPageRequest = 230 + & Message<"openstatus.status_page.v1.UpdateStatusPageRequest"> 231 + & { 232 + /** 233 + * ID of the status page to update (required). 234 + * 235 + * @generated from field: string id = 1; 236 + */ 237 + id: string; 238 + 239 + /** 240 + * New title for the status page (optional). 241 + * 242 + * @generated from field: optional string title = 2; 243 + */ 244 + title?: string; 245 + 246 + /** 247 + * New description for the status page (optional). 248 + * 249 + * @generated from field: optional string description = 3; 250 + */ 251 + description?: string; 252 + 253 + /** 254 + * New slug for the status page (optional). 255 + * 256 + * @generated from field: optional string slug = 4; 257 + */ 258 + slug?: string; 259 + 260 + /** 261 + * New homepage URL (optional). 262 + * 263 + * @generated from field: optional string homepage_url = 5; 264 + */ 265 + homepageUrl?: string; 266 + 267 + /** 268 + * New contact URL (optional). 269 + * 270 + * @generated from field: optional string contact_url = 6; 271 + */ 272 + contactUrl?: string; 273 + }; 274 + 275 + /** 276 + * Describes the message openstatus.status_page.v1.UpdateStatusPageRequest. 277 + * Use `create(UpdateStatusPageRequestSchema)` to create a new message. 278 + */ 279 + export const UpdateStatusPageRequestSchema: GenMessage< 280 + UpdateStatusPageRequest 281 + > = /*@__PURE__*/ 282 + messageDesc(file_openstatus_status_page_v1_service, 6); 283 + 284 + /** 285 + * @generated from message openstatus.status_page.v1.UpdateStatusPageResponse 286 + */ 287 + export type UpdateStatusPageResponse = 288 + & Message<"openstatus.status_page.v1.UpdateStatusPageResponse"> 289 + & { 290 + /** 291 + * The updated status page. 292 + * 293 + * @generated from field: openstatus.status_page.v1.StatusPage status_page = 1; 294 + */ 295 + statusPage?: StatusPage; 296 + }; 297 + 298 + /** 299 + * Describes the message openstatus.status_page.v1.UpdateStatusPageResponse. 300 + * Use `create(UpdateStatusPageResponseSchema)` to create a new message. 301 + */ 302 + export const UpdateStatusPageResponseSchema: GenMessage< 303 + UpdateStatusPageResponse 304 + > = /*@__PURE__*/ 305 + messageDesc(file_openstatus_status_page_v1_service, 7); 306 + 307 + /** 308 + * @generated from message openstatus.status_page.v1.DeleteStatusPageRequest 309 + */ 310 + export type DeleteStatusPageRequest = 311 + & Message<"openstatus.status_page.v1.DeleteStatusPageRequest"> 312 + & { 313 + /** 314 + * ID of the status page to delete (required). 315 + * 316 + * @generated from field: string id = 1; 317 + */ 318 + id: string; 319 + }; 320 + 321 + /** 322 + * Describes the message openstatus.status_page.v1.DeleteStatusPageRequest. 323 + * Use `create(DeleteStatusPageRequestSchema)` to create a new message. 324 + */ 325 + export const DeleteStatusPageRequestSchema: GenMessage< 326 + DeleteStatusPageRequest 327 + > = /*@__PURE__*/ 328 + messageDesc(file_openstatus_status_page_v1_service, 8); 329 + 330 + /** 331 + * @generated from message openstatus.status_page.v1.DeleteStatusPageResponse 332 + */ 333 + export type DeleteStatusPageResponse = 334 + & Message<"openstatus.status_page.v1.DeleteStatusPageResponse"> 335 + & { 336 + /** 337 + * Whether the deletion was successful. 338 + * 339 + * @generated from field: bool success = 1; 340 + */ 341 + success: boolean; 342 + }; 343 + 344 + /** 345 + * Describes the message openstatus.status_page.v1.DeleteStatusPageResponse. 346 + * Use `create(DeleteStatusPageResponseSchema)` to create a new message. 347 + */ 348 + export const DeleteStatusPageResponseSchema: GenMessage< 349 + DeleteStatusPageResponse 350 + > = /*@__PURE__*/ 351 + messageDesc(file_openstatus_status_page_v1_service, 9); 352 + 353 + /** 354 + * @generated from message openstatus.status_page.v1.AddMonitorComponentRequest 355 + */ 356 + export type AddMonitorComponentRequest = 357 + & Message<"openstatus.status_page.v1.AddMonitorComponentRequest"> 358 + & { 359 + /** 360 + * ID of the status page to add the component to (required). 361 + * 362 + * @generated from field: string page_id = 1; 363 + */ 364 + pageId: string; 365 + 366 + /** 367 + * ID of the monitor to associate with this component (required). 368 + * 369 + * @generated from field: string monitor_id = 2; 370 + */ 371 + monitorId: string; 372 + 373 + /** 374 + * Display name for the component (optional, defaults to monitor name). 375 + * 376 + * @generated from field: optional string name = 3; 377 + */ 378 + name?: string; 379 + 380 + /** 381 + * Description of the component (optional). 382 + * 383 + * @generated from field: optional string description = 4; 384 + */ 385 + description?: string; 386 + 387 + /** 388 + * Display order of the component (optional). 389 + * 390 + * @generated from field: optional int32 order = 5; 391 + */ 392 + order?: number; 393 + 394 + /** 395 + * ID of the group to add this component to (optional). 396 + * 397 + * @generated from field: optional string group_id = 6; 398 + */ 399 + groupId?: string; 400 + }; 401 + 402 + /** 403 + * Describes the message openstatus.status_page.v1.AddMonitorComponentRequest. 404 + * Use `create(AddMonitorComponentRequestSchema)` to create a new message. 405 + */ 406 + export const AddMonitorComponentRequestSchema: GenMessage< 407 + AddMonitorComponentRequest 408 + > = /*@__PURE__*/ 409 + messageDesc(file_openstatus_status_page_v1_service, 10); 410 + 411 + /** 412 + * @generated from message openstatus.status_page.v1.AddMonitorComponentResponse 413 + */ 414 + export type AddMonitorComponentResponse = 415 + & Message<"openstatus.status_page.v1.AddMonitorComponentResponse"> 416 + & { 417 + /** 418 + * The created component. 419 + * 420 + * @generated from field: openstatus.status_page.v1.PageComponent component = 1; 421 + */ 422 + component?: PageComponent; 423 + }; 424 + 425 + /** 426 + * Describes the message openstatus.status_page.v1.AddMonitorComponentResponse. 427 + * Use `create(AddMonitorComponentResponseSchema)` to create a new message. 428 + */ 429 + export const AddMonitorComponentResponseSchema: GenMessage< 430 + AddMonitorComponentResponse 431 + > = /*@__PURE__*/ 432 + messageDesc(file_openstatus_status_page_v1_service, 11); 433 + 434 + /** 435 + * @generated from message openstatus.status_page.v1.AddStaticComponentRequest 436 + */ 437 + export type AddStaticComponentRequest = 438 + & Message<"openstatus.status_page.v1.AddStaticComponentRequest"> 439 + & { 440 + /** 441 + * ID of the status page to add the component to (required). 442 + * 443 + * @generated from field: string page_id = 1; 444 + */ 445 + pageId: string; 446 + 447 + /** 448 + * Display name for the component (required). 449 + * 450 + * @generated from field: string name = 2; 451 + */ 452 + name: string; 453 + 454 + /** 455 + * Description of the component (optional). 456 + * 457 + * @generated from field: optional string description = 3; 458 + */ 459 + description?: string; 460 + 461 + /** 462 + * Display order of the component (optional). 463 + * 464 + * @generated from field: optional int32 order = 4; 465 + */ 466 + order?: number; 467 + 468 + /** 469 + * ID of the group to add this component to (optional). 470 + * 471 + * @generated from field: optional string group_id = 5; 472 + */ 473 + groupId?: string; 474 + }; 475 + 476 + /** 477 + * Describes the message openstatus.status_page.v1.AddStaticComponentRequest. 478 + * Use `create(AddStaticComponentRequestSchema)` to create a new message. 479 + */ 480 + export const AddStaticComponentRequestSchema: GenMessage< 481 + AddStaticComponentRequest 482 + > = /*@__PURE__*/ 483 + messageDesc(file_openstatus_status_page_v1_service, 12); 484 + 485 + /** 486 + * @generated from message openstatus.status_page.v1.AddStaticComponentResponse 487 + */ 488 + export type AddStaticComponentResponse = 489 + & Message<"openstatus.status_page.v1.AddStaticComponentResponse"> 490 + & { 491 + /** 492 + * The created component. 493 + * 494 + * @generated from field: openstatus.status_page.v1.PageComponent component = 1; 495 + */ 496 + component?: PageComponent; 497 + }; 498 + 499 + /** 500 + * Describes the message openstatus.status_page.v1.AddStaticComponentResponse. 501 + * Use `create(AddStaticComponentResponseSchema)` to create a new message. 502 + */ 503 + export const AddStaticComponentResponseSchema: GenMessage< 504 + AddStaticComponentResponse 505 + > = /*@__PURE__*/ 506 + messageDesc(file_openstatus_status_page_v1_service, 13); 507 + 508 + /** 509 + * @generated from message openstatus.status_page.v1.RemoveComponentRequest 510 + */ 511 + export type RemoveComponentRequest = 512 + & Message<"openstatus.status_page.v1.RemoveComponentRequest"> 513 + & { 514 + /** 515 + * ID of the component to remove (required). 516 + * 517 + * @generated from field: string id = 1; 518 + */ 519 + id: string; 520 + }; 521 + 522 + /** 523 + * Describes the message openstatus.status_page.v1.RemoveComponentRequest. 524 + * Use `create(RemoveComponentRequestSchema)` to create a new message. 525 + */ 526 + export const RemoveComponentRequestSchema: GenMessage< 527 + RemoveComponentRequest 528 + > = /*@__PURE__*/ 529 + messageDesc(file_openstatus_status_page_v1_service, 14); 530 + 531 + /** 532 + * @generated from message openstatus.status_page.v1.RemoveComponentResponse 533 + */ 534 + export type RemoveComponentResponse = 535 + & Message<"openstatus.status_page.v1.RemoveComponentResponse"> 536 + & { 537 + /** 538 + * Whether the removal was successful. 539 + * 540 + * @generated from field: bool success = 1; 541 + */ 542 + success: boolean; 543 + }; 544 + 545 + /** 546 + * Describes the message openstatus.status_page.v1.RemoveComponentResponse. 547 + * Use `create(RemoveComponentResponseSchema)` to create a new message. 548 + */ 549 + export const RemoveComponentResponseSchema: GenMessage< 550 + RemoveComponentResponse 551 + > = /*@__PURE__*/ 552 + messageDesc(file_openstatus_status_page_v1_service, 15); 553 + 554 + /** 555 + * @generated from message openstatus.status_page.v1.UpdateComponentRequest 556 + */ 557 + export type UpdateComponentRequest = 558 + & Message<"openstatus.status_page.v1.UpdateComponentRequest"> 559 + & { 560 + /** 561 + * ID of the component to update (required). 562 + * 563 + * @generated from field: string id = 1; 564 + */ 565 + id: string; 566 + 567 + /** 568 + * New display name for the component (optional). 569 + * 570 + * @generated from field: optional string name = 2; 571 + */ 572 + name?: string; 573 + 574 + /** 575 + * New description for the component (optional). 576 + * 577 + * @generated from field: optional string description = 3; 578 + */ 579 + description?: string; 580 + 581 + /** 582 + * New display order (optional). 583 + * 584 + * @generated from field: optional int32 order = 4; 585 + */ 586 + order?: number; 587 + 588 + /** 589 + * New group ID (optional, set to empty string to remove from group). 590 + * 591 + * @generated from field: optional string group_id = 5; 592 + */ 593 + groupId?: string; 594 + 595 + /** 596 + * New order within the group (optional). 597 + * 598 + * @generated from field: optional int32 group_order = 6; 599 + */ 600 + groupOrder?: number; 601 + }; 602 + 603 + /** 604 + * Describes the message openstatus.status_page.v1.UpdateComponentRequest. 605 + * Use `create(UpdateComponentRequestSchema)` to create a new message. 606 + */ 607 + export const UpdateComponentRequestSchema: GenMessage< 608 + UpdateComponentRequest 609 + > = /*@__PURE__*/ 610 + messageDesc(file_openstatus_status_page_v1_service, 16); 611 + 612 + /** 613 + * @generated from message openstatus.status_page.v1.UpdateComponentResponse 614 + */ 615 + export type UpdateComponentResponse = 616 + & Message<"openstatus.status_page.v1.UpdateComponentResponse"> 617 + & { 618 + /** 619 + * The updated component. 620 + * 621 + * @generated from field: openstatus.status_page.v1.PageComponent component = 1; 622 + */ 623 + component?: PageComponent; 624 + }; 625 + 626 + /** 627 + * Describes the message openstatus.status_page.v1.UpdateComponentResponse. 628 + * Use `create(UpdateComponentResponseSchema)` to create a new message. 629 + */ 630 + export const UpdateComponentResponseSchema: GenMessage< 631 + UpdateComponentResponse 632 + > = /*@__PURE__*/ 633 + messageDesc(file_openstatus_status_page_v1_service, 17); 634 + 635 + /** 636 + * @generated from message openstatus.status_page.v1.CreateComponentGroupRequest 637 + */ 638 + export type CreateComponentGroupRequest = 639 + & Message<"openstatus.status_page.v1.CreateComponentGroupRequest"> 640 + & { 641 + /** 642 + * ID of the status page to create the group in (required). 643 + * 644 + * @generated from field: string page_id = 1; 645 + */ 646 + pageId: string; 647 + 648 + /** 649 + * Display name for the group (required). 650 + * 651 + * @generated from field: string name = 2; 652 + */ 653 + name: string; 654 + }; 655 + 656 + /** 657 + * Describes the message openstatus.status_page.v1.CreateComponentGroupRequest. 658 + * Use `create(CreateComponentGroupRequestSchema)` to create a new message. 659 + */ 660 + export const CreateComponentGroupRequestSchema: GenMessage< 661 + CreateComponentGroupRequest 662 + > = /*@__PURE__*/ 663 + messageDesc(file_openstatus_status_page_v1_service, 18); 664 + 665 + /** 666 + * @generated from message openstatus.status_page.v1.CreateComponentGroupResponse 667 + */ 668 + export type CreateComponentGroupResponse = 669 + & Message<"openstatus.status_page.v1.CreateComponentGroupResponse"> 670 + & { 671 + /** 672 + * The created component group. 673 + * 674 + * @generated from field: openstatus.status_page.v1.PageComponentGroup group = 1; 675 + */ 676 + group?: PageComponentGroup; 677 + }; 678 + 679 + /** 680 + * Describes the message openstatus.status_page.v1.CreateComponentGroupResponse. 681 + * Use `create(CreateComponentGroupResponseSchema)` to create a new message. 682 + */ 683 + export const CreateComponentGroupResponseSchema: GenMessage< 684 + CreateComponentGroupResponse 685 + > = /*@__PURE__*/ 686 + messageDesc(file_openstatus_status_page_v1_service, 19); 687 + 688 + /** 689 + * @generated from message openstatus.status_page.v1.DeleteComponentGroupRequest 690 + */ 691 + export type DeleteComponentGroupRequest = 692 + & Message<"openstatus.status_page.v1.DeleteComponentGroupRequest"> 693 + & { 694 + /** 695 + * ID of the component group to delete (required). 696 + * 697 + * @generated from field: string id = 1; 698 + */ 699 + id: string; 700 + }; 701 + 702 + /** 703 + * Describes the message openstatus.status_page.v1.DeleteComponentGroupRequest. 704 + * Use `create(DeleteComponentGroupRequestSchema)` to create a new message. 705 + */ 706 + export const DeleteComponentGroupRequestSchema: GenMessage< 707 + DeleteComponentGroupRequest 708 + > = /*@__PURE__*/ 709 + messageDesc(file_openstatus_status_page_v1_service, 20); 710 + 711 + /** 712 + * @generated from message openstatus.status_page.v1.DeleteComponentGroupResponse 713 + */ 714 + export type DeleteComponentGroupResponse = 715 + & Message<"openstatus.status_page.v1.DeleteComponentGroupResponse"> 716 + & { 717 + /** 718 + * Whether the deletion was successful. 719 + * 720 + * @generated from field: bool success = 1; 721 + */ 722 + success: boolean; 723 + }; 724 + 725 + /** 726 + * Describes the message openstatus.status_page.v1.DeleteComponentGroupResponse. 727 + * Use `create(DeleteComponentGroupResponseSchema)` to create a new message. 728 + */ 729 + export const DeleteComponentGroupResponseSchema: GenMessage< 730 + DeleteComponentGroupResponse 731 + > = /*@__PURE__*/ 732 + messageDesc(file_openstatus_status_page_v1_service, 21); 733 + 734 + /** 735 + * @generated from message openstatus.status_page.v1.UpdateComponentGroupRequest 736 + */ 737 + export type UpdateComponentGroupRequest = 738 + & Message<"openstatus.status_page.v1.UpdateComponentGroupRequest"> 739 + & { 740 + /** 741 + * ID of the component group to update (required). 742 + * 743 + * @generated from field: string id = 1; 744 + */ 745 + id: string; 746 + 747 + /** 748 + * New display name for the group (optional). 749 + * 750 + * @generated from field: optional string name = 2; 751 + */ 752 + name?: string; 753 + }; 754 + 755 + /** 756 + * Describes the message openstatus.status_page.v1.UpdateComponentGroupRequest. 757 + * Use `create(UpdateComponentGroupRequestSchema)` to create a new message. 758 + */ 759 + export const UpdateComponentGroupRequestSchema: GenMessage< 760 + UpdateComponentGroupRequest 761 + > = /*@__PURE__*/ 762 + messageDesc(file_openstatus_status_page_v1_service, 22); 763 + 764 + /** 765 + * @generated from message openstatus.status_page.v1.UpdateComponentGroupResponse 766 + */ 767 + export type UpdateComponentGroupResponse = 768 + & Message<"openstatus.status_page.v1.UpdateComponentGroupResponse"> 769 + & { 770 + /** 771 + * The updated component group. 772 + * 773 + * @generated from field: openstatus.status_page.v1.PageComponentGroup group = 1; 774 + */ 775 + group?: PageComponentGroup; 776 + }; 777 + 778 + /** 779 + * Describes the message openstatus.status_page.v1.UpdateComponentGroupResponse. 780 + * Use `create(UpdateComponentGroupResponseSchema)` to create a new message. 781 + */ 782 + export const UpdateComponentGroupResponseSchema: GenMessage< 783 + UpdateComponentGroupResponse 784 + > = /*@__PURE__*/ 785 + messageDesc(file_openstatus_status_page_v1_service, 23); 786 + 787 + /** 788 + * @generated from message openstatus.status_page.v1.SubscribeToPageRequest 789 + */ 790 + export type SubscribeToPageRequest = 791 + & Message<"openstatus.status_page.v1.SubscribeToPageRequest"> 792 + & { 793 + /** 794 + * ID of the status page to subscribe to (required). 795 + * 796 + * @generated from field: string page_id = 1; 797 + */ 798 + pageId: string; 799 + 800 + /** 801 + * Email address to subscribe (required). 802 + * 803 + * @generated from field: string email = 2; 804 + */ 805 + email: string; 806 + }; 807 + 808 + /** 809 + * Describes the message openstatus.status_page.v1.SubscribeToPageRequest. 810 + * Use `create(SubscribeToPageRequestSchema)` to create a new message. 811 + */ 812 + export const SubscribeToPageRequestSchema: GenMessage< 813 + SubscribeToPageRequest 814 + > = /*@__PURE__*/ 815 + messageDesc(file_openstatus_status_page_v1_service, 24); 816 + 817 + /** 818 + * @generated from message openstatus.status_page.v1.SubscribeToPageResponse 819 + */ 820 + export type SubscribeToPageResponse = 821 + & Message<"openstatus.status_page.v1.SubscribeToPageResponse"> 822 + & { 823 + /** 824 + * The created subscriber. 825 + * 826 + * @generated from field: openstatus.status_page.v1.PageSubscriber subscriber = 1; 827 + */ 828 + subscriber?: PageSubscriber; 829 + }; 830 + 831 + /** 832 + * Describes the message openstatus.status_page.v1.SubscribeToPageResponse. 833 + * Use `create(SubscribeToPageResponseSchema)` to create a new message. 834 + */ 835 + export const SubscribeToPageResponseSchema: GenMessage< 836 + SubscribeToPageResponse 837 + > = /*@__PURE__*/ 838 + messageDesc(file_openstatus_status_page_v1_service, 25); 839 + 840 + /** 841 + * @generated from message openstatus.status_page.v1.UnsubscribeFromPageRequest 842 + */ 843 + export type UnsubscribeFromPageRequest = 844 + & Message<"openstatus.status_page.v1.UnsubscribeFromPageRequest"> 845 + & { 846 + /** 847 + * ID of the status page to unsubscribe from (required). 848 + * 849 + * @generated from field: string page_id = 1; 850 + */ 851 + pageId: string; 852 + 853 + /** 854 + * Identifier for the subscription (either email or id). 855 + * 856 + * @generated from oneof openstatus.status_page.v1.UnsubscribeFromPageRequest.identifier 857 + */ 858 + identifier: { 859 + /** 860 + * Email address to unsubscribe. 861 + * 862 + * @generated from field: string email = 2; 863 + */ 864 + value: string; 865 + case: "email"; 866 + } | { 867 + /** 868 + * Subscriber ID. 869 + * 870 + * @generated from field: string id = 3; 871 + */ 872 + value: string; 873 + case: "id"; 874 + } | { case: undefined; value?: undefined }; 875 + }; 876 + 877 + /** 878 + * Describes the message openstatus.status_page.v1.UnsubscribeFromPageRequest. 879 + * Use `create(UnsubscribeFromPageRequestSchema)` to create a new message. 880 + */ 881 + export const UnsubscribeFromPageRequestSchema: GenMessage< 882 + UnsubscribeFromPageRequest 883 + > = /*@__PURE__*/ 884 + messageDesc(file_openstatus_status_page_v1_service, 26); 885 + 886 + /** 887 + * @generated from message openstatus.status_page.v1.UnsubscribeFromPageResponse 888 + */ 889 + export type UnsubscribeFromPageResponse = 890 + & Message<"openstatus.status_page.v1.UnsubscribeFromPageResponse"> 891 + & { 892 + /** 893 + * Whether the unsubscription was successful. 894 + * 895 + * @generated from field: bool success = 1; 896 + */ 897 + success: boolean; 898 + }; 899 + 900 + /** 901 + * Describes the message openstatus.status_page.v1.UnsubscribeFromPageResponse. 902 + * Use `create(UnsubscribeFromPageResponseSchema)` to create a new message. 903 + */ 904 + export const UnsubscribeFromPageResponseSchema: GenMessage< 905 + UnsubscribeFromPageResponse 906 + > = /*@__PURE__*/ 907 + messageDesc(file_openstatus_status_page_v1_service, 27); 908 + 909 + /** 910 + * @generated from message openstatus.status_page.v1.ListSubscribersRequest 911 + */ 912 + export type ListSubscribersRequest = 913 + & Message<"openstatus.status_page.v1.ListSubscribersRequest"> 914 + & { 915 + /** 916 + * ID of the status page to list subscribers for (required). 917 + * 918 + * @generated from field: string page_id = 1; 919 + */ 920 + pageId: string; 921 + 922 + /** 923 + * Maximum number of subscribers to return (1-100, defaults to 50). 924 + * 925 + * @generated from field: optional int32 limit = 2; 926 + */ 927 + limit?: number; 928 + 929 + /** 930 + * Number of subscribers to skip for pagination (defaults to 0). 931 + * 932 + * @generated from field: optional int32 offset = 3; 933 + */ 934 + offset?: number; 935 + 936 + /** 937 + * Whether to include unsubscribed users (defaults to false). 938 + * 939 + * @generated from field: optional bool include_unsubscribed = 4; 940 + */ 941 + includeUnsubscribed?: boolean; 942 + }; 943 + 944 + /** 945 + * Describes the message openstatus.status_page.v1.ListSubscribersRequest. 946 + * Use `create(ListSubscribersRequestSchema)` to create a new message. 947 + */ 948 + export const ListSubscribersRequestSchema: GenMessage< 949 + ListSubscribersRequest 950 + > = /*@__PURE__*/ 951 + messageDesc(file_openstatus_status_page_v1_service, 28); 952 + 953 + /** 954 + * @generated from message openstatus.status_page.v1.ListSubscribersResponse 955 + */ 956 + export type ListSubscribersResponse = 957 + & Message<"openstatus.status_page.v1.ListSubscribersResponse"> 958 + & { 959 + /** 960 + * List of subscribers. 961 + * 962 + * @generated from field: repeated openstatus.status_page.v1.PageSubscriber subscribers = 1; 963 + */ 964 + subscribers: PageSubscriber[]; 965 + 966 + /** 967 + * Total number of subscribers matching the filter. 968 + * 969 + * @generated from field: int32 total_size = 2; 970 + */ 971 + totalSize: number; 972 + }; 973 + 974 + /** 975 + * Describes the message openstatus.status_page.v1.ListSubscribersResponse. 976 + * Use `create(ListSubscribersResponseSchema)` to create a new message. 977 + */ 978 + export const ListSubscribersResponseSchema: GenMessage< 979 + ListSubscribersResponse 980 + > = /*@__PURE__*/ 981 + messageDesc(file_openstatus_status_page_v1_service, 29); 982 + 983 + /** 984 + * @generated from message openstatus.status_page.v1.GetStatusPageContentRequest 985 + */ 986 + export type GetStatusPageContentRequest = 987 + & Message<"openstatus.status_page.v1.GetStatusPageContentRequest"> 988 + & { 989 + /** 990 + * Identifier for the status page (either id or slug). 991 + * 992 + * @generated from oneof openstatus.status_page.v1.GetStatusPageContentRequest.identifier 993 + */ 994 + identifier: { 995 + /** 996 + * ID of the status page. 997 + * 998 + * @generated from field: string id = 1; 999 + */ 1000 + value: string; 1001 + case: "id"; 1002 + } | { 1003 + /** 1004 + * Slug of the status page. 1005 + * 1006 + * @generated from field: string slug = 2; 1007 + */ 1008 + value: string; 1009 + case: "slug"; 1010 + } | { case: undefined; value?: undefined }; 1011 + }; 1012 + 1013 + /** 1014 + * Describes the message openstatus.status_page.v1.GetStatusPageContentRequest. 1015 + * Use `create(GetStatusPageContentRequestSchema)` to create a new message. 1016 + */ 1017 + export const GetStatusPageContentRequestSchema: GenMessage< 1018 + GetStatusPageContentRequest 1019 + > = /*@__PURE__*/ 1020 + messageDesc(file_openstatus_status_page_v1_service, 30); 1021 + 1022 + /** 1023 + * @generated from message openstatus.status_page.v1.GetStatusPageContentResponse 1024 + */ 1025 + export type GetStatusPageContentResponse = 1026 + & Message<"openstatus.status_page.v1.GetStatusPageContentResponse"> 1027 + & { 1028 + /** 1029 + * The status page details. 1030 + * 1031 + * @generated from field: openstatus.status_page.v1.StatusPage status_page = 1; 1032 + */ 1033 + statusPage?: StatusPage; 1034 + 1035 + /** 1036 + * Components on the status page. 1037 + * 1038 + * @generated from field: repeated openstatus.status_page.v1.PageComponent components = 2; 1039 + */ 1040 + components: PageComponent[]; 1041 + 1042 + /** 1043 + * Component groups on the status page. 1044 + * 1045 + * @generated from field: repeated openstatus.status_page.v1.PageComponentGroup groups = 3; 1046 + */ 1047 + groups: PageComponentGroup[]; 1048 + 1049 + /** 1050 + * Active and recent status reports. 1051 + * 1052 + * @generated from field: repeated openstatus.status_report.v1.StatusReport status_reports = 4; 1053 + */ 1054 + statusReports: StatusReport[]; 1055 + 1056 + /** 1057 + * Scheduled maintenances. 1058 + * 1059 + * @generated from field: repeated openstatus.status_page.v1.Maintenance maintenances = 5; 1060 + */ 1061 + maintenances: Maintenance[]; 1062 + }; 1063 + 1064 + /** 1065 + * Describes the message openstatus.status_page.v1.GetStatusPageContentResponse. 1066 + * Use `create(GetStatusPageContentResponseSchema)` to create a new message. 1067 + */ 1068 + export const GetStatusPageContentResponseSchema: GenMessage< 1069 + GetStatusPageContentResponse 1070 + > = /*@__PURE__*/ 1071 + messageDesc(file_openstatus_status_page_v1_service, 31); 1072 + 1073 + /** 1074 + * @generated from message openstatus.status_page.v1.GetOverallStatusRequest 1075 + */ 1076 + export type GetOverallStatusRequest = 1077 + & Message<"openstatus.status_page.v1.GetOverallStatusRequest"> 1078 + & { 1079 + /** 1080 + * Identifier for the status page (either id or slug). 1081 + * 1082 + * @generated from oneof openstatus.status_page.v1.GetOverallStatusRequest.identifier 1083 + */ 1084 + identifier: { 1085 + /** 1086 + * ID of the status page. 1087 + * 1088 + * @generated from field: string id = 1; 1089 + */ 1090 + value: string; 1091 + case: "id"; 1092 + } | { 1093 + /** 1094 + * Slug of the status page. 1095 + * 1096 + * @generated from field: string slug = 2; 1097 + */ 1098 + value: string; 1099 + case: "slug"; 1100 + } | { case: undefined; value?: undefined }; 1101 + }; 1102 + 1103 + /** 1104 + * Describes the message openstatus.status_page.v1.GetOverallStatusRequest. 1105 + * Use `create(GetOverallStatusRequestSchema)` to create a new message. 1106 + */ 1107 + export const GetOverallStatusRequestSchema: GenMessage< 1108 + GetOverallStatusRequest 1109 + > = /*@__PURE__*/ 1110 + messageDesc(file_openstatus_status_page_v1_service, 32); 1111 + 1112 + /** 1113 + * ComponentStatus represents the status of a single component. 1114 + * 1115 + * @generated from message openstatus.status_page.v1.ComponentStatus 1116 + */ 1117 + export type ComponentStatus = 1118 + & Message<"openstatus.status_page.v1.ComponentStatus"> 1119 + & { 1120 + /** 1121 + * ID of the component. 1122 + * 1123 + * @generated from field: string component_id = 1; 1124 + */ 1125 + componentId: string; 1126 + 1127 + /** 1128 + * Current status of the component. 1129 + * 1130 + * @generated from field: openstatus.status_page.v1.OverallStatus status = 2; 1131 + */ 1132 + status: OverallStatus; 1133 + }; 1134 + 1135 + /** 1136 + * Describes the message openstatus.status_page.v1.ComponentStatus. 1137 + * Use `create(ComponentStatusSchema)` to create a new message. 1138 + */ 1139 + export const ComponentStatusSchema: GenMessage<ComponentStatus> = /*@__PURE__*/ 1140 + messageDesc(file_openstatus_status_page_v1_service, 33); 1141 + 1142 + /** 1143 + * @generated from message openstatus.status_page.v1.GetOverallStatusResponse 1144 + */ 1145 + export type GetOverallStatusResponse = 1146 + & Message<"openstatus.status_page.v1.GetOverallStatusResponse"> 1147 + & { 1148 + /** 1149 + * Aggregated status across all components. 1150 + * 1151 + * @generated from field: openstatus.status_page.v1.OverallStatus overall_status = 1; 1152 + */ 1153 + overallStatus: OverallStatus; 1154 + 1155 + /** 1156 + * Status of individual components. 1157 + * 1158 + * @generated from field: repeated openstatus.status_page.v1.ComponentStatus component_statuses = 2; 1159 + */ 1160 + componentStatuses: ComponentStatus[]; 1161 + }; 1162 + 1163 + /** 1164 + * Describes the message openstatus.status_page.v1.GetOverallStatusResponse. 1165 + * Use `create(GetOverallStatusResponseSchema)` to create a new message. 1166 + */ 1167 + export const GetOverallStatusResponseSchema: GenMessage< 1168 + GetOverallStatusResponse 1169 + > = /*@__PURE__*/ 1170 + messageDesc(file_openstatus_status_page_v1_service, 34); 1171 + 1172 + /** 1173 + * StatusPageService provides CRUD and management operations for status pages. 1174 + * 1175 + * --- Page CRUD --- 1176 + * 1177 + * @generated from service openstatus.status_page.v1.StatusPageService 1178 + */ 1179 + export const StatusPageService: GenService<{ 1180 + /** 1181 + * CreateStatusPage creates a new status page. 1182 + * 1183 + * @generated from rpc openstatus.status_page.v1.StatusPageService.CreateStatusPage 1184 + */ 1185 + createStatusPage: { 1186 + methodKind: "unary"; 1187 + input: typeof CreateStatusPageRequestSchema; 1188 + output: typeof CreateStatusPageResponseSchema; 1189 + }; 1190 + /** 1191 + * GetStatusPage retrieves a specific status page by ID. 1192 + * 1193 + * @generated from rpc openstatus.status_page.v1.StatusPageService.GetStatusPage 1194 + */ 1195 + getStatusPage: { 1196 + methodKind: "unary"; 1197 + input: typeof GetStatusPageRequestSchema; 1198 + output: typeof GetStatusPageResponseSchema; 1199 + }; 1200 + /** 1201 + * ListStatusPages returns all status pages for the workspace. 1202 + * 1203 + * @generated from rpc openstatus.status_page.v1.StatusPageService.ListStatusPages 1204 + */ 1205 + listStatusPages: { 1206 + methodKind: "unary"; 1207 + input: typeof ListStatusPagesRequestSchema; 1208 + output: typeof ListStatusPagesResponseSchema; 1209 + }; 1210 + /** 1211 + * UpdateStatusPage updates an existing status page. 1212 + * 1213 + * @generated from rpc openstatus.status_page.v1.StatusPageService.UpdateStatusPage 1214 + */ 1215 + updateStatusPage: { 1216 + methodKind: "unary"; 1217 + input: typeof UpdateStatusPageRequestSchema; 1218 + output: typeof UpdateStatusPageResponseSchema; 1219 + }; 1220 + /** 1221 + * DeleteStatusPage removes a status page. 1222 + * 1223 + * @generated from rpc openstatus.status_page.v1.StatusPageService.DeleteStatusPage 1224 + */ 1225 + deleteStatusPage: { 1226 + methodKind: "unary"; 1227 + input: typeof DeleteStatusPageRequestSchema; 1228 + output: typeof DeleteStatusPageResponseSchema; 1229 + }; 1230 + /** 1231 + * AddMonitorComponent adds a monitor-based component to a status page. 1232 + * 1233 + * @generated from rpc openstatus.status_page.v1.StatusPageService.AddMonitorComponent 1234 + */ 1235 + addMonitorComponent: { 1236 + methodKind: "unary"; 1237 + input: typeof AddMonitorComponentRequestSchema; 1238 + output: typeof AddMonitorComponentResponseSchema; 1239 + }; 1240 + /** 1241 + * AddStaticComponent adds a static component to a status page. 1242 + * 1243 + * @generated from rpc openstatus.status_page.v1.StatusPageService.AddStaticComponent 1244 + */ 1245 + addStaticComponent: { 1246 + methodKind: "unary"; 1247 + input: typeof AddStaticComponentRequestSchema; 1248 + output: typeof AddStaticComponentResponseSchema; 1249 + }; 1250 + /** 1251 + * RemoveComponent removes a component from a status page. 1252 + * 1253 + * @generated from rpc openstatus.status_page.v1.StatusPageService.RemoveComponent 1254 + */ 1255 + removeComponent: { 1256 + methodKind: "unary"; 1257 + input: typeof RemoveComponentRequestSchema; 1258 + output: typeof RemoveComponentResponseSchema; 1259 + }; 1260 + /** 1261 + * UpdateComponent updates an existing component. 1262 + * 1263 + * @generated from rpc openstatus.status_page.v1.StatusPageService.UpdateComponent 1264 + */ 1265 + updateComponent: { 1266 + methodKind: "unary"; 1267 + input: typeof UpdateComponentRequestSchema; 1268 + output: typeof UpdateComponentResponseSchema; 1269 + }; 1270 + /** 1271 + * CreateComponentGroup creates a new component group. 1272 + * 1273 + * @generated from rpc openstatus.status_page.v1.StatusPageService.CreateComponentGroup 1274 + */ 1275 + createComponentGroup: { 1276 + methodKind: "unary"; 1277 + input: typeof CreateComponentGroupRequestSchema; 1278 + output: typeof CreateComponentGroupResponseSchema; 1279 + }; 1280 + /** 1281 + * DeleteComponentGroup removes a component group. 1282 + * 1283 + * @generated from rpc openstatus.status_page.v1.StatusPageService.DeleteComponentGroup 1284 + */ 1285 + deleteComponentGroup: { 1286 + methodKind: "unary"; 1287 + input: typeof DeleteComponentGroupRequestSchema; 1288 + output: typeof DeleteComponentGroupResponseSchema; 1289 + }; 1290 + /** 1291 + * UpdateComponentGroup updates an existing component group. 1292 + * 1293 + * @generated from rpc openstatus.status_page.v1.StatusPageService.UpdateComponentGroup 1294 + */ 1295 + updateComponentGroup: { 1296 + methodKind: "unary"; 1297 + input: typeof UpdateComponentGroupRequestSchema; 1298 + output: typeof UpdateComponentGroupResponseSchema; 1299 + }; 1300 + /** 1301 + * SubscribeToPage subscribes an email to a status page. 1302 + * 1303 + * @generated from rpc openstatus.status_page.v1.StatusPageService.SubscribeToPage 1304 + */ 1305 + subscribeToPage: { 1306 + methodKind: "unary"; 1307 + input: typeof SubscribeToPageRequestSchema; 1308 + output: typeof SubscribeToPageResponseSchema; 1309 + }; 1310 + /** 1311 + * UnsubscribeFromPage removes a subscription from a status page. 1312 + * 1313 + * @generated from rpc openstatus.status_page.v1.StatusPageService.UnsubscribeFromPage 1314 + */ 1315 + unsubscribeFromPage: { 1316 + methodKind: "unary"; 1317 + input: typeof UnsubscribeFromPageRequestSchema; 1318 + output: typeof UnsubscribeFromPageResponseSchema; 1319 + }; 1320 + /** 1321 + * ListSubscribers returns all subscribers for a status page. 1322 + * 1323 + * @generated from rpc openstatus.status_page.v1.StatusPageService.ListSubscribers 1324 + */ 1325 + listSubscribers: { 1326 + methodKind: "unary"; 1327 + input: typeof ListSubscribersRequestSchema; 1328 + output: typeof ListSubscribersResponseSchema; 1329 + }; 1330 + /** 1331 + * GetStatusPageContent retrieves the full content of a status page including components and reports. 1332 + * 1333 + * @generated from rpc openstatus.status_page.v1.StatusPageService.GetStatusPageContent 1334 + */ 1335 + getStatusPageContent: { 1336 + methodKind: "unary"; 1337 + input: typeof GetStatusPageContentRequestSchema; 1338 + output: typeof GetStatusPageContentResponseSchema; 1339 + }; 1340 + /** 1341 + * GetOverallStatus returns the aggregated status of a status page. 1342 + * 1343 + * @generated from rpc openstatus.status_page.v1.StatusPageService.GetOverallStatus 1344 + */ 1345 + getOverallStatus: { 1346 + methodKind: "unary"; 1347 + input: typeof GetOverallStatusRequestSchema; 1348 + output: typeof GetOverallStatusResponseSchema; 1349 + }; 1350 + }> = /*@__PURE__*/ 1351 + serviceDesc(file_openstatus_status_page_v1_service, 0);
+368
src/gen/openstatus/status_page/v1/status_page_pb.ts
··· 1 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 2 + // @generated from file openstatus/status_page/v1/status_page.proto (package openstatus.status_page.v1, syntax proto3) 3 + /* eslint-disable */ 4 + 5 + import type { 6 + GenEnum, 7 + GenFile, 8 + GenMessage, 9 + } from "@bufbuild/protobuf/codegenv2"; 10 + import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 11 + import type { Message } from "@bufbuild/protobuf"; 12 + 13 + /** 14 + * Describes the file openstatus/status_page/v1/status_page.proto. 15 + */ 16 + export const file_openstatus_status_page_v1_status_page: GenFile = /*@__PURE__*/ 17 + fileDesc( 18 + "CitvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3N0YXR1c19wYWdlLnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIsoCCgpTdGF0dXNQYWdlEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBHNsdWcYBCABKAkSFQoNY3VzdG9tX2RvbWFpbhgFIAEoCRIRCglwdWJsaXNoZWQYBiABKAgSPgoLYWNjZXNzX3R5cGUYByABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlEjMKBXRoZW1lGAggASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWUSFAoMaG9tZXBhZ2VfdXJsGAkgASgJEhMKC2NvbnRhY3RfdXJsGAogASgJEgwKBGljb24YCyABKAkSEgoKY3JlYXRlZF9hdBgMIAEoCRISCgp1cGRhdGVkX2F0GA0gASgJIncKEVN0YXR1c1BhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSEQoJcHVibGlzaGVkGAQgASgIEhIKCmNyZWF0ZWRfYXQYBSABKAkSEgoKdXBkYXRlZF9hdBgGIAEoCSKXAQoLTWFpbnRlbmFuY2USCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIMCgRmcm9tGAQgASgJEgoKAnRvGAUgASgJEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgGIAMoCRISCgpjcmVhdGVkX2F0GAcgASgJEhIKCnVwZGF0ZWRfYXQYCCABKAkqnAEKDlBhZ2VBY2Nlc3NUeXBlEiAKHFBBR0VfQUNDRVNTX1RZUEVfVU5TUEVDSUZJRUQQABIbChdQQUdFX0FDQ0VTU19UWVBFX1BVQkxJQxABEicKI1BBR0VfQUNDRVNTX1RZUEVfUEFTU1dPUkRfUFJPVEVDVEVEEAISIgoeUEFHRV9BQ0NFU1NfVFlQRV9BVVRIRU5USUNBVEVEEAMqaQoJUGFnZVRoZW1lEhoKFlBBR0VfVEhFTUVfVU5TUEVDSUZJRUQQABIVChFQQUdFX1RIRU1FX1NZU1RFTRABEhQKEFBBR0VfVEhFTUVfTElHSFQQAhITCg9QQUdFX1RIRU1FX0RBUksQAyrsAQoNT3ZlcmFsbFN0YXR1cxIeChpPVkVSQUxMX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGk9WRVJBTExfU1RBVFVTX09QRVJBVElPTkFMEAESGwoXT1ZFUkFMTF9TVEFUVVNfREVHUkFERUQQAhIhCh1PVkVSQUxMX1NUQVRVU19QQVJUSUFMX09VVEFHRRADEh8KG09WRVJBTExfU1RBVFVTX01BSk9SX09VVEFHRRAEEh4KGk9WRVJBTExfU1RBVFVTX01BSU5URU5BTkNFEAUSGgoWT1ZFUkFMTF9TVEFUVVNfVU5LTk9XThAGQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 19 + ); 20 + 21 + /** 22 + * StatusPage represents a full status page with all details. 23 + * 24 + * @generated from message openstatus.status_page.v1.StatusPage 25 + */ 26 + export type StatusPage = Message<"openstatus.status_page.v1.StatusPage"> & { 27 + /** 28 + * Unique identifier for the status page. 29 + * 30 + * @generated from field: string id = 1; 31 + */ 32 + id: string; 33 + 34 + /** 35 + * Title of the status page. 36 + * 37 + * @generated from field: string title = 2; 38 + */ 39 + title: string; 40 + 41 + /** 42 + * Description of the status page. 43 + * 44 + * @generated from field: string description = 3; 45 + */ 46 + description: string; 47 + 48 + /** 49 + * URL-friendly slug for the status page. 50 + * 51 + * @generated from field: string slug = 4; 52 + */ 53 + slug: string; 54 + 55 + /** 56 + * Custom domain for the status page (optional). 57 + * 58 + * @generated from field: string custom_domain = 5; 59 + */ 60 + customDomain: string; 61 + 62 + /** 63 + * Whether the status page is published and visible. 64 + * 65 + * @generated from field: bool published = 6; 66 + */ 67 + published: boolean; 68 + 69 + /** 70 + * Access type for the status page. 71 + * 72 + * @generated from field: openstatus.status_page.v1.PageAccessType access_type = 7; 73 + */ 74 + accessType: PageAccessType; 75 + 76 + /** 77 + * Visual theme for the status page. 78 + * 79 + * @generated from field: openstatus.status_page.v1.PageTheme theme = 8; 80 + */ 81 + theme: PageTheme; 82 + 83 + /** 84 + * URL to the homepage (optional). 85 + * 86 + * @generated from field: string homepage_url = 9; 87 + */ 88 + homepageUrl: string; 89 + 90 + /** 91 + * URL to the contact page (optional). 92 + * 93 + * @generated from field: string contact_url = 10; 94 + */ 95 + contactUrl: string; 96 + 97 + /** 98 + * Icon URL for the status page (optional). 99 + * 100 + * @generated from field: string icon = 11; 101 + */ 102 + icon: string; 103 + 104 + /** 105 + * Timestamp when the page was created (RFC 3339 format). 106 + * 107 + * @generated from field: string created_at = 12; 108 + */ 109 + createdAt: string; 110 + 111 + /** 112 + * Timestamp when the page was last updated (RFC 3339 format). 113 + * 114 + * @generated from field: string updated_at = 13; 115 + */ 116 + updatedAt: string; 117 + }; 118 + 119 + /** 120 + * Describes the message openstatus.status_page.v1.StatusPage. 121 + * Use `create(StatusPageSchema)` to create a new message. 122 + */ 123 + export const StatusPageSchema: GenMessage<StatusPage> = /*@__PURE__*/ 124 + messageDesc(file_openstatus_status_page_v1_status_page, 0); 125 + 126 + /** 127 + * StatusPageSummary represents metadata for a status page (used in list responses). 128 + * 129 + * @generated from message openstatus.status_page.v1.StatusPageSummary 130 + */ 131 + export type StatusPageSummary = 132 + & Message<"openstatus.status_page.v1.StatusPageSummary"> 133 + & { 134 + /** 135 + * Unique identifier for the status page. 136 + * 137 + * @generated from field: string id = 1; 138 + */ 139 + id: string; 140 + 141 + /** 142 + * Title of the status page. 143 + * 144 + * @generated from field: string title = 2; 145 + */ 146 + title: string; 147 + 148 + /** 149 + * URL-friendly slug for the status page. 150 + * 151 + * @generated from field: string slug = 3; 152 + */ 153 + slug: string; 154 + 155 + /** 156 + * Whether the status page is published and visible. 157 + * 158 + * @generated from field: bool published = 4; 159 + */ 160 + published: boolean; 161 + 162 + /** 163 + * Timestamp when the page was created (RFC 3339 format). 164 + * 165 + * @generated from field: string created_at = 5; 166 + */ 167 + createdAt: string; 168 + 169 + /** 170 + * Timestamp when the page was last updated (RFC 3339 format). 171 + * 172 + * @generated from field: string updated_at = 6; 173 + */ 174 + updatedAt: string; 175 + }; 176 + 177 + /** 178 + * Describes the message openstatus.status_page.v1.StatusPageSummary. 179 + * Use `create(StatusPageSummarySchema)` to create a new message. 180 + */ 181 + export const StatusPageSummarySchema: GenMessage< 182 + StatusPageSummary 183 + > = /*@__PURE__*/ 184 + messageDesc(file_openstatus_status_page_v1_status_page, 1); 185 + 186 + /** 187 + * Maintenance represents a scheduled maintenance window. 188 + * 189 + * @generated from message openstatus.status_page.v1.Maintenance 190 + */ 191 + export type Maintenance = Message<"openstatus.status_page.v1.Maintenance"> & { 192 + /** 193 + * Unique identifier for the maintenance. 194 + * 195 + * @generated from field: string id = 1; 196 + */ 197 + id: string; 198 + 199 + /** 200 + * Title of the maintenance. 201 + * 202 + * @generated from field: string title = 2; 203 + */ 204 + title: string; 205 + 206 + /** 207 + * Message describing the maintenance. 208 + * 209 + * @generated from field: string message = 3; 210 + */ 211 + message: string; 212 + 213 + /** 214 + * Start time of the maintenance window (RFC 3339 format). 215 + * 216 + * @generated from field: string from = 4; 217 + */ 218 + from: string; 219 + 220 + /** 221 + * End time of the maintenance window (RFC 3339 format). 222 + * 223 + * @generated from field: string to = 5; 224 + */ 225 + to: string; 226 + 227 + /** 228 + * IDs of affected page components. 229 + * 230 + * @generated from field: repeated string page_component_ids = 6; 231 + */ 232 + pageComponentIds: string[]; 233 + 234 + /** 235 + * Timestamp when the maintenance was created (RFC 3339 format). 236 + * 237 + * @generated from field: string created_at = 7; 238 + */ 239 + createdAt: string; 240 + 241 + /** 242 + * Timestamp when the maintenance was last updated (RFC 3339 format). 243 + * 244 + * @generated from field: string updated_at = 8; 245 + */ 246 + updatedAt: string; 247 + }; 248 + 249 + /** 250 + * Describes the message openstatus.status_page.v1.Maintenance. 251 + * Use `create(MaintenanceSchema)` to create a new message. 252 + */ 253 + export const MaintenanceSchema: GenMessage<Maintenance> = /*@__PURE__*/ 254 + messageDesc(file_openstatus_status_page_v1_status_page, 2); 255 + 256 + /** 257 + * PageAccessType defines who can access the status page. 258 + * 259 + * @generated from enum openstatus.status_page.v1.PageAccessType 260 + */ 261 + export enum PageAccessType { 262 + /** 263 + * @generated from enum value: PAGE_ACCESS_TYPE_UNSPECIFIED = 0; 264 + */ 265 + UNSPECIFIED = 0, 266 + 267 + /** 268 + * @generated from enum value: PAGE_ACCESS_TYPE_PUBLIC = 1; 269 + */ 270 + PUBLIC = 1, 271 + 272 + /** 273 + * @generated from enum value: PAGE_ACCESS_TYPE_PASSWORD_PROTECTED = 2; 274 + */ 275 + PASSWORD_PROTECTED = 2, 276 + 277 + /** 278 + * @generated from enum value: PAGE_ACCESS_TYPE_AUTHENTICATED = 3; 279 + */ 280 + AUTHENTICATED = 3, 281 + } 282 + 283 + /** 284 + * Describes the enum openstatus.status_page.v1.PageAccessType. 285 + */ 286 + export const PageAccessTypeSchema: GenEnum<PageAccessType> = /*@__PURE__*/ 287 + enumDesc(file_openstatus_status_page_v1_status_page, 0); 288 + 289 + /** 290 + * PageTheme defines the visual theme of the status page. 291 + * 292 + * @generated from enum openstatus.status_page.v1.PageTheme 293 + */ 294 + export enum PageTheme { 295 + /** 296 + * @generated from enum value: PAGE_THEME_UNSPECIFIED = 0; 297 + */ 298 + UNSPECIFIED = 0, 299 + 300 + /** 301 + * @generated from enum value: PAGE_THEME_SYSTEM = 1; 302 + */ 303 + SYSTEM = 1, 304 + 305 + /** 306 + * @generated from enum value: PAGE_THEME_LIGHT = 2; 307 + */ 308 + LIGHT = 2, 309 + 310 + /** 311 + * @generated from enum value: PAGE_THEME_DARK = 3; 312 + */ 313 + DARK = 3, 314 + } 315 + 316 + /** 317 + * Describes the enum openstatus.status_page.v1.PageTheme. 318 + */ 319 + export const PageThemeSchema: GenEnum<PageTheme> = /*@__PURE__*/ 320 + enumDesc(file_openstatus_status_page_v1_status_page, 1); 321 + 322 + /** 323 + * OverallStatus represents the aggregated status of all components on a page. 324 + * 325 + * @generated from enum openstatus.status_page.v1.OverallStatus 326 + */ 327 + export enum OverallStatus { 328 + /** 329 + * @generated from enum value: OVERALL_STATUS_UNSPECIFIED = 0; 330 + */ 331 + UNSPECIFIED = 0, 332 + 333 + /** 334 + * @generated from enum value: OVERALL_STATUS_OPERATIONAL = 1; 335 + */ 336 + OPERATIONAL = 1, 337 + 338 + /** 339 + * @generated from enum value: OVERALL_STATUS_DEGRADED = 2; 340 + */ 341 + DEGRADED = 2, 342 + 343 + /** 344 + * @generated from enum value: OVERALL_STATUS_PARTIAL_OUTAGE = 3; 345 + */ 346 + PARTIAL_OUTAGE = 3, 347 + 348 + /** 349 + * @generated from enum value: OVERALL_STATUS_MAJOR_OUTAGE = 4; 350 + */ 351 + MAJOR_OUTAGE = 4, 352 + 353 + /** 354 + * @generated from enum value: OVERALL_STATUS_MAINTENANCE = 5; 355 + */ 356 + MAINTENANCE = 5, 357 + 358 + /** 359 + * @generated from enum value: OVERALL_STATUS_UNKNOWN = 6; 360 + */ 361 + UNKNOWN = 6, 362 + } 363 + 364 + /** 365 + * Describes the enum openstatus.status_page.v1.OverallStatus. 366 + */ 367 + export const OverallStatusSchema: GenEnum<OverallStatus> = /*@__PURE__*/ 368 + enumDesc(file_openstatus_status_page_v1_status_page, 2);
+99
src/mod.ts
··· 34 34 import { MonitorService } from "./gen/openstatus/monitor/v1/service_pb.ts"; 35 35 import { HealthService } from "./gen/openstatus/health/v1/health_pb.ts"; 36 36 import { StatusReportService } from "./gen/openstatus/status_report/v1/service_pb.ts"; 37 + import { StatusPageService } from "./gen/openstatus/status_page/v1/service_pb.ts"; 37 38 38 39 // Re-export monitor types 39 40 export type { ··· 130 131 UpdateStatusReportResponse, 131 132 } from "./gen/openstatus/status_report/v1/service_pb.ts"; 132 133 134 + // Re-export status page types 135 + export type { 136 + Maintenance, 137 + StatusPage, 138 + StatusPageSummary, 139 + } from "./gen/openstatus/status_page/v1/status_page_pb.ts"; 140 + 141 + export { 142 + OverallStatus, 143 + PageAccessType, 144 + PageTheme, 145 + } from "./gen/openstatus/status_page/v1/status_page_pb.ts"; 146 + 147 + // Re-export page component types 148 + export type { 149 + PageComponent, 150 + PageComponentGroup, 151 + } from "./gen/openstatus/status_page/v1/page_component_pb.ts"; 152 + 153 + export { PageComponentType } from "./gen/openstatus/status_page/v1/page_component_pb.ts"; 154 + 155 + // Re-export page subscriber types 156 + export type { PageSubscriber } from "./gen/openstatus/status_page/v1/page_subscriber_pb.ts"; 157 + 158 + // Re-export status page request/response types 159 + export type { 160 + AddMonitorComponentRequest, 161 + AddMonitorComponentResponse, 162 + AddStaticComponentRequest, 163 + AddStaticComponentResponse, 164 + ComponentStatus, 165 + CreateComponentGroupRequest, 166 + CreateComponentGroupResponse, 167 + CreateStatusPageRequest, 168 + CreateStatusPageResponse, 169 + DeleteComponentGroupRequest, 170 + DeleteComponentGroupResponse, 171 + DeleteStatusPageRequest, 172 + DeleteStatusPageResponse, 173 + GetOverallStatusRequest, 174 + GetOverallStatusResponse, 175 + GetStatusPageContentRequest, 176 + GetStatusPageContentResponse, 177 + GetStatusPageRequest, 178 + GetStatusPageResponse, 179 + ListStatusPagesRequest, 180 + ListStatusPagesResponse, 181 + ListSubscribersRequest, 182 + ListSubscribersResponse, 183 + RemoveComponentRequest, 184 + RemoveComponentResponse, 185 + SubscribeToPageRequest, 186 + SubscribeToPageResponse, 187 + UnsubscribeFromPageRequest, 188 + UnsubscribeFromPageResponse, 189 + UpdateComponentGroupRequest, 190 + UpdateComponentGroupResponse, 191 + UpdateComponentRequest, 192 + UpdateComponentResponse, 193 + UpdateStatusPageRequest, 194 + UpdateStatusPageResponse, 195 + } from "./gen/openstatus/status_page/v1/service_pb.ts"; 196 + 133 197 /** 134 198 * Default OpenStatus API URL. 135 199 */ ··· 206 270 StatusReportService: Client<typeof StatusReportService>; 207 271 }; 208 272 }; 273 + /** 274 + * Status page service namespace (v1). 275 + */ 276 + statusPage: { 277 + v1: { 278 + /** 279 + * StatusPageService provides CRUD and management operations for status pages. 280 + * 281 + * Methods: 282 + * - `createStatusPage` - Create a new status page 283 + * - `getStatusPage` - Get a status page by ID 284 + * - `listStatusPages` - List all status pages 285 + * - `updateStatusPage` - Update a status page 286 + * - `deleteStatusPage` - Delete a status page 287 + * - `addMonitorComponent` - Add a monitor-based component 288 + * - `addStaticComponent` - Add a static component 289 + * - `removeComponent` - Remove a component 290 + * - `updateComponent` - Update a component 291 + * - `createComponentGroup` - Create a component group 292 + * - `deleteComponentGroup` - Delete a component group 293 + * - `updateComponentGroup` - Update a component group 294 + * - `subscribeToPage` - Subscribe an email to a status page 295 + * - `unsubscribeFromPage` - Unsubscribe from a status page 296 + * - `listSubscribers` - List all subscribers 297 + * - `getStatusPageContent` - Get full status page content 298 + * - `getOverallStatus` - Get aggregated status 299 + */ 300 + StatusPageService: Client<typeof StatusPageService>; 301 + }; 302 + }; 209 303 } 210 304 211 305 /** ··· 246 340 statusReport: { 247 341 v1: { 248 342 StatusReportService: createClient(StatusReportService, transport), 343 + }, 344 + }, 345 + statusPage: { 346 + v1: { 347 + StatusPageService: createClient(StatusPageService, transport), 249 348 }, 250 349 }, 251 350 };