Openstatus sdk www.openstatus.dev

Add MaintenanceService for scheduled maintenance windows (#7)

- Add maintenance service with CRUD operations (create, get, list, update, delete)
- Export Maintenance and MaintenanceSummary types
- Export all maintenance request/response types
- Add maintenance namespace to OpenStatusClient interface
- Update README with maintenance service documentation
- Remove non-existent Maintenance export from status page types

authored by

Thibault Le Ouay and committed by
GitHub
24d693fc cb1724a8

+744 -94
+90 -2
README.md
··· 14 14 - **Status Pages** - Create and manage public status pages with custom domains 15 15 - **Page Components** - Add monitor-based or static components with grouping 16 16 - **Subscribers** - Manage email subscriptions for status updates 17 - - **Status Reports** - Manage incident and maintenance reports with update 18 - timelines 17 + - **Status Reports** - Manage incident reports with update timelines 18 + - **Maintenance Windows** - Schedule and manage planned maintenance periods 19 19 20 20 ### Monitoring 21 21 ··· 731 731 for (const { componentId, status } of componentStatuses) { 732 732 console.log(` ${componentId}: ${OverallStatus[status]}`); 733 733 } 734 + ``` 735 + 736 + ### Maintenance Service 737 + 738 + Manage scheduled maintenance windows. 739 + 740 + #### `createMaintenance(request, options)` 741 + 742 + Create a new maintenance window. 743 + 744 + ```typescript 745 + const { maintenance } = await openstatus.maintenance.v1.MaintenanceService 746 + .createMaintenance( 747 + { 748 + title: "Database Upgrade", 749 + message: "We will be upgrading our database infrastructure.", 750 + from: "2024-01-20T02:00:00Z", 751 + to: "2024-01-20T04:00:00Z", 752 + pageId: "page_123", 753 + pageComponentIds: ["comp_456"], 754 + notify: true, 755 + }, 756 + { headers }, 757 + ); 758 + 759 + console.log(`Maintenance created: ${maintenance?.id}`); 760 + ``` 761 + 762 + #### `getMaintenance(request, options)` 763 + 764 + Get a maintenance window by ID. 765 + 766 + ```typescript 767 + const { maintenance } = await openstatus.maintenance.v1.MaintenanceService 768 + .getMaintenance( 769 + { id: "maint_123" }, 770 + { headers }, 771 + ); 772 + 773 + console.log(`Title: ${maintenance?.title}`); 774 + console.log(`From: ${maintenance?.from}`); 775 + console.log(`To: ${maintenance?.to}`); 776 + ``` 777 + 778 + #### `listMaintenances(request, options)` 779 + 780 + List all maintenance windows with pagination and optional filtering. 781 + 782 + ```typescript 783 + const { maintenances, totalSize } = await openstatus.maintenance.v1 784 + .MaintenanceService.listMaintenances( 785 + { 786 + limit: 10, 787 + offset: 0, 788 + pageId: "page_123", // optional filter 789 + }, 790 + { headers }, 791 + ); 792 + 793 + console.log(`Found ${totalSize} maintenance windows`); 794 + ``` 795 + 796 + #### `updateMaintenance(request, options)` 797 + 798 + Update a maintenance window. 799 + 800 + ```typescript 801 + const { maintenance } = await openstatus.maintenance.v1.MaintenanceService 802 + .updateMaintenance( 803 + { 804 + id: "maint_123", 805 + title: "Extended Database Upgrade", 806 + to: "2024-01-20T06:00:00Z", 807 + }, 808 + { headers }, 809 + ); 810 + ``` 811 + 812 + #### `deleteMaintenance(request, options)` 813 + 814 + Delete a maintenance window. 815 + 816 + ```typescript 817 + const { success } = await openstatus.maintenance.v1.MaintenanceService 818 + .deleteMaintenance( 819 + { id: "maint_123" }, 820 + { headers }, 821 + ); 734 822 ``` 735 823 736 824 ### Status Page Options
+173
src/gen/openstatus/maintenance/v1/maintenance_pb.ts
··· 1 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 2 + // @generated from file openstatus/maintenance/v1/maintenance.proto (package openstatus.maintenance.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/maintenance/v1/maintenance.proto. 11 + */ 12 + export const file_openstatus_maintenance_v1_maintenance: GenFile = /*@__PURE__*/ 13 + fileDesc( 14 + "CitvcGVuc3RhdHVzL21haW50ZW5hbmNlL3YxL21haW50ZW5hbmNlLnByb3RvEhlvcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxIq8BChJNYWludGVuYW5jZVN1bW1hcnkSCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIMCgRmcm9tGAQgASgJEgoKAnRvGAUgASgJEg8KB3BhZ2VfaWQYBiABKAkSGgoScGFnZV9jb21wb25lbnRfaWRzGAcgAygJEhIKCmNyZWF0ZWRfYXQYCCABKAkSEgoKdXBkYXRlZF9hdBgJIAEoCSKoAQoLTWFpbnRlbmFuY2USCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIMCgRmcm9tGAQgASgJEgoKAnRvGAUgASgJEg8KB3BhZ2VfaWQYBiABKAkSGgoScGFnZV9jb21wb25lbnRfaWRzGAcgAygJEhIKCmNyZWF0ZWRfYXQYCCABKAkSEgoKdXBkYXRlZF9hdBgJIAEoCUJbWllnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbWFpbnRlbmFuY2UvdjE7bWFpbnRlbmFuY2V2MWIGcHJvdG8z", 15 + ); 16 + 17 + /** 18 + * MaintenanceSummary represents metadata for a maintenance window (used in list responses). 19 + * 20 + * @generated from message openstatus.maintenance.v1.MaintenanceSummary 21 + */ 22 + export type MaintenanceSummary = 23 + & Message<"openstatus.maintenance.v1.MaintenanceSummary"> 24 + & { 25 + /** 26 + * Unique identifier for the maintenance. 27 + * 28 + * @generated from field: string id = 1; 29 + */ 30 + id: string; 31 + 32 + /** 33 + * Title of the maintenance. 34 + * 35 + * @generated from field: string title = 2; 36 + */ 37 + title: string; 38 + 39 + /** 40 + * Message describing the maintenance. 41 + * 42 + * @generated from field: string message = 3; 43 + */ 44 + message: string; 45 + 46 + /** 47 + * Start time of the maintenance window (RFC 3339 format). 48 + * 49 + * @generated from field: string from = 4; 50 + */ 51 + from: string; 52 + 53 + /** 54 + * End time of the maintenance window (RFC 3339 format). 55 + * 56 + * @generated from field: string to = 5; 57 + */ 58 + to: string; 59 + 60 + /** 61 + * ID of the page this maintenance is associated with. 62 + * 63 + * @generated from field: string page_id = 6; 64 + */ 65 + pageId: string; 66 + 67 + /** 68 + * IDs of affected page components. 69 + * 70 + * @generated from field: repeated string page_component_ids = 7; 71 + */ 72 + pageComponentIds: string[]; 73 + 74 + /** 75 + * Timestamp when the maintenance was created (RFC 3339 format). 76 + * 77 + * @generated from field: string created_at = 8; 78 + */ 79 + createdAt: string; 80 + 81 + /** 82 + * Timestamp when the maintenance was last updated (RFC 3339 format). 83 + * 84 + * @generated from field: string updated_at = 9; 85 + */ 86 + updatedAt: string; 87 + }; 88 + 89 + /** 90 + * Describes the message openstatus.maintenance.v1.MaintenanceSummary. 91 + * Use `create(MaintenanceSummarySchema)` to create a new message. 92 + */ 93 + export const MaintenanceSummarySchema: GenMessage< 94 + MaintenanceSummary 95 + > = /*@__PURE__*/ 96 + messageDesc(file_openstatus_maintenance_v1_maintenance, 0); 97 + 98 + /** 99 + * Maintenance represents a maintenance window with full details. 100 + * 101 + * @generated from message openstatus.maintenance.v1.Maintenance 102 + */ 103 + export type Maintenance = Message<"openstatus.maintenance.v1.Maintenance"> & { 104 + /** 105 + * Unique identifier for the maintenance. 106 + * 107 + * @generated from field: string id = 1; 108 + */ 109 + id: string; 110 + 111 + /** 112 + * Title of the maintenance. 113 + * 114 + * @generated from field: string title = 2; 115 + */ 116 + title: string; 117 + 118 + /** 119 + * Message describing the maintenance. 120 + * 121 + * @generated from field: string message = 3; 122 + */ 123 + message: string; 124 + 125 + /** 126 + * Start time of the maintenance window (RFC 3339 format). 127 + * 128 + * @generated from field: string from = 4; 129 + */ 130 + from: string; 131 + 132 + /** 133 + * End time of the maintenance window (RFC 3339 format). 134 + * 135 + * @generated from field: string to = 5; 136 + */ 137 + to: string; 138 + 139 + /** 140 + * ID of the page this maintenance is associated with. 141 + * 142 + * @generated from field: string page_id = 6; 143 + */ 144 + pageId: string; 145 + 146 + /** 147 + * IDs of affected page components. 148 + * 149 + * @generated from field: repeated string page_component_ids = 7; 150 + */ 151 + pageComponentIds: string[]; 152 + 153 + /** 154 + * Timestamp when the maintenance was created (RFC 3339 format). 155 + * 156 + * @generated from field: string created_at = 8; 157 + */ 158 + createdAt: string; 159 + 160 + /** 161 + * Timestamp when the maintenance was last updated (RFC 3339 format). 162 + * 163 + * @generated from field: string updated_at = 9; 164 + */ 165 + updatedAt: string; 166 + }; 167 + 168 + /** 169 + * Describes the message openstatus.maintenance.v1.Maintenance. 170 + * Use `create(MaintenanceSchema)` to create a new message. 171 + */ 172 + export const MaintenanceSchema: GenMessage<Maintenance> = /*@__PURE__*/ 173 + messageDesc(file_openstatus_maintenance_v1_maintenance, 1);
+421
src/gen/openstatus/maintenance/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/maintenance/v1/service.proto (package openstatus.maintenance.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 { Maintenance, MaintenanceSummary } from "./maintenance_pb.ts"; 17 + import { file_openstatus_maintenance_v1_maintenance } from "./maintenance_pb.ts"; 18 + import type { Message } from "@bufbuild/protobuf"; 19 + 20 + /** 21 + * Describes the file openstatus/maintenance/v1/service.proto. 22 + */ 23 + export const file_openstatus_maintenance_v1_service: GenFile = /*@__PURE__*/ 24 + fileDesc( 25 + "CidvcGVuc3RhdHVzL21haW50ZW5hbmNlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEi2QIKGENyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBIZCgV0aXRsZRgBIAEoCUIKukgHcgUQARiAAhIYCgdtZXNzYWdlGAIgASgJQge6SARyAhABElkKBGZyb20YAyABKAlCS7pISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJBJXCgJ0bxgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkEhgKB3BhZ2VfaWQYBSABKAlCB7pIBHICEAESGgoScGFnZV9jb21wb25lbnRfaWRzGAYgAygJEhMKBm5vdGlmeRgHIAEoCEgAiAEBQgkKB19ub3RpZnkiWAoZQ3JlYXRlTWFpbnRlbmFuY2VSZXNwb25zZRI7CgttYWludGVuYW5jZRgBIAEoCzImLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuTWFpbnRlbmFuY2UiLAoVR2V0TWFpbnRlbmFuY2VSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIlUKFkdldE1haW50ZW5hbmNlUmVzcG9uc2USOwoLbWFpbnRlbmFuY2UYASABKAsyJi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLk1haW50ZW5hbmNlIo0BChdMaXN0TWFpbnRlbmFuY2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQESFAoHcGFnZV9pZBgDIAEoCUgCiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0QgoKCF9wYWdlX2lkInMKGExpc3RNYWludGVuYW5jZXNSZXNwb25zZRJDCgxtYWludGVuYW5jZXMYASADKAsyLS5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLk1haW50ZW5hbmNlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIocDChhVcGRhdGVNYWludGVuYW5jZVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESHgoFdGl0bGUYAiABKAlCCrpIB3IFEAEYgAJIAIgBARIUCgdtZXNzYWdlGAMgASgJSAGIAQESXgoEZnJvbRgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkSAKIAQESXAoCdG8YBSABKAlCS7pISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJEgDiAEBEhQKB3BhZ2VfaWQYBiABKAlIBIgBARIaChJwYWdlX2NvbXBvbmVudF9pZHMYByADKAlCCAoGX3RpdGxlQgoKCF9tZXNzYWdlQgcKBV9mcm9tQgUKA190b0IKCghfcGFnZV9pZCJYChlVcGRhdGVNYWludGVuYW5jZVJlc3BvbnNlEjsKC21haW50ZW5hbmNlGAEgASgLMiYub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZSIvChhEZWxldGVNYWludGVuYW5jZVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLAoZRGVsZXRlTWFpbnRlbmFuY2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIMogFChJNYWludGVuYW5jZVNlcnZpY2USfgoRQ3JlYXRlTWFpbnRlbmFuY2USMy5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkNyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBo0Lm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuQ3JlYXRlTWFpbnRlbmFuY2VSZXNwb25zZRJ1Cg5HZXRNYWludGVuYW5jZRIwLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuR2V0TWFpbnRlbmFuY2VSZXF1ZXN0GjEub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5HZXRNYWludGVuYW5jZVJlc3BvbnNlEnsKEExpc3RNYWludGVuYW5jZXMSMi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkxpc3RNYWludGVuYW5jZXNSZXF1ZXN0GjMub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5MaXN0TWFpbnRlbmFuY2VzUmVzcG9uc2USfgoRVXBkYXRlTWFpbnRlbmFuY2USMy5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLlVwZGF0ZU1haW50ZW5hbmNlUmVxdWVzdBo0Lm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuVXBkYXRlTWFpbnRlbmFuY2VSZXNwb25zZRJ+ChFEZWxldGVNYWludGVuYW5jZRIzLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuRGVsZXRlTWFpbnRlbmFuY2VSZXF1ZXN0GjQub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5EZWxldGVNYWludGVuYW5jZVJlc3BvbnNlQltaWWdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9tYWludGVuYW5jZS92MTttYWludGVuYW5jZXYxYgZwcm90bzM", 26 + [file_buf_validate_validate, file_openstatus_maintenance_v1_maintenance], 27 + ); 28 + 29 + /** 30 + * @generated from message openstatus.maintenance.v1.CreateMaintenanceRequest 31 + */ 32 + export type CreateMaintenanceRequest = 33 + & Message<"openstatus.maintenance.v1.CreateMaintenanceRequest"> 34 + & { 35 + /** 36 + * Title of the maintenance (required, 1-256 characters). 37 + * 38 + * @generated from field: string title = 1; 39 + */ 40 + title: string; 41 + 42 + /** 43 + * Message describing the maintenance (required). 44 + * 45 + * @generated from field: string message = 2; 46 + */ 47 + message: string; 48 + 49 + /** 50 + * Start time of the maintenance window (RFC 3339 format, required). 51 + * 52 + * @generated from field: string from = 3; 53 + */ 54 + from: string; 55 + 56 + /** 57 + * End time of the maintenance window (RFC 3339 format, required). 58 + * 59 + * @generated from field: string to = 4; 60 + */ 61 + to: string; 62 + 63 + /** 64 + * Page ID to associate with this maintenance (required). 65 + * 66 + * @generated from field: string page_id = 5; 67 + */ 68 + pageId: string; 69 + 70 + /** 71 + * Page component IDs to associate with this maintenance (optional). 72 + * 73 + * @generated from field: repeated string page_component_ids = 6; 74 + */ 75 + pageComponentIds: string[]; 76 + 77 + /** 78 + * Whether to notify subscribers about this maintenance (optional, defaults to false). 79 + * 80 + * @generated from field: optional bool notify = 7; 81 + */ 82 + notify?: boolean; 83 + }; 84 + 85 + /** 86 + * Describes the message openstatus.maintenance.v1.CreateMaintenanceRequest. 87 + * Use `create(CreateMaintenanceRequestSchema)` to create a new message. 88 + */ 89 + export const CreateMaintenanceRequestSchema: GenMessage< 90 + CreateMaintenanceRequest 91 + > = /*@__PURE__*/ 92 + messageDesc(file_openstatus_maintenance_v1_service, 0); 93 + 94 + /** 95 + * @generated from message openstatus.maintenance.v1.CreateMaintenanceResponse 96 + */ 97 + export type CreateMaintenanceResponse = 98 + & Message<"openstatus.maintenance.v1.CreateMaintenanceResponse"> 99 + & { 100 + /** 101 + * The created maintenance. 102 + * 103 + * @generated from field: openstatus.maintenance.v1.Maintenance maintenance = 1; 104 + */ 105 + maintenance?: Maintenance; 106 + }; 107 + 108 + /** 109 + * Describes the message openstatus.maintenance.v1.CreateMaintenanceResponse. 110 + * Use `create(CreateMaintenanceResponseSchema)` to create a new message. 111 + */ 112 + export const CreateMaintenanceResponseSchema: GenMessage< 113 + CreateMaintenanceResponse 114 + > = /*@__PURE__*/ 115 + messageDesc(file_openstatus_maintenance_v1_service, 1); 116 + 117 + /** 118 + * @generated from message openstatus.maintenance.v1.GetMaintenanceRequest 119 + */ 120 + export type GetMaintenanceRequest = 121 + & Message<"openstatus.maintenance.v1.GetMaintenanceRequest"> 122 + & { 123 + /** 124 + * ID of the maintenance to retrieve (required). 125 + * 126 + * @generated from field: string id = 1; 127 + */ 128 + id: string; 129 + }; 130 + 131 + /** 132 + * Describes the message openstatus.maintenance.v1.GetMaintenanceRequest. 133 + * Use `create(GetMaintenanceRequestSchema)` to create a new message. 134 + */ 135 + export const GetMaintenanceRequestSchema: GenMessage< 136 + GetMaintenanceRequest 137 + > = /*@__PURE__*/ 138 + messageDesc(file_openstatus_maintenance_v1_service, 2); 139 + 140 + /** 141 + * @generated from message openstatus.maintenance.v1.GetMaintenanceResponse 142 + */ 143 + export type GetMaintenanceResponse = 144 + & Message<"openstatus.maintenance.v1.GetMaintenanceResponse"> 145 + & { 146 + /** 147 + * The requested maintenance. 148 + * 149 + * @generated from field: openstatus.maintenance.v1.Maintenance maintenance = 1; 150 + */ 151 + maintenance?: Maintenance; 152 + }; 153 + 154 + /** 155 + * Describes the message openstatus.maintenance.v1.GetMaintenanceResponse. 156 + * Use `create(GetMaintenanceResponseSchema)` to create a new message. 157 + */ 158 + export const GetMaintenanceResponseSchema: GenMessage< 159 + GetMaintenanceResponse 160 + > = /*@__PURE__*/ 161 + messageDesc(file_openstatus_maintenance_v1_service, 3); 162 + 163 + /** 164 + * @generated from message openstatus.maintenance.v1.ListMaintenancesRequest 165 + */ 166 + export type ListMaintenancesRequest = 167 + & Message<"openstatus.maintenance.v1.ListMaintenancesRequest"> 168 + & { 169 + /** 170 + * Maximum number of maintenances to return (1-100, defaults to 50). 171 + * 172 + * @generated from field: optional int32 limit = 1; 173 + */ 174 + limit?: number; 175 + 176 + /** 177 + * Number of maintenances to skip for pagination (defaults to 0). 178 + * 179 + * @generated from field: optional int32 offset = 2; 180 + */ 181 + offset?: number; 182 + 183 + /** 184 + * Filter by page ID (optional). 185 + * 186 + * @generated from field: optional string page_id = 3; 187 + */ 188 + pageId?: string; 189 + }; 190 + 191 + /** 192 + * Describes the message openstatus.maintenance.v1.ListMaintenancesRequest. 193 + * Use `create(ListMaintenancesRequestSchema)` to create a new message. 194 + */ 195 + export const ListMaintenancesRequestSchema: GenMessage< 196 + ListMaintenancesRequest 197 + > = /*@__PURE__*/ 198 + messageDesc(file_openstatus_maintenance_v1_service, 4); 199 + 200 + /** 201 + * @generated from message openstatus.maintenance.v1.ListMaintenancesResponse 202 + */ 203 + export type ListMaintenancesResponse = 204 + & Message<"openstatus.maintenance.v1.ListMaintenancesResponse"> 205 + & { 206 + /** 207 + * List of maintenances. 208 + * 209 + * @generated from field: repeated openstatus.maintenance.v1.MaintenanceSummary maintenances = 1; 210 + */ 211 + maintenances: MaintenanceSummary[]; 212 + 213 + /** 214 + * Total number of maintenances matching the filter. 215 + * 216 + * @generated from field: int32 total_size = 2; 217 + */ 218 + totalSize: number; 219 + }; 220 + 221 + /** 222 + * Describes the message openstatus.maintenance.v1.ListMaintenancesResponse. 223 + * Use `create(ListMaintenancesResponseSchema)` to create a new message. 224 + */ 225 + export const ListMaintenancesResponseSchema: GenMessage< 226 + ListMaintenancesResponse 227 + > = /*@__PURE__*/ 228 + messageDesc(file_openstatus_maintenance_v1_service, 5); 229 + 230 + /** 231 + * @generated from message openstatus.maintenance.v1.UpdateMaintenanceRequest 232 + */ 233 + export type UpdateMaintenanceRequest = 234 + & Message<"openstatus.maintenance.v1.UpdateMaintenanceRequest"> 235 + & { 236 + /** 237 + * ID of the maintenance to update (required). 238 + * 239 + * @generated from field: string id = 1; 240 + */ 241 + id: string; 242 + 243 + /** 244 + * New title for the maintenance (optional). 245 + * 246 + * @generated from field: optional string title = 2; 247 + */ 248 + title?: string; 249 + 250 + /** 251 + * New message for the maintenance (optional). 252 + * 253 + * @generated from field: optional string message = 3; 254 + */ 255 + message?: string; 256 + 257 + /** 258 + * New start time (RFC 3339 format, optional). 259 + * 260 + * @generated from field: optional string from = 4; 261 + */ 262 + from?: string; 263 + 264 + /** 265 + * New end time (RFC 3339 format, optional). 266 + * 267 + * @generated from field: optional string to = 5; 268 + */ 269 + to?: string; 270 + 271 + /** 272 + * New page ID (optional). 273 + * 274 + * @generated from field: optional string page_id = 6; 275 + */ 276 + pageId?: string; 277 + 278 + /** 279 + * New list of page component IDs (optional, replaces existing list). 280 + * 281 + * @generated from field: repeated string page_component_ids = 7; 282 + */ 283 + pageComponentIds: string[]; 284 + }; 285 + 286 + /** 287 + * Describes the message openstatus.maintenance.v1.UpdateMaintenanceRequest. 288 + * Use `create(UpdateMaintenanceRequestSchema)` to create a new message. 289 + */ 290 + export const UpdateMaintenanceRequestSchema: GenMessage< 291 + UpdateMaintenanceRequest 292 + > = /*@__PURE__*/ 293 + messageDesc(file_openstatus_maintenance_v1_service, 6); 294 + 295 + /** 296 + * @generated from message openstatus.maintenance.v1.UpdateMaintenanceResponse 297 + */ 298 + export type UpdateMaintenanceResponse = 299 + & Message<"openstatus.maintenance.v1.UpdateMaintenanceResponse"> 300 + & { 301 + /** 302 + * The updated maintenance. 303 + * 304 + * @generated from field: openstatus.maintenance.v1.Maintenance maintenance = 1; 305 + */ 306 + maintenance?: Maintenance; 307 + }; 308 + 309 + /** 310 + * Describes the message openstatus.maintenance.v1.UpdateMaintenanceResponse. 311 + * Use `create(UpdateMaintenanceResponseSchema)` to create a new message. 312 + */ 313 + export const UpdateMaintenanceResponseSchema: GenMessage< 314 + UpdateMaintenanceResponse 315 + > = /*@__PURE__*/ 316 + messageDesc(file_openstatus_maintenance_v1_service, 7); 317 + 318 + /** 319 + * @generated from message openstatus.maintenance.v1.DeleteMaintenanceRequest 320 + */ 321 + export type DeleteMaintenanceRequest = 322 + & Message<"openstatus.maintenance.v1.DeleteMaintenanceRequest"> 323 + & { 324 + /** 325 + * ID of the maintenance to delete (required). 326 + * 327 + * @generated from field: string id = 1; 328 + */ 329 + id: string; 330 + }; 331 + 332 + /** 333 + * Describes the message openstatus.maintenance.v1.DeleteMaintenanceRequest. 334 + * Use `create(DeleteMaintenanceRequestSchema)` to create a new message. 335 + */ 336 + export const DeleteMaintenanceRequestSchema: GenMessage< 337 + DeleteMaintenanceRequest 338 + > = /*@__PURE__*/ 339 + messageDesc(file_openstatus_maintenance_v1_service, 8); 340 + 341 + /** 342 + * @generated from message openstatus.maintenance.v1.DeleteMaintenanceResponse 343 + */ 344 + export type DeleteMaintenanceResponse = 345 + & Message<"openstatus.maintenance.v1.DeleteMaintenanceResponse"> 346 + & { 347 + /** 348 + * Whether the deletion was successful. 349 + * 350 + * @generated from field: bool success = 1; 351 + */ 352 + success: boolean; 353 + }; 354 + 355 + /** 356 + * Describes the message openstatus.maintenance.v1.DeleteMaintenanceResponse. 357 + * Use `create(DeleteMaintenanceResponseSchema)` to create a new message. 358 + */ 359 + export const DeleteMaintenanceResponseSchema: GenMessage< 360 + DeleteMaintenanceResponse 361 + > = /*@__PURE__*/ 362 + messageDesc(file_openstatus_maintenance_v1_service, 9); 363 + 364 + /** 365 + * MaintenanceService provides CRUD operations for maintenance windows. 366 + * 367 + * @generated from service openstatus.maintenance.v1.MaintenanceService 368 + */ 369 + export const MaintenanceService: GenService<{ 370 + /** 371 + * CreateMaintenance creates a new maintenance window. 372 + * 373 + * @generated from rpc openstatus.maintenance.v1.MaintenanceService.CreateMaintenance 374 + */ 375 + createMaintenance: { 376 + methodKind: "unary"; 377 + input: typeof CreateMaintenanceRequestSchema; 378 + output: typeof CreateMaintenanceResponseSchema; 379 + }; 380 + /** 381 + * GetMaintenance retrieves a specific maintenance window by ID. 382 + * 383 + * @generated from rpc openstatus.maintenance.v1.MaintenanceService.GetMaintenance 384 + */ 385 + getMaintenance: { 386 + methodKind: "unary"; 387 + input: typeof GetMaintenanceRequestSchema; 388 + output: typeof GetMaintenanceResponseSchema; 389 + }; 390 + /** 391 + * ListMaintenances returns all maintenance windows for the workspace. 392 + * 393 + * @generated from rpc openstatus.maintenance.v1.MaintenanceService.ListMaintenances 394 + */ 395 + listMaintenances: { 396 + methodKind: "unary"; 397 + input: typeof ListMaintenancesRequestSchema; 398 + output: typeof ListMaintenancesResponseSchema; 399 + }; 400 + /** 401 + * UpdateMaintenance updates a maintenance window. 402 + * 403 + * @generated from rpc openstatus.maintenance.v1.MaintenanceService.UpdateMaintenance 404 + */ 405 + updateMaintenance: { 406 + methodKind: "unary"; 407 + input: typeof UpdateMaintenanceRequestSchema; 408 + output: typeof UpdateMaintenanceResponseSchema; 409 + }; 410 + /** 411 + * DeleteMaintenance removes a maintenance window. 412 + * 413 + * @generated from rpc openstatus.maintenance.v1.MaintenanceService.DeleteMaintenance 414 + */ 415 + deleteMaintenance: { 416 + methodKind: "unary"; 417 + input: typeof DeleteMaintenanceRequestSchema; 418 + output: typeof DeleteMaintenanceResponseSchema; 419 + }; 420 + }> = /*@__PURE__*/ 421 + serviceDesc(file_openstatus_maintenance_v1_service, 0);
+8 -15
src/gen/openstatus/monitor/v1/service_pb.ts
··· 30 30 */ 31 31 export const file_openstatus_monitor_v1_service: GenFile = /*@__PURE__*/ 32 32 fileDesc( 33 - "CiNvcGVuc3RhdHVzL21vbml0b3IvdjEvc2VydmljZS5wcm90bxIVb3BlbnN0YXR1cy5tb25pdG9yLnYxIlcKGENyZWF0ZUhUVFBNb25pdG9yUmVxdWVzdBI7Cgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yQga6SAPIAQEiUAoZQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRIzCgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yIlUKF0NyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0EjoKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvckIGukgDyAEBIk4KGENyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3IiVQoXQ3JlYXRlRE5TTW9uaXRvclJlcXVlc3QSOgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5ETlNNb25pdG9yQga6SAPIAQEiTgoYQ3JlYXRlRE5TTW9uaXRvclJlc3BvbnNlEjIKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvciJ1ChhVcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESOAoHbW9uaXRvchgCIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIlAKGVVwZGF0ZUhUVFBNb25pdG9yUmVzcG9uc2USMwoHbW9uaXRvchgBIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvciJzChdVcGRhdGVUQ1BNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARI3Cgdtb25pdG9yGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIAIgBAUIKCghfbW9uaXRvciJOChhVcGRhdGVUQ1BNb25pdG9yUmVzcG9uc2USMgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5UQ1BNb25pdG9yInMKF1VwZGF0ZUROU01vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjcKB21vbml0b3IYAiABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIk4KGFVwZGF0ZUROU01vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLkROU01vbml0b3IiLAoVVHJpZ2dlck1vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIikKFlRyaWdnZXJNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrChREZWxldGVNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIoChVEZWxldGVNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJuChNMaXN0TW9uaXRvcnNSZXF1ZXN0EiEKCXBhZ2Vfc2l6ZRgBIAEoBUIJukgGGgQYZCgBSACIAQESFwoKcGFnZV90b2tlbhgCIAEoCUgBiAEBQgwKCl9wYWdlX3NpemVCDQoLX3BhZ2VfdG9rZW4i8AEKFExpc3RNb25pdG9yc1Jlc3BvbnNlEjkKDWh0dHBfbW9uaXRvcnMYASADKAsyIi5vcGVuc3RhdHVzLm1vbml0b3IudjEuSFRUUE1vbml0b3ISNwoMdGNwX21vbml0b3JzGAIgAygLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3ISNwoMZG5zX21vbml0b3JzGAMgAygLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLkROU01vbml0b3ISFwoPbmV4dF9wYWdlX3Rva2VuGAQgASgJEhIKCnRvdGFsX3NpemUYBSABKAUiLgoXR2V0TW9uaXRvclN0YXR1c1JlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEicwoMUmVnaW9uU3RhdHVzEi0KBnJlZ2lvbhgBIAEoDjIdLm9wZW5zdGF0dXMubW9uaXRvci52MS5SZWdpb24SNAoGc3RhdHVzGAIgASgOMiQub3BlbnN0YXR1cy5tb25pdG9yLnYxLk1vbml0b3JTdGF0dXMiXAoYR2V0TW9uaXRvclN0YXR1c1Jlc3BvbnNlEgoKAmlkGAEgASgJEjQKB3JlZ2lvbnMYAiADKAsyIy5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uU3RhdHVzIrEBCg1Nb25pdG9yQ29uZmlnEjIKBGh0dHAYASABKAsyIi5vcGVuc3RhdHVzLm1vbml0b3IudjEuSFRUUE1vbml0b3JIABIwCgN0Y3AYAiABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvckgAEjAKA2RucxgDIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5ETlNNb25pdG9ySABCCAoGY29uZmlnIp8BChhHZXRNb25pdG9yU3VtbWFyeVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESNAoKdGltZV9yYW5nZRgCIAEoDjIgLm9wZW5zdGF0dXMubW9uaXRvci52MS5UaW1lUmFuZ2USOAoHcmVnaW9ucxgDIAMoDjIdLm9wZW5zdGF0dXMubW9uaXRvci52MS5SZWdpb25CCLpIBZIBAhAcIqwCChlHZXRNb25pdG9yU3VtbWFyeVJlc3BvbnNlEgoKAmlkGAEgASgJEhQKDGxhc3RfcGluZ19hdBgCIAEoCRIYChB0b3RhbF9zdWNjZXNzZnVsGAMgASgDEhYKDnRvdGFsX2RlZ3JhZGVkGAQgASgDEhQKDHRvdGFsX2ZhaWxlZBgFIAEoAxILCgNwNTAYBiABKAMSCwoDcDc1GAcgASgDEgsKA3A5MBgIIAEoAxILCgNwOTUYCSABKAMSCwoDcDk5GAogASgDEjQKCnRpbWVfcmFuZ2UYCyABKA4yIC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVGltZVJhbmdlEi4KB3JlZ2lvbnMYDCADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uKmEKCVRpbWVSYW5nZRIaChZUSU1FX1JBTkdFX1VOU1BFQ0lGSUVEEAASEQoNVElNRV9SQU5HRV8xRBABEhEKDVRJTUVfUkFOR0VfN0QQAhISCg5USU1FX1JBTkdFXzE0RBADMoUKCg5Nb25pdG9yU2VydmljZRJ2ChFDcmVhdGVIVFRQTW9uaXRvchIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVIVFRQTW9uaXRvclJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRJzChBDcmVhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBDcmVhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXNwb25zZRJ2ChFVcGRhdGVIVFRQTW9uaXRvchIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVXBkYXRlSFRUUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXNwb25zZRJtCg5UcmlnZ2VyTW9uaXRvchIsLm9wZW5zdGF0dXMubW9uaXRvci52MS5UcmlnZ2VyTW9uaXRvclJlcXVlc3QaLS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVHJpZ2dlck1vbml0b3JSZXNwb25zZRJqCg1EZWxldGVNb25pdG9yEisub3BlbnN0YXR1cy5tb25pdG9yLnYxLkRlbGV0ZU1vbml0b3JSZXF1ZXN0Giwub3BlbnN0YXR1cy5tb25pdG9yLnYxLkRlbGV0ZU1vbml0b3JSZXNwb25zZRJnCgxMaXN0TW9uaXRvcnMSKi5vcGVuc3RhdHVzLm1vbml0b3IudjEuTGlzdE1vbml0b3JzUmVxdWVzdBorLm9wZW5zdGF0dXMubW9uaXRvci52MS5MaXN0TW9uaXRvcnNSZXNwb25zZRJzChBHZXRNb25pdG9yU3RhdHVzEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXNwb25zZRJ2ChFHZXRNb25pdG9yU3VtbWFyeRIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yU3VtbWFyeVJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZUJTWlFnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbW9uaXRvci92MTttb25pdG9ydjFiBnByb3RvMw", 33 + "CiNvcGVuc3RhdHVzL21vbml0b3IvdjEvc2VydmljZS5wcm90bxIVb3BlbnN0YXR1cy5tb25pdG9yLnYxIlcKGENyZWF0ZUhUVFBNb25pdG9yUmVxdWVzdBI7Cgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yQga6SAPIAQEiUAoZQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRIzCgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yIlUKF0NyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0EjoKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvckIGukgDyAEBIk4KGENyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3IiVQoXQ3JlYXRlRE5TTW9uaXRvclJlcXVlc3QSOgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5ETlNNb25pdG9yQga6SAPIAQEiTgoYQ3JlYXRlRE5TTW9uaXRvclJlc3BvbnNlEjIKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvciJ1ChhVcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESOAoHbW9uaXRvchgCIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIlAKGVVwZGF0ZUhUVFBNb25pdG9yUmVzcG9uc2USMwoHbW9uaXRvchgBIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvciJzChdVcGRhdGVUQ1BNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARI3Cgdtb25pdG9yGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIAIgBAUIKCghfbW9uaXRvciJOChhVcGRhdGVUQ1BNb25pdG9yUmVzcG9uc2USMgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5UQ1BNb25pdG9yInMKF1VwZGF0ZUROU01vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjcKB21vbml0b3IYAiABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIk4KGFVwZGF0ZUROU01vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLkROU01vbml0b3IiLAoVVHJpZ2dlck1vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIikKFlRyaWdnZXJNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrChREZWxldGVNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIoChVEZWxldGVNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnChNMaXN0TW9uaXRvcnNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCLXAQoUTGlzdE1vbml0b3JzUmVzcG9uc2USOQoNaHR0cF9tb25pdG9ycxgBIAMoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvchI3Cgx0Y3BfbW9uaXRvcnMYAiADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvchI3CgxkbnNfbW9uaXRvcnMYAyADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvchISCgp0b3RhbF9zaXplGAQgASgFIi4KF0dldE1vbml0b3JTdGF0dXNSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABInMKDFJlZ2lvblN0YXR1cxItCgZyZWdpb24YASABKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uEjQKBnN0YXR1cxgCIAEoDjIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yU3RhdHVzIlwKGEdldE1vbml0b3JTdGF0dXNSZXNwb25zZRIKCgJpZBgBIAEoCRI0CgdyZWdpb25zGAIgAygLMiMub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvblN0YXR1cyKxAQoNTW9uaXRvckNvbmZpZxIyCgRodHRwGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9ySAASMAoDdGNwGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIABIwCgNkbnMYAyABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAQggKBmNvbmZpZyKfAQoYR2V0TW9uaXRvclN1bW1hcnlSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjQKCnRpbWVfcmFuZ2UYAiABKA4yIC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVGltZVJhbmdlEjgKB3JlZ2lvbnMYAyADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQgi6SAWSAQIQHCKsAgoZR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxsYXN0X3BpbmdfYXQYAiABKAkSGAoQdG90YWxfc3VjY2Vzc2Z1bBgDIAEoAxIWCg50b3RhbF9kZWdyYWRlZBgEIAEoAxIUCgx0b3RhbF9mYWlsZWQYBSABKAMSCwoDcDUwGAYgASgDEgsKA3A3NRgHIAEoAxILCgNwOTAYCCABKAMSCwoDcDk1GAkgASgDEgsKA3A5ORgKIAEoAxI0Cgp0aW1lX3JhbmdlGAsgASgOMiAub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRpbWVSYW5nZRIuCgdyZWdpb25zGAwgAygOMh0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvbiphCglUaW1lUmFuZ2USGgoWVElNRV9SQU5HRV9VTlNQRUNJRklFRBAAEhEKDVRJTUVfUkFOR0VfMUQQARIRCg1USU1FX1JBTkdFXzdEEAISEgoOVElNRV9SQU5HRV8xNEQQAzKFCgoOTW9uaXRvclNlcnZpY2USdgoRQ3JlYXRlSFRUUE1vbml0b3ISLy5vcGVuc3RhdHVzLm1vbml0b3IudjEuQ3JlYXRlSFRUUE1vbml0b3JSZXF1ZXN0GjAub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUhUVFBNb25pdG9yUmVzcG9uc2UScwoQQ3JlYXRlVENQTW9uaXRvchIuLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVUQ1BNb25pdG9yUmVxdWVzdBovLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVUQ1BNb25pdG9yUmVzcG9uc2UScwoQQ3JlYXRlRE5TTW9uaXRvchIuLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVETlNNb25pdG9yUmVxdWVzdBovLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVETlNNb25pdG9yUmVzcG9uc2USdgoRVXBkYXRlSFRUUE1vbml0b3ISLy5vcGVuc3RhdHVzLm1vbml0b3IudjEuVXBkYXRlSFRUUE1vbml0b3JSZXF1ZXN0GjAub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUhUVFBNb25pdG9yUmVzcG9uc2UScwoQVXBkYXRlVENQTW9uaXRvchIuLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVUQ1BNb25pdG9yUmVxdWVzdBovLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVUQ1BNb25pdG9yUmVzcG9uc2UScwoQVXBkYXRlRE5TTW9uaXRvchIuLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVETlNNb25pdG9yUmVxdWVzdBovLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVETlNNb25pdG9yUmVzcG9uc2USbQoOVHJpZ2dlck1vbml0b3ISLC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVHJpZ2dlck1vbml0b3JSZXF1ZXN0Gi0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRyaWdnZXJNb25pdG9yUmVzcG9uc2USagoNRGVsZXRlTW9uaXRvchIrLm9wZW5zdGF0dXMubW9uaXRvci52MS5EZWxldGVNb25pdG9yUmVxdWVzdBosLm9wZW5zdGF0dXMubW9uaXRvci52MS5EZWxldGVNb25pdG9yUmVzcG9uc2USZwoMTGlzdE1vbml0b3JzEioub3BlbnN0YXR1cy5tb25pdG9yLnYxLkxpc3RNb25pdG9yc1JlcXVlc3QaKy5vcGVuc3RhdHVzLm1vbml0b3IudjEuTGlzdE1vbml0b3JzUmVzcG9uc2UScwoQR2V0TW9uaXRvclN0YXR1cxIuLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yU3RhdHVzUmVxdWVzdBovLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yU3RhdHVzUmVzcG9uc2USdgoRR2V0TW9uaXRvclN1bW1hcnkSLy5vcGVuc3RhdHVzLm1vbml0b3IudjEuR2V0TW9uaXRvclN1bW1hcnlSZXF1ZXN0GjAub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdW1tYXJ5UmVzcG9uc2VCU1pRZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL21vbml0b3IvdjE7bW9uaXRvcnYxYgZwcm90bzM", 34 34 [ 35 35 file_buf_validate_validate, 36 36 file_openstatus_monitor_v1_dns_monitor, ··· 472 472 /** 473 473 * Maximum number of monitors to return (1-100, defaults to 50). 474 474 * 475 - * @generated from field: optional int32 page_size = 1; 475 + * @generated from field: optional int32 limit = 1; 476 476 */ 477 - pageSize?: number; 477 + limit?: number; 478 478 479 479 /** 480 - * Token for pagination. 480 + * Number of monitors to skip for pagination (defaults to 0). 481 481 * 482 - * @generated from field: optional string page_token = 2; 482 + * @generated from field: optional int32 offset = 2; 483 483 */ 484 - pageToken?: string; 484 + offset?: number; 485 485 }; 486 486 487 487 /** ··· 523 523 dnsMonitors: DNSMonitor[]; 524 524 525 525 /** 526 - * Token for the next page of results. 526 + * Total number of monitors across all types. 527 527 * 528 - * @generated from field: string next_page_token = 4; 529 - */ 530 - nextPageToken: string; 531 - 532 - /** 533 - * Total number of monitors across all pages. 534 - * 535 - * @generated from field: int32 total_size = 5; 528 + * @generated from field: int32 total_size = 4; 536 529 */ 537 530 totalSize: number; 538 531 };
+6 -4
src/gen/openstatus/status_page/v1/service_pb.ts
··· 13 13 serviceDesc, 14 14 } from "@bufbuild/protobuf/codegenv2"; 15 15 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 16 + import type { MaintenanceSummary } from "../../maintenance/v1/maintenance_pb.ts"; 17 + import { file_openstatus_maintenance_v1_maintenance } from "../../maintenance/v1/maintenance_pb.ts"; 16 18 import type { PageComponent, PageComponentGroup } from "./page_component_pb.ts"; 17 19 import { file_openstatus_status_page_v1_page_component } from "./page_component_pb.ts"; 18 20 import type { PageSubscriber } from "./page_subscriber_pb.ts"; 19 21 import { file_openstatus_status_page_v1_page_subscriber } from "./page_subscriber_pb.ts"; 20 22 import type { 21 - Maintenance, 22 23 OverallStatus, 23 24 StatusPage, 24 25 StatusPageSummary, ··· 33 34 */ 34 35 export const file_openstatus_status_page_v1_service: GenFile = /*@__PURE__*/ 35 36 fileDesc( 36 - "CidvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEi9AEKF0NyZWF0ZVN0YXR1c1BhZ2VSZXF1ZXN0EhkKBXRpdGxlGAEgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAIgASgJQgi6SAVyAxiACEgAiAEBEjQKBHNsdWcYAyABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokEhkKDGhvbWVwYWdlX3VybBgEIAEoCUgBiAEBEhgKC2NvbnRhY3RfdXJsGAUgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGENyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIrChRHZXRTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJTChVHZXRTdGF0dXNQYWdlUmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2UiagoWTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQicQoXTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USQgoMc3RhdHVzX3BhZ2VzGAEgAygLMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIqYCChdVcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIeCgV0aXRsZRgCIAEoCUIKukgHcgUQARiAAkgAiAEBEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgBiAEBEjkKBHNsdWcYBCABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokSAKIAQESGQoMaG9tZXBhZ2VfdXJsGAUgASgJSAOIAQESGAoLY29udGFjdF91cmwYBiABKAlIBIgBAUIICgZfdGl0bGVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9zbHVnQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGFVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIuChdEZWxldGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIrChhEZWxldGVTdGF0dXNQYWdlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLvAQoaQWRkTW9uaXRvckNvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIbCgptb25pdG9yX2lkGAIgASgJQge6SARyAhABEhsKBG5hbWUYAyABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YBCABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBSABKAVIAogBARIVCghncm91cF9pZBgGIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfb3JkZXJCCwoJX2dyb3VwX2lkIloKG0FkZE1vbml0b3JDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQixQEKGUFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgAiAEBEhIKBW9yZGVyGAQgASgFSAGIAQESFQoIZ3JvdXBfaWQYBSABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX29yZGVyQgsKCV9ncm91cF9pZCJZChpBZGRTdGF0aWNDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQiLQoWUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIqChdSZW1vdmVDb21wb25lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIvMBChZVcGRhdGVDb21wb25lbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhsKBG5hbWUYAiABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YAyABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBCABKAVIAogBARIVCghncm91cF9pZBgFIAEoCUgDiAEBEhgKC2dyb3VwX29yZGVyGAYgASgFSASIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQggKBl9vcmRlckILCglfZ3JvdXBfaWRCDgoMX2dyb3VwX29yZGVyIlYKF1VwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCJRChtDcmVhdGVDb21wb25lbnRHcm91cFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACIlwKHENyZWF0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USPAoFZ3JvdXAYASABKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cCIyChtEZWxldGVDb21wb25lbnRHcm91cFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLwocRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIloKG1VwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIdCgRuYW1lGAIgASgJQgq6SAdyBRABGIACSACIAQFCBwoFX25hbWUiXAocVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRI8CgVncm91cBgBIAEoCzItLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudEdyb3VwIkoKFlN1YnNjcmliZVRvUGFnZVJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgASJYChdTdWJzY3JpYmVUb1BhZ2VSZXNwb25zZRI9CgpzdWJzY3JpYmVyGAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlciJjChpVbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEg8KBWVtYWlsGAIgASgJSAASDAoCaWQYAyABKAlIAEIMCgppZGVudGlmaWVyIi4KG1Vuc3Vic2NyaWJlRnJvbVBhZ2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABChZMaXN0U3Vic2NyaWJlcnNSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESHQoFbGltaXQYAiABKAVCCbpIBhoEGGQoAUgAiAEBEhwKBm9mZnNldBgDIAEoBUIHukgEGgIoAEgBiAEBEiEKFGluY2x1ZGVfdW5zdWJzY3JpYmVkGAQgASgISAKIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXRCFwoVX2luY2x1ZGVfdW5zdWJzY3JpYmVkIm0KF0xpc3RTdWJzY3JpYmVyc1Jlc3BvbnNlEj4KC3N1YnNjcmliZXJzGAEgAygLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlchISCgp0b3RhbF9zaXplGAIgASgFIkkKG0dldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBIMCgJpZBgBIAEoCUgAEg4KBHNsdWcYAiABKAlIAEIMCgppZGVudGlmaWVyItgCChxHZXRTdGF0dXNQYWdlQ29udGVudFJlc3BvbnNlEjoKC3N0YXR1c19wYWdlGAEgASgLMiUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlEjwKCmNvbXBvbmVudHMYAiADKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQSPQoGZ3JvdXBzGAMgAygLMi0ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50R3JvdXASQQoOc3RhdHVzX3JlcG9ydHMYBCADKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0EjwKDG1haW50ZW5hbmNlcxgFIAMoCzImLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTWFpbnRlbmFuY2UiRQoXR2V0T3ZlcmFsbFN0YXR1c1JlcXVlc3QSDAoCaWQYASABKAlIABIOCgRzbHVnGAIgASgJSABCDAoKaWRlbnRpZmllciJhCg9Db21wb25lbnRTdGF0dXMSFAoMY29tcG9uZW50X2lkGAEgASgJEjgKBnN0YXR1cxgCIAEoDjIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuT3ZlcmFsbFN0YXR1cyKkAQoYR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlEkAKDm92ZXJhbGxfc3RhdHVzGAEgASgOMigub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5PdmVyYWxsU3RhdHVzEkYKEmNvbXBvbmVudF9zdGF0dXNlcxgCIAMoCzIqLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ29tcG9uZW50U3RhdHVzMpcRChFTdGF0dXNQYWdlU2VydmljZRJ7ChBDcmVhdGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlU3RhdHVzUGFnZVJlc3BvbnNlEnIKDUdldFN0YXR1c1BhZ2USLy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VSZXF1ZXN0GjAub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlUmVzcG9uc2USeAoPTGlzdFN0YXR1c1BhZ2VzEjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3RhdHVzUGFnZXNSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3RhdHVzUGFnZXNSZXNwb25zZRJ7ChBVcGRhdGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlU3RhdHVzUGFnZVJlc3BvbnNlEnsKEERlbGV0ZVN0YXR1c1BhZ2USMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkRlbGV0ZVN0YXR1c1BhZ2VSZXF1ZXN0GjMub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVTdGF0dXNQYWdlUmVzcG9uc2UShAEKE0FkZE1vbml0b3JDb21wb25lbnQSNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZE1vbml0b3JDb21wb25lbnRSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5BZGRNb25pdG9yQ29tcG9uZW50UmVzcG9uc2USgQEKEkFkZFN0YXRpY0NvbXBvbmVudBI0Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkU3RhdGljQ29tcG9uZW50UmVxdWVzdBo1Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkU3RhdGljQ29tcG9uZW50UmVzcG9uc2USeAoPUmVtb3ZlQ29tcG9uZW50EjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5SZW1vdmVDb21wb25lbnRSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5SZW1vdmVDb21wb25lbnRSZXNwb25zZRJ4Cg9VcGRhdGVDb21wb25lbnQSMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudFJlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEocBChRDcmVhdGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVDb21wb25lbnRHcm91cFJlc3BvbnNlEocBChREZWxldGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVDb21wb25lbnRHcm91cFJlc3BvbnNlEocBChRVcGRhdGVDb21wb25lbnRHcm91cBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRHcm91cFJlc3BvbnNlEngKD1N1YnNjcmliZVRvUGFnZRIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3Vic2NyaWJlVG9QYWdlUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3Vic2NyaWJlVG9QYWdlUmVzcG9uc2UShAEKE1Vuc3Vic2NyaWJlRnJvbVBhZ2USNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVuc3Vic2NyaWJlRnJvbVBhZ2VSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VbnN1YnNjcmliZUZyb21QYWdlUmVzcG9uc2USeAoPTGlzdFN1YnNjcmliZXJzEjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3Vic2NyaWJlcnNSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5MaXN0U3Vic2NyaWJlcnNSZXNwb25zZRKHAQoUR2V0U3RhdHVzUGFnZUNvbnRlbnQSNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0U3RhdHVzUGFnZUNvbnRlbnRSZXNwb25zZRJ7ChBHZXRPdmVyYWxsU3RhdHVzEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRPdmVyYWxsU3RhdHVzUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 37 + "CidvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEi9AEKF0NyZWF0ZVN0YXR1c1BhZ2VSZXF1ZXN0EhkKBXRpdGxlGAEgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAIgASgJQgi6SAVyAxiACEgAiAEBEjQKBHNsdWcYAyABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokEhkKDGhvbWVwYWdlX3VybBgEIAEoCUgBiAEBEhgKC2NvbnRhY3RfdXJsGAUgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGENyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIrChRHZXRTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJTChVHZXRTdGF0dXNQYWdlUmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2UiagoWTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQicQoXTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USQgoMc3RhdHVzX3BhZ2VzGAEgAygLMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIqYCChdVcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIeCgV0aXRsZRgCIAEoCUIKukgHcgUQARiAAkgAiAEBEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgBiAEBEjkKBHNsdWcYBCABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokSAKIAQESGQoMaG9tZXBhZ2VfdXJsGAUgASgJSAOIAQESGAoLY29udGFjdF91cmwYBiABKAlIBIgBAUIICgZfdGl0bGVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9zbHVnQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGFVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIuChdEZWxldGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIrChhEZWxldGVTdGF0dXNQYWdlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLvAQoaQWRkTW9uaXRvckNvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIbCgptb25pdG9yX2lkGAIgASgJQge6SARyAhABEhsKBG5hbWUYAyABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YBCABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBSABKAVIAogBARIVCghncm91cF9pZBgGIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfb3JkZXJCCwoJX2dyb3VwX2lkIloKG0FkZE1vbml0b3JDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQixQEKGUFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgAiAEBEhIKBW9yZGVyGAQgASgFSAGIAQESFQoIZ3JvdXBfaWQYBSABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX29yZGVyQgsKCV9ncm91cF9pZCJZChpBZGRTdGF0aWNDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQiLQoWUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIqChdSZW1vdmVDb21wb25lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIvMBChZVcGRhdGVDb21wb25lbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhsKBG5hbWUYAiABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YAyABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBCABKAVIAogBARIVCghncm91cF9pZBgFIAEoCUgDiAEBEhgKC2dyb3VwX29yZGVyGAYgASgFSASIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQggKBl9vcmRlckILCglfZ3JvdXBfaWRCDgoMX2dyb3VwX29yZGVyIlYKF1VwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCJRChtDcmVhdGVDb21wb25lbnRHcm91cFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACIlwKHENyZWF0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USPAoFZ3JvdXAYASABKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cCIyChtEZWxldGVDb21wb25lbnRHcm91cFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLwocRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIloKG1VwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIdCgRuYW1lGAIgASgJQgq6SAdyBRABGIACSACIAQFCBwoFX25hbWUiXAocVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRI8CgVncm91cBgBIAEoCzItLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudEdyb3VwIkoKFlN1YnNjcmliZVRvUGFnZVJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgASJYChdTdWJzY3JpYmVUb1BhZ2VSZXNwb25zZRI9CgpzdWJzY3JpYmVyGAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlciJjChpVbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEg8KBWVtYWlsGAIgASgJSAASDAoCaWQYAyABKAlIAEIMCgppZGVudGlmaWVyIi4KG1Vuc3Vic2NyaWJlRnJvbVBhZ2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABChZMaXN0U3Vic2NyaWJlcnNSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESHQoFbGltaXQYAiABKAVCCbpIBhoEGGQoAUgAiAEBEhwKBm9mZnNldBgDIAEoBUIHukgEGgIoAEgBiAEBEiEKFGluY2x1ZGVfdW5zdWJzY3JpYmVkGAQgASgISAKIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXRCFwoVX2luY2x1ZGVfdW5zdWJzY3JpYmVkIm0KF0xpc3RTdWJzY3JpYmVyc1Jlc3BvbnNlEj4KC3N1YnNjcmliZXJzGAEgAygLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlchISCgp0b3RhbF9zaXplGAIgASgFIkkKG0dldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBIMCgJpZBgBIAEoCUgAEg4KBHNsdWcYAiABKAlIAEIMCgppZGVudGlmaWVyIt8CChxHZXRTdGF0dXNQYWdlQ29udGVudFJlc3BvbnNlEjoKC3N0YXR1c19wYWdlGAEgASgLMiUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlEjwKCmNvbXBvbmVudHMYAiADKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQSPQoGZ3JvdXBzGAMgAygLMi0ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50R3JvdXASQQoOc3RhdHVzX3JlcG9ydHMYBCADKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0EkMKDG1haW50ZW5hbmNlcxgFIAMoCzItLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuTWFpbnRlbmFuY2VTdW1tYXJ5IkUKF0dldE92ZXJhbGxTdGF0dXNSZXF1ZXN0EgwKAmlkGAEgASgJSAASDgoEc2x1ZxgCIAEoCUgAQgwKCmlkZW50aWZpZXIiYQoPQ29tcG9uZW50U3RhdHVzEhQKDGNvbXBvbmVudF9pZBgBIAEoCRI4CgZzdGF0dXMYAiABKA4yKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLk92ZXJhbGxTdGF0dXMipAEKGEdldE92ZXJhbGxTdGF0dXNSZXNwb25zZRJACg5vdmVyYWxsX3N0YXR1cxgBIAEoDjIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuT3ZlcmFsbFN0YXR1cxJGChJjb21wb25lbnRfc3RhdHVzZXMYAiADKAsyKi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNvbXBvbmVudFN0YXR1czKXEQoRU3RhdHVzUGFnZVNlcnZpY2USewoQQ3JlYXRlU3RhdHVzUGFnZRIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlU3RhdHVzUGFnZVJlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRJyCg1HZXRTdGF0dXNQYWdlEi8ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlUmVxdWVzdBowLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0U3RhdHVzUGFnZVJlc3BvbnNlEngKD0xpc3RTdGF0dXNQYWdlcxIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USewoQVXBkYXRlU3RhdHVzUGFnZRIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlU3RhdHVzUGFnZVJlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRJ7ChBEZWxldGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlU3RhdHVzUGFnZVJlc3BvbnNlEoQBChNBZGRNb25pdG9yQ29tcG9uZW50EjUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5BZGRNb25pdG9yQ29tcG9uZW50UmVxdWVzdBo2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkTW9uaXRvckNvbXBvbmVudFJlc3BvbnNlEoEBChJBZGRTdGF0aWNDb21wb25lbnQSNC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QaNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlc3BvbnNlEngKD1JlbW92ZUNvbXBvbmVudBIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVzcG9uc2USeAoPVXBkYXRlQ29tcG9uZW50EjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXNwb25zZRKHAQoUQ3JlYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNyZWF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoURGVsZXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkRlbGV0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoUVXBkYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRJ4Cg9TdWJzY3JpYmVUb1BhZ2USMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN1YnNjcmliZVRvUGFnZVJlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN1YnNjcmliZVRvUGFnZVJlc3BvbnNlEoQBChNVbnN1YnNjcmliZUZyb21QYWdlEjUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBo2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVW5zdWJzY3JpYmVGcm9tUGFnZVJlc3BvbnNlEngKD0xpc3RTdWJzY3JpYmVycxIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN1YnNjcmliZXJzUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN1YnNjcmliZXJzUmVzcG9uc2UShwEKFEdldFN0YXR1c1BhZ2VDb250ZW50EjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlQ29udGVudFJlcXVlc3QaNy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VDb250ZW50UmVzcG9uc2USewoQR2V0T3ZlcmFsbFN0YXR1cxIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0T3ZlcmFsbFN0YXR1c1JlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldE92ZXJhbGxTdGF0dXNSZXNwb25zZUJaWlhnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3BhZ2UvdjE7c3RhdHVzcGFnZXYxYgZwcm90bzM", 37 38 [ 38 39 file_buf_validate_validate, 40 + file_openstatus_maintenance_v1_maintenance, 39 41 file_openstatus_status_page_v1_page_component, 40 42 file_openstatus_status_page_v1_page_subscriber, 41 43 file_openstatus_status_page_v1_status_page, ··· 1056 1058 /** 1057 1059 * Scheduled maintenances. 1058 1060 * 1059 - * @generated from field: repeated openstatus.status_page.v1.Maintenance maintenances = 5; 1061 + * @generated from field: repeated openstatus.maintenance.v1.MaintenanceSummary maintenances = 5; 1060 1062 */ 1061 - maintenances: Maintenance[]; 1063 + maintenances: MaintenanceSummary[]; 1062 1064 }; 1063 1065 1064 1066 /**
+1 -71
src/gen/openstatus/status_page/v1/status_page_pb.ts
··· 15 15 */ 16 16 export const file_openstatus_status_page_v1_status_page: GenFile = /*@__PURE__*/ 17 17 fileDesc( 18 - "CitvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3N0YXR1c19wYWdlLnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIsoCCgpTdGF0dXNQYWdlEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBHNsdWcYBCABKAkSFQoNY3VzdG9tX2RvbWFpbhgFIAEoCRIRCglwdWJsaXNoZWQYBiABKAgSPgoLYWNjZXNzX3R5cGUYByABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlEjMKBXRoZW1lGAggASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWUSFAoMaG9tZXBhZ2VfdXJsGAkgASgJEhMKC2NvbnRhY3RfdXJsGAogASgJEgwKBGljb24YCyABKAkSEgoKY3JlYXRlZF9hdBgMIAEoCRISCgp1cGRhdGVkX2F0GA0gASgJIncKEVN0YXR1c1BhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSEQoJcHVibGlzaGVkGAQgASgIEhIKCmNyZWF0ZWRfYXQYBSABKAkSEgoKdXBkYXRlZF9hdBgGIAEoCSKXAQoLTWFpbnRlbmFuY2USCgoCaWQYASABKAkSDQoFdGl0bGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIMCgRmcm9tGAQgASgJEgoKAnRvGAUgASgJEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgGIAMoCRISCgpjcmVhdGVkX2F0GAcgASgJEhIKCnVwZGF0ZWRfYXQYCCABKAkqnAEKDlBhZ2VBY2Nlc3NUeXBlEiAKHFBBR0VfQUNDRVNTX1RZUEVfVU5TUEVDSUZJRUQQABIbChdQQUdFX0FDQ0VTU19UWVBFX1BVQkxJQxABEicKI1BBR0VfQUNDRVNTX1RZUEVfUEFTU1dPUkRfUFJPVEVDVEVEEAISIgoeUEFHRV9BQ0NFU1NfVFlQRV9BVVRIRU5USUNBVEVEEAMqaQoJUGFnZVRoZW1lEhoKFlBBR0VfVEhFTUVfVU5TUEVDSUZJRUQQABIVChFQQUdFX1RIRU1FX1NZU1RFTRABEhQKEFBBR0VfVEhFTUVfTElHSFQQAhITCg9QQUdFX1RIRU1FX0RBUksQAyrsAQoNT3ZlcmFsbFN0YXR1cxIeChpPVkVSQUxMX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGk9WRVJBTExfU1RBVFVTX09QRVJBVElPTkFMEAESGwoXT1ZFUkFMTF9TVEFUVVNfREVHUkFERUQQAhIhCh1PVkVSQUxMX1NUQVRVU19QQVJUSUFMX09VVEFHRRADEh8KG09WRVJBTExfU1RBVFVTX01BSk9SX09VVEFHRRAEEh4KGk9WRVJBTExfU1RBVFVTX01BSU5URU5BTkNFEAUSGgoWT1ZFUkFMTF9TVEFUVVNfVU5LTk9XThAGQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 18 + "CitvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3N0YXR1c19wYWdlLnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIsoCCgpTdGF0dXNQYWdlEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBHNsdWcYBCABKAkSFQoNY3VzdG9tX2RvbWFpbhgFIAEoCRIRCglwdWJsaXNoZWQYBiABKAgSPgoLYWNjZXNzX3R5cGUYByABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlEjMKBXRoZW1lGAggASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWUSFAoMaG9tZXBhZ2VfdXJsGAkgASgJEhMKC2NvbnRhY3RfdXJsGAogASgJEgwKBGljb24YCyABKAkSEgoKY3JlYXRlZF9hdBgMIAEoCRISCgp1cGRhdGVkX2F0GA0gASgJIncKEVN0YXR1c1BhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSEQoJcHVibGlzaGVkGAQgASgIEhIKCmNyZWF0ZWRfYXQYBSABKAkSEgoKdXBkYXRlZF9hdBgGIAEoCSqcAQoOUGFnZUFjY2Vzc1R5cGUSIAocUEFHRV9BQ0NFU1NfVFlQRV9VTlNQRUNJRklFRBAAEhsKF1BBR0VfQUNDRVNTX1RZUEVfUFVCTElDEAESJwojUEFHRV9BQ0NFU1NfVFlQRV9QQVNTV09SRF9QUk9URUNURUQQAhIiCh5QQUdFX0FDQ0VTU19UWVBFX0FVVEhFTlRJQ0FURUQQAyppCglQYWdlVGhlbWUSGgoWUEFHRV9USEVNRV9VTlNQRUNJRklFRBAAEhUKEVBBR0VfVEhFTUVfU1lTVEVNEAESFAoQUEFHRV9USEVNRV9MSUdIVBACEhMKD1BBR0VfVEhFTUVfREFSSxADKuwBCg1PdmVyYWxsU3RhdHVzEh4KGk9WRVJBTExfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaT1ZFUkFMTF9TVEFUVVNfT1BFUkFUSU9OQUwQARIbChdPVkVSQUxMX1NUQVRVU19ERUdSQURFRBACEiEKHU9WRVJBTExfU1RBVFVTX1BBUlRJQUxfT1VUQUdFEAMSHwobT1ZFUkFMTF9TVEFUVVNfTUFKT1JfT1VUQUdFEAQSHgoaT1ZFUkFMTF9TVEFUVVNfTUFJTlRFTkFOQ0UQBRIaChZPVkVSQUxMX1NUQVRVU19VTktOT1dOEAZCWlpYZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxO3N0YXR1c3BhZ2V2MWIGcHJvdG8z", 19 19 ); 20 20 21 21 /** ··· 182 182 StatusPageSummary 183 183 > = /*@__PURE__*/ 184 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 185 256 186 /** 257 187 * PageAccessType defines who can access the status page.
+1 -1
src/gen/openstatus/status_report/v1/service_pb.ts
··· 26 26 */ 27 27 export const file_openstatus_status_report_v1_service: GenFile = /*@__PURE__*/ 28 28 fileDesc( 29 - "CilvcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjEvc2VydmljZS5wcm90bxIbb3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxIqkCChlDcmVhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0EhYKBXRpdGxlGAEgASgJQge6SARyAhABEkkKBnN0YXR1cxgCIAEoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCLpIBYIBAhABEhgKB21lc3NhZ2UYAyABKAlCB7pIBHICEAESOQoEZGF0ZRgEIAEoCUIrukgociYyJF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfRIYCgdwYWdlX2lkGAUgASgJQge6SARyAhABEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgGIAMoCRITCgZub3RpZnkYByABKAhIAIgBAUIJCgdfbm90aWZ5Il4KGkNyZWF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0Ii0KFkdldFN0YXR1c1JlcG9ydFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiWwoXR2V0U3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQirwEKGExpc3RTdGF0dXNSZXBvcnRzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQESQQoIc3RhdHVzZXMYAyADKA4yLy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0U3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0InkKGUxpc3RTdGF0dXNSZXBvcnRzUmVzcG9uc2USSAoOc3RhdHVzX3JlcG9ydHMYASADKAsyMC5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0U3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFImoKGVVwZGF0ZVN0YXR1c1JlcG9ydFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESEgoFdGl0bGUYAiABKAlIAIgBARIaChJwYWdlX2NvbXBvbmVudF9pZHMYAyADKAlCCAoGX3RpdGxlIl4KGlVwZGF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0IjAKGURlbGV0ZVN0YXR1c1JlcG9ydFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLQoaRGVsZXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKPAgocQWRkU3RhdHVzUmVwb3J0VXBkYXRlUmVxdWVzdBIhChBzdGF0dXNfcmVwb3J0X2lkGAEgASgJQge6SARyAhABEkkKBnN0YXR1cxgCIAEoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCLpIBYIBAhABEhgKB21lc3NhZ2UYAyABKAlCB7pIBHICEAESPgoEZGF0ZRgEIAEoCUIrukgociYyJF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfUgAiAEBEhMKBm5vdGlmeRgFIAEoCEgBiAEBQgcKBV9kYXRlQgkKB19ub3RpZnkiYQodQWRkU3RhdHVzUmVwb3J0VXBkYXRlUmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQywQYKE1N0YXR1c1JlcG9ydFNlcnZpY2UShQEKEkNyZWF0ZVN0YXR1c1JlcG9ydBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5DcmVhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkNyZWF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEnwKD0dldFN0YXR1c1JlcG9ydBIzLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5HZXRTdGF0dXNSZXBvcnRSZXF1ZXN0GjQub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkdldFN0YXR1c1JlcG9ydFJlc3BvbnNlEoIBChFMaXN0U3RhdHVzUmVwb3J0cxI1Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5MaXN0U3RhdHVzUmVwb3J0c1JlcXVlc3QaNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuTGlzdFN0YXR1c1JlcG9ydHNSZXNwb25zZRKFAQoSVXBkYXRlU3RhdHVzUmVwb3J0EjYub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlVwZGF0ZVN0YXR1c1JlcG9ydFJlcXVlc3QaNy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuVXBkYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2UShQEKEkRlbGV0ZVN0YXR1c1JlcG9ydBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5EZWxldGVTdGF0dXNSZXBvcnRSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkRlbGV0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEo4BChVBZGRTdGF0dXNSZXBvcnRVcGRhdGUSOS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQWRkU3RhdHVzUmVwb3J0VXBkYXRlUmVxdWVzdBo6Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5BZGRTdGF0dXNSZXBvcnRVcGRhdGVSZXNwb25zZUJeWlxnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3JlcG9ydC92MTtzdGF0dXNyZXBvcnR2MWIGcHJvdG8z", 29 + "CilvcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjEvc2VydmljZS5wcm90bxIbb3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxIskCChlDcmVhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0EhYKBXRpdGxlGAEgASgJQge6SARyAhABEkkKBnN0YXR1cxgCIAEoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCLpIBYIBAhABEhgKB21lc3NhZ2UYAyABKAlCB7pIBHICEAESWQoEZGF0ZRgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkEhgKB3BhZ2VfaWQYBSABKAlCB7pIBHICEAESGgoScGFnZV9jb21wb25lbnRfaWRzGAYgAygJEhMKBm5vdGlmeRgHIAEoCEgAiAEBQgkKB19ub3RpZnkiXgoaQ3JlYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQiLQoWR2V0U3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJbChdHZXRTdGF0dXNSZXBvcnRSZXNwb25zZRJACg1zdGF0dXNfcmVwb3J0GAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlN0YXR1c1JlcG9ydCKvAQoYTGlzdFN0YXR1c1JlcG9ydHNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBARJBCghzdGF0dXNlcxgDIAMoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCAoGX2xpbWl0QgkKB19vZmZzZXQieQoZTGlzdFN0YXR1c1JlcG9ydHNSZXNwb25zZRJICg5zdGF0dXNfcmVwb3J0cxgBIAMoCzIwLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdW1tYXJ5EhIKCnRvdGFsX3NpemUYAiABKAUiagoZVXBkYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARISCgV0aXRsZRgCIAEoCUgAiAEBEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgDIAMoCUIICgZfdGl0bGUiXgoaVXBkYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQiMAoZRGVsZXRlU3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASItChpEZWxldGVTdGF0dXNSZXBvcnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIq8CChxBZGRTdGF0dXNSZXBvcnRVcGRhdGVSZXF1ZXN0EiEKEHN0YXR1c19yZXBvcnRfaWQYASABKAlCB7pIBHICEAESSQoGc3RhdHVzGAIgASgOMi8ub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlN0YXR1c1JlcG9ydFN0YXR1c0IIukgFggECEAESGAoHbWVzc2FnZRgDIAEoCUIHukgEcgIQARJeCgRkYXRlGAQgASgJQku6SEhyRjJEXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGR7MSw5fSk/KFp8WystXVxkezJ9OlxkezJ9KSRIAIgBARITCgZub3RpZnkYBSABKAhIAYgBAUIHCgVfZGF0ZUIJCgdfbm90aWZ5ImEKHUFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0MsEGChNTdGF0dXNSZXBvcnRTZXJ2aWNlEoUBChJDcmVhdGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQ3JlYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5DcmVhdGVTdGF0dXNSZXBvcnRSZXNwb25zZRJ8Cg9HZXRTdGF0dXNSZXBvcnQSMy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuR2V0U3RhdHVzUmVwb3J0UmVxdWVzdBo0Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5HZXRTdGF0dXNSZXBvcnRSZXNwb25zZRKCAQoRTGlzdFN0YXR1c1JlcG9ydHMSNS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuTGlzdFN0YXR1c1JlcG9ydHNSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkxpc3RTdGF0dXNSZXBvcnRzUmVzcG9uc2UShQEKElVwZGF0ZVN0YXR1c1JlcG9ydBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5VcGRhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlVwZGF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEoUBChJEZWxldGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuRGVsZXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5EZWxldGVTdGF0dXNSZXBvcnRSZXNwb25zZRKOAQoVQWRkU3RhdHVzUmVwb3J0VXBkYXRlEjkub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlcXVlc3QaOi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQWRkU3RhdHVzUmVwb3J0VXBkYXRlUmVzcG9uc2VCXlpcZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjE7c3RhdHVzcmVwb3J0djFiBnByb3RvMw", 30 30 [ 31 31 file_buf_validate_validate, 32 32 file_openstatus_status_report_v1_status_report,
+44 -1
src/mod.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 37 import { StatusPageService } from "./gen/openstatus/status_page/v1/service_pb.ts"; 38 + import { MaintenanceService } from "./gen/openstatus/maintenance/v1/service_pb.ts"; 38 39 39 40 // Re-export monitor types 40 41 export type { ··· 133 134 134 135 // Re-export status page types 135 136 export type { 136 - Maintenance, 137 137 StatusPage, 138 138 StatusPageSummary, 139 139 } from "./gen/openstatus/status_page/v1/status_page_pb.ts"; ··· 194 194 UpdateStatusPageResponse, 195 195 } from "./gen/openstatus/status_page/v1/service_pb.ts"; 196 196 197 + // Re-export maintenance types 198 + export type { 199 + Maintenance, 200 + MaintenanceSummary, 201 + } from "./gen/openstatus/maintenance/v1/maintenance_pb.ts"; 202 + 203 + // Re-export maintenance request/response types 204 + export type { 205 + CreateMaintenanceRequest, 206 + CreateMaintenanceResponse, 207 + DeleteMaintenanceRequest, 208 + DeleteMaintenanceResponse, 209 + GetMaintenanceRequest, 210 + GetMaintenanceResponse, 211 + ListMaintenancesRequest, 212 + ListMaintenancesResponse, 213 + UpdateMaintenanceRequest, 214 + UpdateMaintenanceResponse, 215 + } from "./gen/openstatus/maintenance/v1/service_pb.ts"; 216 + 197 217 /** 198 218 * Default OpenStatus API URL. 199 219 */ ··· 300 320 StatusPageService: Client<typeof StatusPageService>; 301 321 }; 302 322 }; 323 + /** 324 + * Maintenance service namespace (v1). 325 + */ 326 + maintenance: { 327 + v1: { 328 + /** 329 + * MaintenanceService provides CRUD operations for maintenance windows. 330 + * 331 + * Methods: 332 + * - `createMaintenance` - Create a new maintenance window 333 + * - `getMaintenance` - Get a maintenance window by ID 334 + * - `listMaintenances` - List all maintenance windows 335 + * - `updateMaintenance` - Update a maintenance window 336 + * - `deleteMaintenance` - Delete a maintenance window 337 + */ 338 + MaintenanceService: Client<typeof MaintenanceService>; 339 + }; 340 + }; 303 341 } 304 342 305 343 /** ··· 345 383 statusPage: { 346 384 v1: { 347 385 StatusPageService: createClient(StatusPageService, transport), 386 + }, 387 + }, 388 + maintenance: { 389 + v1: { 390 + MaintenanceService: createClient(MaintenanceService, transport), 348 391 }, 349 392 }, 350 393 };