Openstatus sdk www.openstatus.dev
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: new version (#13)

authored by

Thibault Le Ouay and committed by
GitHub
6e20c613 3bdfd788

+3873 -278
+2 -2
README.md
··· 281 281 List all monitors with pagination. Returns monitors grouped by type. 282 282 283 283 ```typescript 284 - const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = 285 - await client.monitor.v1.MonitorService.listMonitors({ 284 + const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = await client 285 + .monitor.v1.MonitorService.listMonitors({ 286 286 limit: 10, 287 287 offset: 0, 288 288 });
+1 -1
deno.json
··· 1 1 { 2 2 "name": "@openstatus/sdk-node", 3 - "version": "0.1.4", 3 + "version": "0.1.5", 4 4 "description": "SDK for openstatus", 5 5 "license": "MIT", 6 6 "exports": {
+12 -7
docs/authentication.md
··· 4 4 5 5 ## Recommended: createOpenStatusClient 6 6 7 - Create a client with your API key. The key is automatically included in all requests via an interceptor. 7 + Create a client with your API key. The key is automatically included in all 8 + requests via an interceptor. 8 9 9 10 ```typescript 10 11 import { createOpenStatusClient } from "@openstatus/sdk-node"; ··· 14 15 }); 15 16 16 17 // No headers needed on individual calls 17 - const { httpMonitors } = await client.monitor.v1.MonitorService.listMonitors({}); 18 + const { httpMonitors } = await client.monitor.v1.MonitorService.listMonitors( 19 + {}, 20 + ); 18 21 ``` 19 22 20 23 ## Alternative: Manual Headers ··· 33 36 34 37 ## Environment Variables 35 38 36 - | Variable | Description | Default | 37 - |----------|-------------|---------| 39 + | Variable | Description | Default | 40 + | -------------------- | ----------------------- | -------------------------------- | 38 41 | `OPENSTATUS_API_KEY` | Your OpenStatus API key | Required for authenticated calls | 39 - | `OPENSTATUS_API_URL` | Custom API endpoint | `https://api.openstatus.dev/rpc` | 42 + | `OPENSTATUS_API_URL` | Custom API endpoint | `https://api.openstatus.dev/rpc` | 40 43 41 - Get your API key from the [OpenStatus dashboard](https://www.openstatus.dev/app). 44 + Get your API key from the 45 + [OpenStatus dashboard](https://www.openstatus.dev/app). 42 46 43 47 ## Custom Base URL 44 48 ··· 53 57 }); 54 58 ``` 55 59 56 - The `baseUrl` option takes precedence over the `OPENSTATUS_API_URL` environment variable. 60 + The `baseUrl` option takes precedence over the `OPENSTATUS_API_URL` environment 61 + variable.
+14 -10
docs/error-handling.md
··· 2 2 3 3 # Error Handling 4 4 5 - The SDK uses ConnectRPC. Errors are thrown as `ConnectError` instances from the `@connectrpc/connect` package. 5 + The SDK uses ConnectRPC. Errors are thrown as `ConnectError` instances from the 6 + `@connectrpc/connect` package. 6 7 7 8 ```typescript 8 9 import { ConnectError } from "@connectrpc/connect"; ··· 19 20 20 21 ## Common Error Codes 21 22 22 - | Code | Description | 23 - |------|-------------| 24 - | `unauthenticated` | Missing or invalid API key | 25 - | `not_found` | Resource does not exist | 26 - | `invalid_argument` | Validation failure (e.g., missing required field, value out of range) | 27 - | `permission_denied` | No access to this workspace or resource | 28 - | `already_exists` | Duplicate resource (e.g., slug already taken) | 23 + | Code | Description | 24 + | ------------------- | --------------------------------------------------------------------- | 25 + | `unauthenticated` | Missing or invalid API key | 26 + | `not_found` | Resource does not exist | 27 + | `invalid_argument` | Validation failure (e.g., missing required field, value out of range) | 28 + | `permission_denied` | No access to this workspace or resource | 29 + | `already_exists` | Duplicate resource (e.g., slug already taken) | 29 30 30 31 ## Retry Strategy 31 32 32 - ConnectRPC does not retry by default. For transient failures (`unavailable`, `deadline_exceeded`), implement your own retry logic: 33 + ConnectRPC does not retry by default. For transient failures (`unavailable`, 34 + `deadline_exceeded`), implement your own retry logic: 33 35 34 36 ```typescript 35 37 import { ConnectError } from "@connectrpc/connect"; ··· 44 46 (error.code === "unavailable" || error.code === "deadline_exceeded") && 45 47 attempt < maxRetries 46 48 ) { 47 - await new Promise((resolve) => setTimeout(resolve, 1000 * 2 ** attempt)); 49 + await new Promise((resolve) => 50 + setTimeout(resolve, 1000 * 2 ** attempt) 51 + ); 48 52 continue; 49 53 } 50 54 throw error;
+5 -4
docs/getting-started.md
··· 55 55 console.log(`Monitor created: ${monitor?.id}`); 56 56 57 57 // List all monitors 58 - const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = 59 - await client.monitor.v1.MonitorService.listMonitors({}); 58 + const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = await client 59 + .monitor.v1.MonitorService.listMonitors({}); 60 60 61 61 console.log(`Found ${totalSize} monitors`); 62 62 ``` ··· 64 64 ## Runtime Support 65 65 66 66 | Runtime | Version | Module Format | 67 - |---------|---------|---------------| 67 + | ------- | ------- | ------------- | 68 68 | Node.js | >= 18 | ESM and CJS | 69 69 | Deno | >= 2 | ESM (native) | 70 70 | Bun | Latest | ESM | 71 71 72 72 ## Full Workflow Example 73 73 74 - A complete example: create a monitor, set up a status page, add the monitor as a component, configure a Slack notification, and check overall status. 74 + A complete example: create a monitor, set up a status page, add the monitor as a 75 + component, configure a Slack notification, and check overall status. 75 76 76 77 ```typescript 77 78 import {
+4 -1
docs/index.md
··· 1 1 # OpenStatus Node.js SDK Documentation 2 2 3 - Official documentation for [`@openstatus/sdk-node`](https://www.npmjs.com/package/@openstatus/sdk-node) — the TypeScript SDK for the [OpenStatus](https://openstatus.dev) monitoring platform. 3 + Official documentation for 4 + [`@openstatus/sdk-node`](https://www.npmjs.com/package/@openstatus/sdk-node) — 5 + the TypeScript SDK for the [OpenStatus](https://openstatus.dev) monitoring 6 + platform. 4 7 5 8 --- 6 9
+2 -1
docs/maintenance-service.md
··· 2 2 3 3 # Maintenance Service 4 4 5 - Manage scheduled maintenance windows. The Maintenance Service provides 5 RPC methods. 5 + Manage scheduled maintenance windows. The Maintenance Service provides 5 RPC 6 + methods. 6 7 7 8 ## Create Maintenance Window 8 9
+73 -60
docs/monitor-service.md
··· 2 2 3 3 # Monitor Service 4 4 5 - Manage HTTP, TCP, and DNS monitors. The Monitor Service provides 12 RPC methods for creating, updating, listing, triggering, deleting, and querying monitor status and metrics. 5 + Manage HTTP, TCP, and DNS monitors. The Monitor Service provides 12 RPC methods 6 + for creating, updating, listing, triggering, deleting, and querying monitor 7 + status and metrics. 6 8 7 9 All examples assume you have created a client: 8 10 ··· 88 90 89 91 ### HTTP Monitor Options 90 92 91 - | Option | Type | Required | Description | 92 - |--------|------|----------|-------------| 93 - | `name` | string | Yes | Monitor name (max 256 chars) | 94 - | `url` | string | Yes | URL to monitor (max 2048 chars) | 95 - | `periodicity` | Periodicity | Yes | Check interval | 96 - | `method` | HTTPMethod | No | HTTP method (default: GET) | 97 - | `body` | string | No | Request body | 98 - | `headers` | Headers[] | No | Custom headers `{ key, value }[]` | 99 - | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 100 - | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 101 - | `followRedirects` | boolean | No | Follow redirects (default: true) | 102 - | `regions` | Region[] | No | Regions for checks | 103 - | `active` | boolean | No | Enable monitoring (default: false) | 104 - | `public` | boolean | No | Public visibility (default: false) | 105 - | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 106 - | `description` | string | No | Monitor description (max 1024 chars) | 107 - | `statusCodeAssertions` | StatusCodeAssertion[] | No | Status code assertions | 108 - | `bodyAssertions` | BodyAssertion[] | No | Body assertions | 109 - | `headerAssertions` | HeaderAssertion[] | No | Header assertions | 110 - | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 93 + | Option | Type | Required | Description | 94 + | ---------------------- | --------------------- | -------- | ------------------------------------------- | 95 + | `name` | string | Yes | Monitor name (max 256 chars) | 96 + | `url` | string | Yes | URL to monitor (max 2048 chars) | 97 + | `periodicity` | Periodicity | Yes | Check interval | 98 + | `method` | HTTPMethod | No | HTTP method (default: GET) | 99 + | `body` | string | No | Request body | 100 + | `headers` | Headers[] | No | Custom headers `{ key, value }[]` | 101 + | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 102 + | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 103 + | `followRedirects` | boolean | No | Follow redirects (default: true) | 104 + | `regions` | Region[] | No | Regions for checks | 105 + | `active` | boolean | No | Enable monitoring (default: false) | 106 + | `public` | boolean | No | Public visibility (default: false) | 107 + | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 108 + | `description` | string | No | Monitor description (max 1024 chars) | 109 + | `statusCodeAssertions` | StatusCodeAssertion[] | No | Status code assertions | 110 + | `bodyAssertions` | BodyAssertion[] | No | Body assertions | 111 + | `headerAssertions` | HeaderAssertion[] | No | Header assertions | 112 + | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 111 113 112 114 ## TCP Monitors 113 115 ··· 148 150 149 151 ### TCP Monitor Options 150 152 151 - | Option | Type | Required | Description | 152 - |--------|------|----------|-------------| 153 - | `name` | string | Yes | Monitor name (max 256 chars) | 154 - | `uri` | string | Yes | `host:port` to monitor (max 2048 chars) | 155 - | `periodicity` | Periodicity | Yes | Check interval | 156 - | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 157 - | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 158 - | `regions` | Region[] | No | Regions for checks | 159 - | `active` | boolean | No | Enable monitoring (default: false) | 160 - | `public` | boolean | No | Public visibility (default: false) | 161 - | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 162 - | `description` | string | No | Monitor description (max 1024 chars) | 163 - | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 153 + | Option | Type | Required | Description | 154 + | --------------- | ------------------- | -------- | ------------------------------------------- | 155 + | `name` | string | Yes | Monitor name (max 256 chars) | 156 + | `uri` | string | Yes | `host:port` to monitor (max 2048 chars) | 157 + | `periodicity` | Periodicity | Yes | Check interval | 158 + | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 159 + | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 160 + | `regions` | Region[] | No | Regions for checks | 161 + | `active` | boolean | No | Enable monitoring (default: false) | 162 + | `public` | boolean | No | Public visibility (default: false) | 163 + | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 164 + | `description` | string | No | Monitor description (max 1024 chars) | 165 + | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 164 166 165 167 ## DNS Monitors 166 168 ··· 214 216 215 217 ### DNS Monitor Options 216 218 217 - | Option | Type | Required | Description | 218 - |--------|------|----------|-------------| 219 - | `name` | string | Yes | Monitor name (max 256 chars) | 220 - | `uri` | string | Yes | Domain to resolve (max 2048 chars) | 221 - | `periodicity` | Periodicity | Yes | Check interval | 222 - | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 223 - | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 224 - | `regions` | Region[] | No | Regions for checks | 225 - | `active` | boolean | No | Enable monitoring (default: false) | 226 - | `public` | boolean | No | Public visibility (default: false) | 227 - | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 228 - | `description` | string | No | Monitor description (max 1024 chars) | 229 - | `recordAssertions` | RecordAssertion[] | No | DNS record assertions | 230 - | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 219 + | Option | Type | Required | Description | 220 + | ------------------ | ------------------- | -------- | ------------------------------------------- | 221 + | `name` | string | Yes | Monitor name (max 256 chars) | 222 + | `uri` | string | Yes | Domain to resolve (max 2048 chars) | 223 + | `periodicity` | Periodicity | Yes | Check interval | 224 + | `timeout` | bigint | No | Timeout in ms (default: 45000, max: 120000) | 225 + | `retry` | bigint | No | Retry attempts (default: 3, max: 10) | 226 + | `regions` | Region[] | No | Regions for checks | 227 + | `active` | boolean | No | Enable monitoring (default: false) | 228 + | `public` | boolean | No | Public visibility (default: false) | 229 + | `degradedAt` | bigint | No | Latency threshold (ms) for degraded status | 230 + | `description` | string | No | Monitor description (max 1024 chars) | 231 + | `recordAssertions` | RecordAssertion[] | No | DNS record assertions | 232 + | `openTelemetry` | OpenTelemetryConfig | No | OpenTelemetry export configuration | 231 233 232 234 ## List Monitors 233 235 234 - List all monitors with offset-based pagination. Returns monitors grouped by type. 236 + List all monitors with offset-based pagination. Returns monitors grouped by 237 + type. 235 238 236 239 ```typescript 237 - const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = 238 - await client.monitor.v1.MonitorService.listMonitors({ 240 + const { httpMonitors, tcpMonitors, dnsMonitors, totalSize } = await client 241 + .monitor.v1.MonitorService.listMonitors({ 239 242 limit: 10, 240 243 offset: 0, 241 244 }); ··· 248 251 249 252 Pagination parameters: 250 253 251 - | Parameter | Type | Description | 252 - |-----------|------|-------------| 253 - | `limit` | number (optional) | Max results to return (1–100, default 50) | 254 - | `offset` | number (optional) | Number of results to skip (default 0) | 254 + | Parameter | Type | Description | 255 + | --------- | ----------------- | ----------------------------------------- | 256 + | `limit` | number (optional) | Max results to return (1–100, default 50) | 257 + | `offset` | number (optional) | Number of results to skip (default 0) | 255 258 256 259 ## Get Monitor 257 260 258 - Get a single monitor by ID. The response uses a `MonitorConfig` oneof type that contains one of HTTP, TCP, or DNS configuration. 261 + Get a single monitor by ID. The response uses a `MonitorConfig` oneof type that 262 + contains one of HTTP, TCP, or DNS configuration. 259 263 260 264 ```typescript 261 265 const { monitor } = await client.monitor.v1.MonitorService.getMonitor({ ··· 263 267 }); 264 268 265 269 if (monitor?.config.case === "http") { 266 - console.log(`HTTP Monitor: ${monitor.config.value.name} — ${monitor.config.value.url}`); 270 + console.log( 271 + `HTTP Monitor: ${monitor.config.value.name} — ${monitor.config.value.url}`, 272 + ); 267 273 } else if (monitor?.config.case === "tcp") { 268 - console.log(`TCP Monitor: ${monitor.config.value.name} — ${monitor.config.value.uri}`); 274 + console.log( 275 + `TCP Monitor: ${monitor.config.value.name} — ${monitor.config.value.uri}`, 276 + ); 269 277 } else if (monitor?.config.case === "dns") { 270 - console.log(`DNS Monitor: ${monitor.config.value.name} — ${monitor.config.value.uri}`); 278 + console.log( 279 + `DNS Monitor: ${monitor.config.value.name} — ${monitor.config.value.uri}`, 280 + ); 271 281 } 272 282 ``` 273 283 ··· 343 353 console.log(`P99: ${summary.p99}ms`); 344 354 ``` 345 355 346 - The latency fields (`p50`, `p75`, `p90`, `p95`, `p99`) and count fields (`totalSuccessful`, `totalDegraded`, `totalFailed`) are `bigint` values. The `regions` parameter is optional — pass an empty array to get metrics across all regions. 356 + The latency fields (`p50`, `p75`, `p90`, `p95`, `p99`) and count fields 357 + (`totalSuccessful`, `totalDegraded`, `totalFailed`) are `bigint` values. The 358 + `regions` parameter is optional — pass an empty array to get metrics across all 359 + regions.
+6 -2
docs/notification-service.md
··· 2 2 3 3 # Notification Service 4 4 5 - Manage notification channels for monitor alerts. Supports 12 providers. The Notification Service provides 7 RPC methods. 5 + Manage notification channels for monitor alerts. Supports 12 providers. The 6 + Notification Service provides 7 RPC methods. 6 7 7 8 ## Create Notification 8 9 ··· 32 33 console.log(`Notification created: ${notification?.id}`); 33 34 ``` 34 35 35 - The `data` field uses a nested oneof pattern: the outer `data` is the `NotificationData` message, and `data.data` is the oneof that selects the provider-specific configuration. The `case` must match the provider type in lowercase. 36 + The `data` field uses a nested oneof pattern: the outer `data` is the 37 + `NotificationData` message, and `data.data` is the oneof that selects the 38 + provider-specific configuration. The `case` must match the provider type in 39 + lowercase. 36 40 37 41 ## Provider Configurations 38 42
+136 -131
docs/reference.md
··· 6 6 7 7 ### Periodicity 8 8 9 - | Value | Description | 10 - |-------|-------------| 9 + | Value | Description | 10 + | ----------------- | ---------------- | 11 11 | `PERIODICITY_30S` | Every 30 seconds | 12 - | `PERIODICITY_1M` | Every 1 minute | 13 - | `PERIODICITY_5M` | Every 5 minutes | 12 + | `PERIODICITY_1M` | Every 1 minute | 13 + | `PERIODICITY_5M` | Every 5 minutes | 14 14 | `PERIODICITY_10M` | Every 10 minutes | 15 15 | `PERIODICITY_30M` | Every 30 minutes | 16 - | `PERIODICITY_1H` | Every 1 hour | 16 + | `PERIODICITY_1H` | Every 1 hour | 17 17 18 18 ### HTTPMethod 19 19 20 - | Value | Description | 21 - |-------|-------------| 22 - | `HTTP_METHOD_GET` | GET | 23 - | `HTTP_METHOD_POST` | POST | 24 - | `HTTP_METHOD_HEAD` | HEAD | 25 - | `HTTP_METHOD_PUT` | PUT | 26 - | `HTTP_METHOD_PATCH` | PATCH | 27 - | `HTTP_METHOD_DELETE` | DELETE | 28 - | `HTTP_METHOD_TRACE` | TRACE | 29 - | `HTTP_METHOD_CONNECT` | CONNECT | 30 - | `HTTP_METHOD_OPTIONS` | OPTIONS | 20 + | Value | Description | 21 + | --------------------- | ----------- | 22 + | `HTTP_METHOD_GET` | GET | 23 + | `HTTP_METHOD_POST` | POST | 24 + | `HTTP_METHOD_HEAD` | HEAD | 25 + | `HTTP_METHOD_PUT` | PUT | 26 + | `HTTP_METHOD_PATCH` | PATCH | 27 + | `HTTP_METHOD_DELETE` | DELETE | 28 + | `HTTP_METHOD_TRACE` | TRACE | 29 + | `HTTP_METHOD_CONNECT` | CONNECT | 30 + | `HTTP_METHOD_OPTIONS` | OPTIONS | 31 31 32 32 ### MonitorStatus 33 33 34 - | Value | Description | 35 - |-------|-------------| 36 - | `ACTIVE` | Monitor is healthy | 34 + | Value | Description | 35 + | ---------- | -------------------------- | 36 + | `ACTIVE` | Monitor is healthy | 37 37 | `DEGRADED` | Latency threshold exceeded | 38 - | `ERROR` | Monitor is failing | 38 + | `ERROR` | Monitor is failing | 39 39 40 40 ### TimeRange 41 41 42 - | Value | Description | 43 - |-------|-------------| 44 - | `TIME_RANGE_1D` | Last 24 hours | 45 - | `TIME_RANGE_7D` | Last 7 days | 46 - | `TIME_RANGE_14D` | Last 14 days | 42 + | Value | Description | 43 + | ---------------- | ------------- | 44 + | `TIME_RANGE_1D` | Last 24 hours | 45 + | `TIME_RANGE_7D` | Last 7 days | 46 + | `TIME_RANGE_14D` | Last 14 days | 47 47 48 48 ### StatusReportStatus 49 49 50 - | Value | Description | 51 - |-------|-------------| 50 + | Value | Description | 51 + | --------------- | -------------------------------- | 52 52 | `INVESTIGATING` | Actively investigating the issue | 53 - | `IDENTIFIED` | Root cause has been identified | 54 - | `MONITORING` | Fix deployed, monitoring | 55 - | `RESOLVED` | Issue fully resolved | 53 + | `IDENTIFIED` | Root cause has been identified | 54 + | `MONITORING` | Fix deployed, monitoring | 55 + | `RESOLVED` | Issue fully resolved | 56 56 57 57 ### OverallStatus 58 58 59 - | Value | Description | 60 - |-------|-------------| 61 - | `OPERATIONAL` | All systems operational | 62 - | `DEGRADED` | Performance is degraded | 63 - | `PARTIAL_OUTAGE` | Some systems are down | 64 - | `MAJOR_OUTAGE` | Major systems are down | 65 - | `MAINTENANCE` | Scheduled maintenance | 66 - | `UNKNOWN` | Status cannot be determined | 59 + | Value | Description | 60 + | ---------------- | --------------------------- | 61 + | `OPERATIONAL` | All systems operational | 62 + | `DEGRADED` | Performance is degraded | 63 + | `PARTIAL_OUTAGE` | Some systems are down | 64 + | `MAJOR_OUTAGE` | Major systems are down | 65 + | `MAINTENANCE` | Scheduled maintenance | 66 + | `UNKNOWN` | Status cannot be determined | 67 67 68 68 ### NotificationProvider 69 69 70 - | Value | Description | 71 - |-------|-------------| 72 - | `DISCORD` | Discord webhook | 73 - | `EMAIL` | Email notification | 74 - | `GOOGLE_CHAT` | Google Chat webhook | 75 - | `GRAFANA_ONCALL` | Grafana OnCall | 76 - | `NTFY` | Ntfy push service | 77 - | `PAGERDUTY` | PagerDuty | 78 - | `OPSGENIE` | Opsgenie | 79 - | `SLACK` | Slack webhook | 80 - | `SMS` | SMS notification | 81 - | `TELEGRAM` | Telegram bot | 82 - | `WEBHOOK` | Custom webhook | 83 - | `WHATSAPP` | WhatsApp | 70 + | Value | Description | 71 + | ---------------- | ------------------- | 72 + | `DISCORD` | Discord webhook | 73 + | `EMAIL` | Email notification | 74 + | `GOOGLE_CHAT` | Google Chat webhook | 75 + | `GRAFANA_ONCALL` | Grafana OnCall | 76 + | `NTFY` | Ntfy push service | 77 + | `PAGERDUTY` | PagerDuty | 78 + | `OPSGENIE` | Opsgenie | 79 + | `SLACK` | Slack webhook | 80 + | `SMS` | SMS notification | 81 + | `TELEGRAM` | Telegram bot | 82 + | `WEBHOOK` | Custom webhook | 83 + | `WHATSAPP` | WhatsApp | 84 84 85 85 ### OpsgenieRegion 86 86 87 87 | Value | Description | 88 - |-------|-------------| 89 - | `US` | US region | 90 - | `EU` | EU region | 88 + | ----- | ----------- | 89 + | `US` | US region | 90 + | `EU` | EU region | 91 91 92 92 ### PageAccessType 93 93 94 - | Value | Description | 95 - |-------|-------------| 96 - | `PUBLIC` | Publicly accessible | 97 - | `PASSWORD_PROTECTED` | Requires password | 98 - | `AUTHENTICATED` | Requires authentication | 94 + | Value | Description | 95 + | -------------------- | ----------------------- | 96 + | `PUBLIC` | Publicly accessible | 97 + | `PASSWORD_PROTECTED` | Requires password | 98 + | `AUTHENTICATED` | Requires authentication | 99 99 100 100 ### PageTheme 101 101 102 - | Value | Description | 103 - |-------|-------------| 102 + | Value | Description | 103 + | -------- | ------------------- | 104 104 | `SYSTEM` | Follow system theme | 105 - | `LIGHT` | Light theme | 106 - | `DARK` | Dark theme | 105 + | `LIGHT` | Light theme | 106 + | `DARK` | Dark theme | 107 107 108 108 ### PageComponentType 109 109 110 - | Value | Description | 111 - |-------|-------------| 112 - | `MONITOR` | Linked to a monitor | 113 - | `STATIC` | Static component (manual) | 110 + | Value | Description | 111 + | --------- | ------------------------- | 112 + | `MONITOR` | Linked to a monitor | 113 + | `STATIC` | Static component (manual) | 114 114 115 115 ### NumberComparator 116 116 117 - | Value | Description | 118 - |-------|-------------| 119 - | `EQUAL` | Equal to target | 120 - | `NOT_EQUAL` | Not equal to target | 121 - | `GREATER_THAN` | Greater than target | 117 + | Value | Description | 118 + | ----------------------- | --------------------- | 119 + | `EQUAL` | Equal to target | 120 + | `NOT_EQUAL` | Not equal to target | 121 + | `GREATER_THAN` | Greater than target | 122 122 | `GREATER_THAN_OR_EQUAL` | Greater than or equal | 123 - | `LESS_THAN` | Less than target | 124 - | `LESS_THAN_OR_EQUAL` | Less than or equal | 123 + | `LESS_THAN` | Less than target | 124 + | `LESS_THAN_OR_EQUAL` | Less than or equal | 125 125 126 126 ### StringComparator 127 127 128 - | Value | Description | 129 - |-------|-------------| 130 - | `CONTAINS` | Contains target string | 131 - | `NOT_CONTAINS` | Does not contain target | 132 - | `EQUAL` | Equal to target | 133 - | `NOT_EQUAL` | Not equal to target | 134 - | `EMPTY` | Value is empty | 135 - | `NOT_EMPTY` | Value is not empty | 136 - | `GREATER_THAN` | Lexicographically greater | 128 + | Value | Description | 129 + | ----------------------- | --------------------------- | 130 + | `CONTAINS` | Contains target string | 131 + | `NOT_CONTAINS` | Does not contain target | 132 + | `EQUAL` | Equal to target | 133 + | `NOT_EQUAL` | Not equal to target | 134 + | `EMPTY` | Value is empty | 135 + | `NOT_EMPTY` | Value is not empty | 136 + | `GREATER_THAN` | Lexicographically greater | 137 137 | `GREATER_THAN_OR_EQUAL` | Lexicographically >= target | 138 - | `LESS_THAN` | Lexicographically less | 139 - | `LESS_THAN_OR_EQUAL` | Lexicographically <= target | 138 + | `LESS_THAN` | Lexicographically less | 139 + | `LESS_THAN_OR_EQUAL` | Lexicographically <= target | 140 140 141 141 ### RecordComparator 142 142 143 - | Value | Description | 144 - |-------|-------------| 145 - | `EQUAL` | Equal to target | 146 - | `NOT_EQUAL` | Not equal to target | 147 - | `CONTAINS` | Contains target string | 143 + | Value | Description | 144 + | -------------- | ----------------------- | 145 + | `EQUAL` | Equal to target | 146 + | `NOT_EQUAL` | Not equal to target | 147 + | `CONTAINS` | Contains target string | 148 148 | `NOT_CONTAINS` | Does not contain target | 149 149 150 150 ### ServingStatus 151 151 152 - | Value | Description | 153 - |-------|-------------| 154 - | `SERVING` | Service is healthy and serving | 155 - | `NOT_SERVING` | Service is not healthy | 152 + | Value | Description | 153 + | ------------- | ------------------------------ | 154 + | `SERVING` | Service is healthy and serving | 155 + | `NOT_SERVING` | Service is not healthy | 156 156 157 157 ## Regions 158 158 ··· 166 166 167 167 ### Fly.io Regions (18) 168 168 169 - | Enum Value | Location | 170 - |------------|----------| 171 - | `FLY_AMS` | Amsterdam | 172 - | `FLY_ARN` | Stockholm | 173 - | `FLY_BOM` | Mumbai | 174 - | `FLY_CDG` | Paris | 175 - | `FLY_DFW` | Dallas | 176 - | `FLY_EWR` | Newark | 177 - | `FLY_FRA` | Frankfurt | 178 - | `FLY_GRU` | São Paulo | 179 - | `FLY_IAD` | Washington D.C. | 180 - | `FLY_JNB` | Johannesburg | 181 - | `FLY_LAX` | Los Angeles | 182 - | `FLY_LHR` | London | 183 - | `FLY_NRT` | Tokyo | 184 - | `FLY_ORD` | Chicago | 185 - | `FLY_SJC` | San Jose | 186 - | `FLY_SIN` | Singapore | 187 - | `FLY_SYD` | Sydney | 188 - | `FLY_YYZ` | Toronto | 169 + | Enum Value | Location | 170 + | ---------- | --------------- | 171 + | `FLY_AMS` | Amsterdam | 172 + | `FLY_ARN` | Stockholm | 173 + | `FLY_BOM` | Mumbai | 174 + | `FLY_CDG` | Paris | 175 + | `FLY_DFW` | Dallas | 176 + | `FLY_EWR` | Newark | 177 + | `FLY_FRA` | Frankfurt | 178 + | `FLY_GRU` | São Paulo | 179 + | `FLY_IAD` | Washington D.C. | 180 + | `FLY_JNB` | Johannesburg | 181 + | `FLY_LAX` | Los Angeles | 182 + | `FLY_LHR` | London | 183 + | `FLY_NRT` | Tokyo | 184 + | `FLY_ORD` | Chicago | 185 + | `FLY_SJC` | San Jose | 186 + | `FLY_SIN` | Singapore | 187 + | `FLY_SYD` | Sydney | 188 + | `FLY_YYZ` | Toronto | 189 189 190 190 ### Koyeb Regions (6) 191 191 192 - | Enum Value | Location | 193 - |------------|----------| 194 - | `KOYEB_FRA` | Frankfurt | 195 - | `KOYEB_PAR` | Paris | 192 + | Enum Value | Location | 193 + | ----------- | ------------- | 194 + | `KOYEB_FRA` | Frankfurt | 195 + | `KOYEB_PAR` | Paris | 196 196 | `KOYEB_SFO` | San Francisco | 197 - | `KOYEB_SIN` | Singapore | 198 - | `KOYEB_TYO` | Tokyo | 199 - | `KOYEB_WAS` | Washington | 197 + | `KOYEB_SIN` | Singapore | 198 + | `KOYEB_TYO` | Tokyo | 199 + | `KOYEB_WAS` | Washington | 200 200 201 201 ### Railway Regions (4) 202 202 203 - | Enum Value | Location | 204 - |------------|----------| 205 - | `RAILWAY_US_WEST2` | US West | 206 - | `RAILWAY_US_EAST4` | US East | 207 - | `RAILWAY_EUROPE_WEST4` | Europe West | 203 + | Enum Value | Location | 204 + | ------------------------- | -------------- | 205 + | `RAILWAY_US_WEST2` | US West | 206 + | `RAILWAY_US_EAST4` | US East | 207 + | `RAILWAY_EUROPE_WEST4` | Europe West | 208 208 | `RAILWAY_ASIA_SOUTHEAST1` | Asia Southeast | 209 209 210 210 ## Assertions ··· 253 253 254 254 ### DNS Record Assertions 255 255 256 - Validate DNS records using `RecordComparator`. Supported record types: `A`, `AAAA`, `CNAME`, `MX`, `TXT`. 256 + Validate DNS records using `RecordComparator`. Supported record types: `A`, 257 + `AAAA`, `CNAME`, `MX`, `TXT`. 257 258 258 259 ```typescript 259 260 import { RecordComparator } from "@openstatus/sdk-node"; ··· 281 282 - `HTTPMonitor`, `Headers`, `OpenTelemetryConfig` — HTTP monitor configuration 282 283 - `TCPMonitor` — TCP monitor configuration 283 284 - `DNSMonitor` — DNS monitor configuration 284 - - `StatusCodeAssertion`, `BodyAssertion`, `HeaderAssertion`, `RecordAssertion` — assertion types 285 + - `StatusCodeAssertion`, `BodyAssertion`, `HeaderAssertion`, `RecordAssertion` — 286 + assertion types 285 287 - `CreateHTTPMonitorRequest`, `CreateHTTPMonitorResponse` — HTTP monitor CRUD 286 288 - `CreateTCPMonitorRequest`, `CreateTCPMonitorResponse` — TCP monitor CRUD 287 289 - `CreateDNSMonitorRequest`, `CreateDNSMonitorResponse` — DNS monitor CRUD ··· 301 303 - `MonitorStatus` — active / degraded / error 302 304 - `HTTPMethod` — HTTP methods 303 305 - `TimeRange` — metrics time range 304 - - `NumberComparator`, `StringComparator`, `RecordComparator` — assertion comparators 306 + - `NumberComparator`, `StringComparator`, `RecordComparator` — assertion 307 + comparators 305 308 306 309 ### Health Types 307 310 ··· 356 359 357 360 - `Notification`, `NotificationSummary` 358 361 - `NotificationData` 359 - - `DiscordData`, `EmailData`, `GoogleChatData`, `GrafanaOncallData`, `NtfyData`, `OpsgenieData`, `PagerDutyData`, `SlackData`, `SmsData`, `TelegramData`, `WebhookData`, `WebhookHeader`, `WhatsappData` 362 + - `DiscordData`, `EmailData`, `GoogleChatData`, `GrafanaOncallData`, `NtfyData`, 363 + `OpsgenieData`, `PagerDutyData`, `SlackData`, `SmsData`, `TelegramData`, 364 + `WebhookData`, `WebhookHeader`, `WhatsappData` 360 365 - `CreateNotificationRequest`, `CreateNotificationResponse` 361 366 - `GetNotificationRequest`, `GetNotificationResponse` 362 367 - `ListNotificationsRequest`, `ListNotificationsResponse`
+6 -3
docs/status-page-service.md
··· 2 2 3 3 # Status Page Service 4 4 5 - Manage status pages, components, component groups, and subscribers. The Status Page Service provides 17 RPC methods. 5 + Manage status pages, components, component groups, and subscribers. The Status 6 + Page Service provides 17 RPC methods. 6 7 7 8 ## Status Page CRUD 8 9 ··· 57 58 58 59 ## Components 59 60 60 - Components represent individual services on a status page. They can be linked to a monitor (automatically reflects monitor status) or static (manually managed). 61 + Components represent individual services on a status page. They can be linked to 62 + a monitor (automatically reflects monitor status) or static (manually managed). 61 63 62 64 ### Add Monitor Component 63 65 ··· 185 187 186 188 ## Get Status Page Content 187 189 188 - Get the full content of a status page including components, groups, active status reports, and maintenance windows. Identify the page by ID or slug. 190 + Get the full content of a status page including components, groups, active 191 + status reports, and maintenance windows. Identify the page by ID or slug. 189 192 190 193 ```typescript 191 194 const content = await client.statusPage.v1.StatusPageService
+7 -2
docs/status-report-service.md
··· 2 2 3 3 # Status Report Service 4 4 5 - Manage incident reports with update timelines. The Status Report Service provides 6 RPC methods. 5 + Manage incident reports with update timelines. The Status Report Service 6 + provides 6 RPC methods. 6 7 7 8 ## Create Status Report 8 9 ··· 80 81 console.log(`Status: ${StatusReportStatus[statusReport?.status ?? 0]}`); 81 82 82 83 for (const update of statusReport?.updates ?? []) { 83 - console.log(` ${update.date}: [${StatusReportStatus[update.status]}] ${update.message}`); 84 + console.log( 85 + ` ${update.date}: [${ 86 + StatusReportStatus[update.status] 87 + }] ${update.message}`, 88 + ); 84 89 } 85 90 ``` 86 91
+20 -8
docs/typescript-tips.md
··· 8 8 9 9 - **Monitor configuration**: `timeout`, `retry`, `degradedAt` 10 10 - **Assertions**: `StatusCodeAssertion.target` 11 - - **Monitor summary**: `totalSuccessful`, `totalDegraded`, `totalFailed`, `p50`, `p75`, `p90`, `p95`, `p99` 11 + - **Monitor summary**: `totalSuccessful`, `totalDegraded`, `totalFailed`, `p50`, 12 + `p75`, `p90`, `p95`, `p99` 12 13 13 14 Use `BigInt()` to create values: 14 15 ··· 19 20 url: "https://example.com", 20 21 periodicity: Periodicity.PERIODICITY_1M, 21 22 active: true, 22 - timeout: BigInt(30000), // 30 seconds 23 - retry: BigInt(5), // 5 retries 24 - degradedAt: BigInt(3000), // degraded after 3s 23 + timeout: BigInt(30000), // 30 seconds 24 + retry: BigInt(5), // 5 retries 25 + degradedAt: BigInt(3000), // degraded after 3s 25 26 statusCodeAssertions: [ 26 27 { comparator: NumberComparator.EQUAL, target: BigInt(200) }, 27 28 ], ··· 40 41 41 42 // bigint values — use Number() for display if values are safe 42 43 console.log(`P95 latency: ${summary.p95}ms`); 43 - console.log(`Total checks: ${summary.totalSuccessful + summary.totalDegraded + summary.totalFailed}`); 44 + console.log( 45 + `Total checks: ${ 46 + summary.totalSuccessful + summary.totalDegraded + summary.totalFailed 47 + }`, 48 + ); 44 49 ``` 45 50 46 51 ## Handling oneof Types 47 52 48 - Several responses use protobuf `oneof` fields, which map to discriminated unions in TypeScript. 53 + Several responses use protobuf `oneof` fields, which map to discriminated unions 54 + in TypeScript. 49 55 50 56 ### MonitorConfig (getMonitor) 51 57 ··· 89 95 90 96 ### Status Page Identifiers 91 97 92 - `getStatusPageContent` and `getOverallStatus` accept a page identifier by ID or slug: 98 + `getStatusPageContent` and `getOverallStatus` accept a page identifier by ID or 99 + slug: 93 100 94 101 ```typescript 95 102 // By ID ··· 125 132 126 133 const { monitor } = await openstatus.monitor.v1.MonitorService 127 134 .createHTTPMonitor({ 128 - monitor: { name: "API", url: "https://example.com", periodicity: 2, active: true }, 135 + monitor: { 136 + name: "API", 137 + url: "https://example.com", 138 + periodicity: 2, 139 + active: true, 140 + }, 129 141 }, { headers }); 130 142 ``` 131 143
+1 -1
scripts/build_npm.ts
··· 12 12 package: { 13 13 // package.json properties 14 14 name: "@openstatus/sdk-node", 15 - version: "0.1.4", 15 + version: "0.1.5", 16 16 description: "SDK for openstatus.", 17 17 license: "MIT", 18 18 repository: {
+62
src/gen/gnostic/openapi/v3/annotations_pb.ts
··· 1 + // Copyright 2022 Google LLC. All Rights Reserved. 2 + // 3 + // Licensed under the Apache License, Version 2.0 (the "License"); 4 + // you may not use this file except in compliance with the License. 5 + // You may obtain a copy of the License at 6 + // 7 + // http://www.apache.org/licenses/LICENSE-2.0 8 + // 9 + // Unless required by applicable law or agreed to in writing, software 10 + // distributed under the License is distributed on an "AS IS" BASIS, 11 + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 + // See the License for the specific language governing permissions and 13 + // limitations under the License. 14 + 15 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 16 + // @generated from file gnostic/openapi/v3/annotations.proto (package gnostic.openapi.v3, syntax proto3) 17 + /* eslint-disable */ 18 + 19 + import type { GenExtension, GenFile } from "@bufbuild/protobuf/codegenv2"; 20 + import { extDesc, fileDesc } from "@bufbuild/protobuf/codegenv2"; 21 + import type { Document, Operation, Schema } from "./openapiv3_pb.ts"; 22 + import { file_gnostic_openapi_v3_openapiv3 } from "./openapiv3_pb.ts"; 23 + import type { 24 + FieldOptions, 25 + FileOptions, 26 + MessageOptions, 27 + MethodOptions, 28 + } from "@bufbuild/protobuf/wkt"; 29 + import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt"; 30 + 31 + /** 32 + * Describes the file gnostic/openapi/v3/annotations.proto. 33 + */ 34 + export const file_gnostic_openapi_v3_annotations: GenFile = /*@__PURE__*/ 35 + fileDesc( 36 + "CiRnbm9zdGljL29wZW5hcGkvdjMvYW5ub3RhdGlvbnMucHJvdG8SEmdub3N0aWMub3BlbmFwaS52MzpXCghkb2N1bWVudBIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxj3CCABKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuRG9jdW1lbnRSCGRvY3VtZW50OlwKCW9wZXJhdGlvbhIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGPcIIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5PcGVyYXRpb25SCW9wZXJhdGlvbjpUCgZzY2hlbWESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY9wggASgLMhouZ25vc3RpYy5vcGVuYXBpLnYzLlNjaGVtYVIGc2NoZW1hOlYKCHByb3BlcnR5Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxj3CCABKAsyGi5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hUghwcm9wZXJ0eUJaCg5vcmcub3BlbmFwaV92M0IQQW5ub3RhdGlvbnNQcm90b1ABWi5naXRodWIuY29tL2dvb2dsZS9nbm9zdGljL29wZW5hcGl2MztvcGVuYXBpX3YzogIDT0FTYgZwcm90bzM", 37 + [file_gnostic_openapi_v3_openapiv3, file_google_protobuf_descriptor], 38 + ); 39 + 40 + /** 41 + * @generated from extension: gnostic.openapi.v3.Document document = 1143; 42 + */ 43 + export const document: GenExtension<FileOptions, Document> = /*@__PURE__*/ 44 + extDesc(file_gnostic_openapi_v3_annotations, 0); 45 + 46 + /** 47 + * @generated from extension: gnostic.openapi.v3.Operation operation = 1143; 48 + */ 49 + export const operation: GenExtension<MethodOptions, Operation> = /*@__PURE__*/ 50 + extDesc(file_gnostic_openapi_v3_annotations, 1); 51 + 52 + /** 53 + * @generated from extension: gnostic.openapi.v3.Schema schema = 1143; 54 + */ 55 + export const schema: GenExtension<MessageOptions, Schema> = /*@__PURE__*/ 56 + extDesc(file_gnostic_openapi_v3_annotations, 2); 57 + 58 + /** 59 + * @generated from extension: gnostic.openapi.v3.Schema property = 1143; 60 + */ 61 + export const property: GenExtension<FieldOptions, Schema> = /*@__PURE__*/ 62 + extDesc(file_gnostic_openapi_v3_annotations, 3);
+2786
src/gen/gnostic/openapi/v3/openapiv3_pb.ts
··· 1 + // Copyright 2020 Google LLC. All Rights Reserved. 2 + // 3 + // Licensed under the Apache License, Version 2.0 (the "License"); 4 + // you may not use this file except in compliance with the License. 5 + // You may obtain a copy of the License at 6 + // 7 + // http://www.apache.org/licenses/LICENSE-2.0 8 + // 9 + // Unless required by applicable law or agreed to in writing, software 10 + // distributed under the License is distributed on an "AS IS" BASIS, 11 + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 + // See the License for the specific language governing permissions and 13 + // limitations under the License. 14 + 15 + // THIS FILE IS AUTOMATICALLY GENERATED. 16 + 17 + // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,import_extension=ts" 18 + // @generated from file gnostic/openapi/v3/openapiv3.proto (package gnostic.openapi.v3, syntax proto3) 19 + /* eslint-disable */ 20 + 21 + import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"; 22 + import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 23 + import type { Any as Any$1 } from "@bufbuild/protobuf/wkt"; 24 + import { file_google_protobuf_any } from "@bufbuild/protobuf/wkt"; 25 + import type { Message } from "@bufbuild/protobuf"; 26 + 27 + /** 28 + * Describes the file gnostic/openapi/v3/openapiv3.proto. 29 + */ 30 + export const file_gnostic_openapi_v3_openapiv3: GenFile = /*@__PURE__*/ 31 + fileDesc( 32 + "CiJnbm9zdGljL29wZW5hcGkvdjMvb3BlbmFwaXYzLnByb3RvEhJnbm9zdGljLm9wZW5hcGkudjMifAoYQWRkaXRpb25hbFByb3BlcnRpZXNJdGVtEkQKE3NjaGVtYV9vcl9yZWZlcmVuY2UYASABKAsyJS5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hT3JSZWZlcmVuY2VIABIRCgdib29sZWFuGAIgASgISABCBwoFb25lb2YiOAoDQW55EiMKBXZhbHVlGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueRIMCgR5YW1sGAIgASgJIngKD0FueU9yRXhwcmVzc2lvbhImCgNhbnkYASABKAsyFy5nbm9zdGljLm9wZW5hcGkudjMuQW55SAASNAoKZXhwcmVzc2lvbhgCIAEoCzIeLmdub3N0aWMub3BlbmFwaS52My5FeHByZXNzaW9uSABCBwoFb25lb2YiegoIQ2FsbGJhY2sSLwoEcGF0aBgBIAMoCzIhLmdub3N0aWMub3BlbmFwaS52My5OYW1lZFBhdGhJdGVtEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAIgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IoQBChNDYWxsYmFja09yUmVmZXJlbmNlEjAKCGNhbGxiYWNrGAEgASgLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLkNhbGxiYWNrSAASMgoJcmVmZXJlbmNlGAIgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLlJlZmVyZW5jZUgAQgcKBW9uZW9mImQKFUNhbGxiYWNrc09yUmVmZXJlbmNlcxJLChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyLC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRDYWxsYmFja09yUmVmZXJlbmNlIv8ECgpDb21wb25lbnRzEjgKB3NjaGVtYXMYASABKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hc09yUmVmZXJlbmNlcxI8CglyZXNwb25zZXMYAiABKAsyKS5nbm9zdGljLm9wZW5hcGkudjMuUmVzcG9uc2VzT3JSZWZlcmVuY2VzEj4KCnBhcmFtZXRlcnMYAyABKAsyKi5nbm9zdGljLm9wZW5hcGkudjMuUGFyYW1ldGVyc09yUmVmZXJlbmNlcxI6CghleGFtcGxlcxgEIAEoCzIoLmdub3N0aWMub3BlbmFwaS52My5FeGFtcGxlc09yUmVmZXJlbmNlcxJFCg5yZXF1ZXN0X2JvZGllcxgFIAEoCzItLmdub3N0aWMub3BlbmFwaS52My5SZXF1ZXN0Qm9kaWVzT3JSZWZlcmVuY2VzEjgKB2hlYWRlcnMYBiABKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuSGVhZGVyc09yUmVmZXJlbmNlcxJJChBzZWN1cml0eV9zY2hlbWVzGAcgASgLMi8uZ25vc3RpYy5vcGVuYXBpLnYzLlNlY3VyaXR5U2NoZW1lc09yUmVmZXJlbmNlcxI0CgVsaW5rcxgIIAEoCzIlLmdub3N0aWMub3BlbmFwaS52My5MaW5rc09yUmVmZXJlbmNlcxI8CgljYWxsYmFja3MYCSABKAsyKS5nbm9zdGljLm9wZW5hcGkudjMuQ2FsbGJhY2tzT3JSZWZlcmVuY2VzEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAogAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55InIKB0NvbnRhY3QSDAoEbmFtZRgBIAEoCRILCgN1cmwYAiABKAkSDQoFZW1haWwYAyABKAkSPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YBCADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkiTQoLRGVmYXVsdFR5cGUSEAoGbnVtYmVyGAEgASgBSAASEQoHYm9vbGVhbhgCIAEoCEgAEhAKBnN0cmluZxgDIAEoCUgAQgcKBW9uZW9mIpMBCg1EaXNjcmltaW5hdG9yEhUKDXByb3BlcnR5X25hbWUYASABKAkSLAoHbWFwcGluZxgCIAEoCzIbLmdub3N0aWMub3BlbmFwaS52My5TdHJpbmdzEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAMgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IqgDCghEb2N1bWVudBIPCgdvcGVuYXBpGAEgASgJEiYKBGluZm8YAiABKAsyGC5nbm9zdGljLm9wZW5hcGkudjMuSW5mbxIrCgdzZXJ2ZXJzGAMgAygLMhouZ25vc3RpYy5vcGVuYXBpLnYzLlNlcnZlchIoCgVwYXRocxgEIAEoCzIZLmdub3N0aWMub3BlbmFwaS52My5QYXRocxIyCgpjb21wb25lbnRzGAUgASgLMh4uZ25vc3RpYy5vcGVuYXBpLnYzLkNvbXBvbmVudHMSOQoIc2VjdXJpdHkYBiADKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuU2VjdXJpdHlSZXF1aXJlbWVudBIlCgR0YWdzGAcgAygLMhcuZ25vc3RpYy5vcGVuYXBpLnYzLlRhZxI3Cg1leHRlcm5hbF9kb2NzGAggASgLMiAuZ25vc3RpYy5vcGVuYXBpLnYzLkV4dGVybmFsRG9jcxI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgJIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSLRAQoIRW5jb2RpbmcSFAoMY29udGVudF90eXBlGAEgASgJEjgKB2hlYWRlcnMYAiABKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuSGVhZGVyc09yUmVmZXJlbmNlcxINCgVzdHlsZRgDIAEoCRIPCgdleHBsb2RlGAQgASgIEhYKDmFsbG93X3Jlc2VydmVkGAUgASgIEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAYgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55Ik0KCUVuY29kaW5ncxJAChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyIS5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRFbmNvZGluZyKuAQoHRXhhbXBsZRIPCgdzdW1tYXJ5GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEiYKBXZhbHVlGAMgASgLMhcuZ25vc3RpYy5vcGVuYXBpLnYzLkFueRIWCg5leHRlcm5hbF92YWx1ZRgEIAEoCRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgFIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSKBAQoSRXhhbXBsZU9yUmVmZXJlbmNlEi4KB2V4YW1wbGUYASABKAsyGy5nbm9zdGljLm9wZW5hcGkudjMuRXhhbXBsZUgAEjIKCXJlZmVyZW5jZRgCIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5SZWZlcmVuY2VIAEIHCgVvbmVvZiJiChRFeGFtcGxlc09yUmVmZXJlbmNlcxJKChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyKy5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRFeGFtcGxlT3JSZWZlcmVuY2UiSQoKRXhwcmVzc2lvbhI7ChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkibwoMRXh0ZXJuYWxEb2NzEhMKC2Rlc2NyaXB0aW9uGAEgASgJEgsKA3VybBgCIAEoCRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgDIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSKjAwoGSGVhZGVyEhMKC2Rlc2NyaXB0aW9uGAEgASgJEhAKCHJlcXVpcmVkGAIgASgIEhIKCmRlcHJlY2F0ZWQYAyABKAgSGQoRYWxsb3dfZW1wdHlfdmFsdWUYBCABKAgSDQoFc3R5bGUYBSABKAkSDwoHZXhwbG9kZRgGIAEoCBIWCg5hbGxvd19yZXNlcnZlZBgHIAEoCBI1CgZzY2hlbWEYCCABKAsyJS5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hT3JSZWZlcmVuY2USKAoHZXhhbXBsZRgJIAEoCzIXLmdub3N0aWMub3BlbmFwaS52My5BbnkSOgoIZXhhbXBsZXMYCiABKAsyKC5nbm9zdGljLm9wZW5hcGkudjMuRXhhbXBsZXNPclJlZmVyZW5jZXMSLwoHY29udGVudBgLIAEoCzIeLmdub3N0aWMub3BlbmFwaS52My5NZWRpYVR5cGVzEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAwgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55In4KEUhlYWRlck9yUmVmZXJlbmNlEiwKBmhlYWRlchgBIAEoCzIaLmdub3N0aWMub3BlbmFwaS52My5IZWFkZXJIABIyCglyZWZlcmVuY2UYAiABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuUmVmZXJlbmNlSABCBwoFb25lb2YiYAoTSGVhZGVyc09yUmVmZXJlbmNlcxJJChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyKi5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRIZWFkZXJPclJlZmVyZW5jZSKBAgoESW5mbxINCgV0aXRsZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIYChB0ZXJtc19vZl9zZXJ2aWNlGAMgASgJEiwKB2NvbnRhY3QYBCABKAsyGy5nbm9zdGljLm9wZW5hcGkudjMuQ29udGFjdBIsCgdsaWNlbnNlGAUgASgLMhsuZ25vc3RpYy5vcGVuYXBpLnYzLkxpY2Vuc2USDwoHdmVyc2lvbhgGIAEoCRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgHIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueRIPCgdzdW1tYXJ5GAggASgJIk8KCUl0ZW1zSXRlbRJCChNzY2hlbWFfb3JfcmVmZXJlbmNlGAEgAygLMiUuZ25vc3RpYy5vcGVuYXBpLnYzLlNjaGVtYU9yUmVmZXJlbmNlImMKB0xpY2Vuc2USDAoEbmFtZRgBIAEoCRILCgN1cmwYAiABKAkSPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YAyADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkipwIKBExpbmsSFQoNb3BlcmF0aW9uX3JlZhgBIAEoCRIUCgxvcGVyYXRpb25faWQYAiABKAkSNwoKcGFyYW1ldGVycxgDIAEoCzIjLmdub3N0aWMub3BlbmFwaS52My5BbnlPckV4cHJlc3Npb24SOQoMcmVxdWVzdF9ib2R5GAQgASgLMiMuZ25vc3RpYy5vcGVuYXBpLnYzLkFueU9yRXhwcmVzc2lvbhITCgtkZXNjcmlwdGlvbhgFIAEoCRIqCgZzZXJ2ZXIYBiABKAsyGi5nbm9zdGljLm9wZW5hcGkudjMuU2VydmVyEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAcgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IngKD0xpbmtPclJlZmVyZW5jZRIoCgRsaW5rGAEgASgLMhguZ25vc3RpYy5vcGVuYXBpLnYzLkxpbmtIABIyCglyZWZlcmVuY2UYAiABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuUmVmZXJlbmNlSABCBwoFb25lb2YiXAoRTGlua3NPclJlZmVyZW5jZXMSRwoVYWRkaXRpb25hbF9wcm9wZXJ0aWVzGAEgAygLMiguZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkTGlua09yUmVmZXJlbmNlIpgCCglNZWRpYVR5cGUSNQoGc2NoZW1hGAEgASgLMiUuZ25vc3RpYy5vcGVuYXBpLnYzLlNjaGVtYU9yUmVmZXJlbmNlEigKB2V4YW1wbGUYAiABKAsyFy5nbm9zdGljLm9wZW5hcGkudjMuQW55EjoKCGV4YW1wbGVzGAMgASgLMiguZ25vc3RpYy5vcGVuYXBpLnYzLkV4YW1wbGVzT3JSZWZlcmVuY2VzEi8KCGVuY29kaW5nGAQgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLkVuY29kaW5ncxI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgFIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSJPCgpNZWRpYVR5cGVzEkEKFWFkZGl0aW9uYWxfcHJvcGVydGllcxgBIAMoCzIiLmdub3N0aWMub3BlbmFwaS52My5OYW1lZE1lZGlhVHlwZSJACghOYW1lZEFueRIMCgRuYW1lGAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ25vc3RpYy5vcGVuYXBpLnYzLkFueSJgChhOYW1lZENhbGxiYWNrT3JSZWZlcmVuY2USDAoEbmFtZRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLmdub3N0aWMub3BlbmFwaS52My5DYWxsYmFja09yUmVmZXJlbmNlIkoKDU5hbWVkRW5jb2RpbmcSDAoEbmFtZRgBIAEoCRIrCgV2YWx1ZRgCIAEoCzIcLmdub3N0aWMub3BlbmFwaS52My5FbmNvZGluZyJeChdOYW1lZEV4YW1wbGVPclJlZmVyZW5jZRIMCgRuYW1lGAEgASgJEjUKBXZhbHVlGAIgASgLMiYuZ25vc3RpYy5vcGVuYXBpLnYzLkV4YW1wbGVPclJlZmVyZW5jZSJcChZOYW1lZEhlYWRlck9yUmVmZXJlbmNlEgwKBG5hbWUYASABKAkSNAoFdmFsdWUYAiABKAsyJS5nbm9zdGljLm9wZW5hcGkudjMuSGVhZGVyT3JSZWZlcmVuY2UiWAoUTmFtZWRMaW5rT3JSZWZlcmVuY2USDAoEbmFtZRgBIAEoCRIyCgV2YWx1ZRgCIAEoCzIjLmdub3N0aWMub3BlbmFwaS52My5MaW5rT3JSZWZlcmVuY2UiTAoOTmFtZWRNZWRpYVR5cGUSDAoEbmFtZRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5NZWRpYVR5cGUiYgoZTmFtZWRQYXJhbWV0ZXJPclJlZmVyZW5jZRIMCgRuYW1lGAEgASgJEjcKBXZhbHVlGAIgASgLMiguZ25vc3RpYy5vcGVuYXBpLnYzLlBhcmFtZXRlck9yUmVmZXJlbmNlIkoKDU5hbWVkUGF0aEl0ZW0SDAoEbmFtZRgBIAEoCRIrCgV2YWx1ZRgCIAEoCzIcLmdub3N0aWMub3BlbmFwaS52My5QYXRoSXRlbSJmChtOYW1lZFJlcXVlc3RCb2R5T3JSZWZlcmVuY2USDAoEbmFtZRgBIAEoCRI5CgV2YWx1ZRgCIAEoCzIqLmdub3N0aWMub3BlbmFwaS52My5SZXF1ZXN0Qm9keU9yUmVmZXJlbmNlImAKGE5hbWVkUmVzcG9uc2VPclJlZmVyZW5jZRIMCgRuYW1lGAEgASgJEjYKBXZhbHVlGAIgASgLMicuZ25vc3RpYy5vcGVuYXBpLnYzLlJlc3BvbnNlT3JSZWZlcmVuY2UiXAoWTmFtZWRTY2hlbWFPclJlZmVyZW5jZRIMCgRuYW1lGAEgASgJEjQKBXZhbHVlGAIgASgLMiUuZ25vc3RpYy5vcGVuYXBpLnYzLlNjaGVtYU9yUmVmZXJlbmNlImwKHk5hbWVkU2VjdXJpdHlTY2hlbWVPclJlZmVyZW5jZRIMCgRuYW1lGAEgASgJEjwKBXZhbHVlGAIgASgLMi0uZ25vc3RpYy5vcGVuYXBpLnYzLlNlY3VyaXR5U2NoZW1lT3JSZWZlcmVuY2UiVgoTTmFtZWRTZXJ2ZXJWYXJpYWJsZRIMCgRuYW1lGAEgASgJEjEKBXZhbHVlGAIgASgLMiIuZ25vc3RpYy5vcGVuYXBpLnYzLlNlcnZlclZhcmlhYmxlIioKC05hbWVkU3RyaW5nEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkiUAoQTmFtZWRTdHJpbmdBcnJheRIMCgRuYW1lGAEgASgJEi4KBXZhbHVlGAIgASgLMh8uZ25vc3RpYy5vcGVuYXBpLnYzLlN0cmluZ0FycmF5IroBCglPYXV0aEZsb3cSGQoRYXV0aG9yaXphdGlvbl91cmwYASABKAkSEQoJdG9rZW5fdXJsGAIgASgJEhMKC3JlZnJlc2hfdXJsGAMgASgJEisKBnNjb3BlcxgEIAEoCzIbLmdub3N0aWMub3BlbmFwaS52My5TdHJpbmdzEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAUgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IqMCCgpPYXV0aEZsb3dzEi8KCGltcGxpY2l0GAEgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLk9hdXRoRmxvdxIvCghwYXNzd29yZBgCIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5PYXV0aEZsb3cSOQoSY2xpZW50X2NyZWRlbnRpYWxzGAMgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLk9hdXRoRmxvdxI5ChJhdXRob3JpemF0aW9uX2NvZGUYBCABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuT2F1dGhGbG93Ej0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAUgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IkUKBk9iamVjdBI7ChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkiuQQKCU9wZXJhdGlvbhIMCgR0YWdzGAEgAygJEg8KB3N1bW1hcnkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNwoNZXh0ZXJuYWxfZG9jcxgEIAEoCzIgLmdub3N0aWMub3BlbmFwaS52My5FeHRlcm5hbERvY3MSFAoMb3BlcmF0aW9uX2lkGAUgASgJEjwKCnBhcmFtZXRlcnMYBiADKAsyKC5nbm9zdGljLm9wZW5hcGkudjMuUGFyYW1ldGVyT3JSZWZlcmVuY2USQAoMcmVxdWVzdF9ib2R5GAcgASgLMiouZ25vc3RpYy5vcGVuYXBpLnYzLlJlcXVlc3RCb2R5T3JSZWZlcmVuY2USMAoJcmVzcG9uc2VzGAggASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLlJlc3BvbnNlcxI8CgljYWxsYmFja3MYCSABKAsyKS5nbm9zdGljLm9wZW5hcGkudjMuQ2FsbGJhY2tzT3JSZWZlcmVuY2VzEhIKCmRlcHJlY2F0ZWQYCiABKAgSOQoIc2VjdXJpdHkYCyADKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuU2VjdXJpdHlSZXF1aXJlbWVudBIrCgdzZXJ2ZXJzGAwgAygLMhouZ25vc3RpYy5vcGVuYXBpLnYzLlNlcnZlchI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgNIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSLAAwoJUGFyYW1ldGVyEgwKBG5hbWUYASABKAkSCgoCaW4YAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKZGVwcmVjYXRlZBgFIAEoCBIZChFhbGxvd19lbXB0eV92YWx1ZRgGIAEoCBINCgVzdHlsZRgHIAEoCRIPCgdleHBsb2RlGAggASgIEhYKDmFsbG93X3Jlc2VydmVkGAkgASgIEjUKBnNjaGVtYRgKIAEoCzIlLmdub3N0aWMub3BlbmFwaS52My5TY2hlbWFPclJlZmVyZW5jZRIoCgdleGFtcGxlGAsgASgLMhcuZ25vc3RpYy5vcGVuYXBpLnYzLkFueRI6CghleGFtcGxlcxgMIAEoCzIoLmdub3N0aWMub3BlbmFwaS52My5FeGFtcGxlc09yUmVmZXJlbmNlcxIvCgdjb250ZW50GA0gASgLMh4uZ25vc3RpYy5vcGVuYXBpLnYzLk1lZGlhVHlwZXMSPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YDiADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkihwEKFFBhcmFtZXRlck9yUmVmZXJlbmNlEjIKCXBhcmFtZXRlchgBIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5QYXJhbWV0ZXJIABIyCglyZWZlcmVuY2UYAiABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuUmVmZXJlbmNlSABCBwoFb25lb2YiZgoWUGFyYW1ldGVyc09yUmVmZXJlbmNlcxJMChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyLS5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRQYXJhbWV0ZXJPclJlZmVyZW5jZSLVBAoIUGF0aEl0ZW0SDAoEX3JlZhgBIAEoCRIPCgdzdW1tYXJ5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEioKA2dldBgEIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5PcGVyYXRpb24SKgoDcHV0GAUgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLk9wZXJhdGlvbhIrCgRwb3N0GAYgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLk9wZXJhdGlvbhItCgZkZWxldGUYByABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuT3BlcmF0aW9uEi4KB29wdGlvbnMYCCABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuT3BlcmF0aW9uEisKBGhlYWQYCSABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuT3BlcmF0aW9uEiwKBXBhdGNoGAogASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLk9wZXJhdGlvbhIsCgV0cmFjZRgLIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5PcGVyYXRpb24SKwoHc2VydmVycxgMIAMoCzIaLmdub3N0aWMub3BlbmFwaS52My5TZXJ2ZXISPAoKcGFyYW1ldGVycxgNIAMoCzIoLmdub3N0aWMub3BlbmFwaS52My5QYXJhbWV0ZXJPclJlZmVyZW5jZRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgOIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSJ3CgVQYXRocxIvCgRwYXRoGAEgAygLMiEuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkUGF0aEl0ZW0SPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YAiADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkiVwoKUHJvcGVydGllcxJJChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyKi5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRTY2hlbWFPclJlZmVyZW5jZSI/CglSZWZlcmVuY2USDAoEX3JlZhgBIAEoCRIPCgdzdW1tYXJ5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJImsKGVJlcXVlc3RCb2RpZXNPclJlZmVyZW5jZXMSTgoVYWRkaXRpb25hbF9wcm9wZXJ0aWVzGAEgAygLMi8uZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkUmVxdWVzdEJvZHlPclJlZmVyZW5jZSKkAQoLUmVxdWVzdEJvZHkSEwoLZGVzY3JpcHRpb24YASABKAkSLwoHY29udGVudBgCIAEoCzIeLmdub3N0aWMub3BlbmFwaS52My5NZWRpYVR5cGVzEhAKCHJlcXVpcmVkGAMgASgIEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAQgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55Io4BChZSZXF1ZXN0Qm9keU9yUmVmZXJlbmNlEjcKDHJlcXVlc3RfYm9keRgBIAEoCzIfLmdub3N0aWMub3BlbmFwaS52My5SZXF1ZXN0Qm9keUgAEjIKCXJlZmVyZW5jZRgCIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5SZWZlcmVuY2VIAEIHCgVvbmVvZiL/AQoIUmVzcG9uc2USEwoLZGVzY3JpcHRpb24YASABKAkSOAoHaGVhZGVycxgCIAEoCzInLmdub3N0aWMub3BlbmFwaS52My5IZWFkZXJzT3JSZWZlcmVuY2VzEi8KB2NvbnRlbnQYAyABKAsyHi5nbm9zdGljLm9wZW5hcGkudjMuTWVkaWFUeXBlcxI0CgVsaW5rcxgEIAEoCzIlLmdub3N0aWMub3BlbmFwaS52My5MaW5rc09yUmVmZXJlbmNlcxI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgFIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSKEAQoTUmVzcG9uc2VPclJlZmVyZW5jZRIwCghyZXNwb25zZRgBIAEoCzIcLmdub3N0aWMub3BlbmFwaS52My5SZXNwb25zZUgAEjIKCXJlZmVyZW5jZRgCIAEoCzIdLmdub3N0aWMub3BlbmFwaS52My5SZWZlcmVuY2VIAEIHCgVvbmVvZiLRAQoJUmVzcG9uc2VzEjgKB2RlZmF1bHQYASABKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuUmVzcG9uc2VPclJlZmVyZW5jZRJLChVyZXNwb25zZV9vcl9yZWZlcmVuY2UYAiADKAsyLC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRSZXNwb25zZU9yUmVmZXJlbmNlEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAMgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55ImQKFVJlc3BvbnNlc09yUmVmZXJlbmNlcxJLChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyLC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRSZXNwb25zZU9yUmVmZXJlbmNlIpMJCgZTY2hlbWESEAoIbnVsbGFibGUYASABKAgSOAoNZGlzY3JpbWluYXRvchgCIAEoCzIhLmdub3N0aWMub3BlbmFwaS52My5EaXNjcmltaW5hdG9yEhEKCXJlYWRfb25seRgDIAEoCBISCgp3cml0ZV9vbmx5GAQgASgIEiQKA3htbBgFIAEoCzIXLmdub3N0aWMub3BlbmFwaS52My5YbWwSNwoNZXh0ZXJuYWxfZG9jcxgGIAEoCzIgLmdub3N0aWMub3BlbmFwaS52My5FeHRlcm5hbERvY3MSKAoHZXhhbXBsZRgHIAEoCzIXLmdub3N0aWMub3BlbmFwaS52My5BbnkSEgoKZGVwcmVjYXRlZBgIIAEoCBINCgV0aXRsZRgJIAEoCRITCgttdWx0aXBsZV9vZhgKIAEoARIPCgdtYXhpbXVtGAsgASgBEhkKEWV4Y2x1c2l2ZV9tYXhpbXVtGAwgASgIEg8KB21pbmltdW0YDSABKAESGQoRZXhjbHVzaXZlX21pbmltdW0YDiABKAgSEgoKbWF4X2xlbmd0aBgPIAEoAxISCgptaW5fbGVuZ3RoGBAgASgDEg8KB3BhdHRlcm4YESABKAkSEQoJbWF4X2l0ZW1zGBIgASgDEhEKCW1pbl9pdGVtcxgTIAEoAxIUCgx1bmlxdWVfaXRlbXMYFCABKAgSFgoObWF4X3Byb3BlcnRpZXMYFSABKAMSFgoObWluX3Byb3BlcnRpZXMYFiABKAMSEAoIcmVxdWlyZWQYFyADKAkSJQoEZW51bRgYIAMoCzIXLmdub3N0aWMub3BlbmFwaS52My5BbnkSDAoEdHlwZRgZIAEoCRI1CgZhbGxfb2YYGiADKAsyJS5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hT3JSZWZlcmVuY2USNQoGb25lX29mGBsgAygLMiUuZ25vc3RpYy5vcGVuYXBpLnYzLlNjaGVtYU9yUmVmZXJlbmNlEjUKBmFueV9vZhgcIAMoCzIlLmdub3N0aWMub3BlbmFwaS52My5TY2hlbWFPclJlZmVyZW5jZRInCgNub3QYHSABKAsyGi5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hEiwKBWl0ZW1zGB4gASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLkl0ZW1zSXRlbRIyCgpwcm9wZXJ0aWVzGB8gASgLMh4uZ25vc3RpYy5vcGVuYXBpLnYzLlByb3BlcnRpZXMSSwoVYWRkaXRpb25hbF9wcm9wZXJ0aWVzGCAgASgLMiwuZ25vc3RpYy5vcGVuYXBpLnYzLkFkZGl0aW9uYWxQcm9wZXJ0aWVzSXRlbRIwCgdkZWZhdWx0GCEgASgLMh8uZ25vc3RpYy5vcGVuYXBpLnYzLkRlZmF1bHRUeXBlEhMKC2Rlc2NyaXB0aW9uGCIgASgJEg4KBmZvcm1hdBgjIAEoCRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgkIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSJ+ChFTY2hlbWFPclJlZmVyZW5jZRIsCgZzY2hlbWEYASABKAsyGi5nbm9zdGljLm9wZW5hcGkudjMuU2NoZW1hSAASMgoJcmVmZXJlbmNlGAIgASgLMh0uZ25vc3RpYy5vcGVuYXBpLnYzLlJlZmVyZW5jZUgAQgcKBW9uZW9mImAKE1NjaGVtYXNPclJlZmVyZW5jZXMSSQoVYWRkaXRpb25hbF9wcm9wZXJ0aWVzGAEgAygLMiouZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkU2NoZW1hT3JSZWZlcmVuY2UiWgoTU2VjdXJpdHlSZXF1aXJlbWVudBJDChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyJC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRTdHJpbmdBcnJheSL/AQoOU2VjdXJpdHlTY2hlbWUSDAoEdHlwZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIMCgRuYW1lGAMgASgJEgoKAmluGAQgASgJEg4KBnNjaGVtZRgFIAEoCRIVCg1iZWFyZXJfZm9ybWF0GAYgASgJEi0KBWZsb3dzGAcgASgLMh4uZ25vc3RpYy5vcGVuYXBpLnYzLk9hdXRoRmxvd3MSGwoTb3Blbl9pZF9jb25uZWN0X3VybBgIIAEoCRI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgJIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSKXAQoZU2VjdXJpdHlTY2hlbWVPclJlZmVyZW5jZRI9Cg9zZWN1cml0eV9zY2hlbWUYASABKAsyIi5nbm9zdGljLm9wZW5hcGkudjMuU2VjdXJpdHlTY2hlbWVIABIyCglyZWZlcmVuY2UYAiABKAsyHS5nbm9zdGljLm9wZW5hcGkudjMuUmVmZXJlbmNlSABCBwoFb25lb2YicAobU2VjdXJpdHlTY2hlbWVzT3JSZWZlcmVuY2VzElEKFWFkZGl0aW9uYWxfcHJvcGVydGllcxgBIAMoCzIyLmdub3N0aWMub3BlbmFwaS52My5OYW1lZFNlY3VyaXR5U2NoZW1lT3JSZWZlcmVuY2UioQEKBlNlcnZlchILCgN1cmwYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSNgoJdmFyaWFibGVzGAMgASgLMiMuZ25vc3RpYy5vcGVuYXBpLnYzLlNlcnZlclZhcmlhYmxlcxI9ChdzcGVjaWZpY2F0aW9uX2V4dGVuc2lvbhgEIAMoCzIcLmdub3N0aWMub3BlbmFwaS52My5OYW1lZEFueSKDAQoOU2VydmVyVmFyaWFibGUSDAoEZW51bRgBIAMoCRIPCgdkZWZhdWx0GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEj0KF3NwZWNpZmljYXRpb25fZXh0ZW5zaW9uGAQgAygLMhwuZ25vc3RpYy5vcGVuYXBpLnYzLk5hbWVkQW55IlkKD1NlcnZlclZhcmlhYmxlcxJGChVhZGRpdGlvbmFsX3Byb3BlcnRpZXMYASADKAsyJy5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRTZXJ2ZXJWYXJpYWJsZSJYChZTcGVjaWZpY2F0aW9uRXh0ZW5zaW9uEhAKBm51bWJlchgBIAEoAUgAEhEKB2Jvb2xlYW4YAiABKAhIABIQCgZzdHJpbmcYAyABKAlIAEIHCgVvbmVvZiIcCgtTdHJpbmdBcnJheRINCgV2YWx1ZRgBIAMoCSJJCgdTdHJpbmdzEj4KFWFkZGl0aW9uYWxfcHJvcGVydGllcxgBIAMoCzIfLmdub3N0aWMub3BlbmFwaS52My5OYW1lZFN0cmluZyKgAQoDVGFnEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSNwoNZXh0ZXJuYWxfZG9jcxgDIAEoCzIgLmdub3N0aWMub3BlbmFwaS52My5FeHRlcm5hbERvY3MSPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YBCADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnkimQEKA1htbBIMCgRuYW1lGAEgASgJEhEKCW5hbWVzcGFjZRgCIAEoCRIOCgZwcmVmaXgYAyABKAkSEQoJYXR0cmlidXRlGAQgASgIEg8KB3dyYXBwZWQYBSABKAgSPQoXc3BlY2lmaWNhdGlvbl9leHRlbnNpb24YBiADKAsyHC5nbm9zdGljLm9wZW5hcGkudjMuTmFtZWRBbnlCVgoOb3JnLm9wZW5hcGlfdjNCDE9wZW5BUElQcm90b1ABWi5naXRodWIuY29tL2dvb2dsZS9nbm9zdGljL29wZW5hcGl2MztvcGVuYXBpX3YzogIDT0FTYgZwcm90bzM", 33 + [file_google_protobuf_any], 34 + ); 35 + 36 + /** 37 + * @generated from message gnostic.openapi.v3.AdditionalPropertiesItem 38 + */ 39 + export type AdditionalPropertiesItem = 40 + & Message<"gnostic.openapi.v3.AdditionalPropertiesItem"> 41 + & { 42 + /** 43 + * @generated from oneof gnostic.openapi.v3.AdditionalPropertiesItem.oneof 44 + */ 45 + oneof: { 46 + /** 47 + * @generated from field: gnostic.openapi.v3.SchemaOrReference schema_or_reference = 1; 48 + */ 49 + value: SchemaOrReference; 50 + case: "schemaOrReference"; 51 + } | { 52 + /** 53 + * @generated from field: bool boolean = 2; 54 + */ 55 + value: boolean; 56 + case: "boolean"; 57 + } | { case: undefined; value?: undefined }; 58 + }; 59 + 60 + /** 61 + * Describes the message gnostic.openapi.v3.AdditionalPropertiesItem. 62 + * Use `create(AdditionalPropertiesItemSchema)` to create a new message. 63 + */ 64 + export const AdditionalPropertiesItemSchema: GenMessage< 65 + AdditionalPropertiesItem 66 + > = /*@__PURE__*/ 67 + messageDesc(file_gnostic_openapi_v3_openapiv3, 0); 68 + 69 + /** 70 + * @generated from message gnostic.openapi.v3.Any 71 + */ 72 + export type Any = Message<"gnostic.openapi.v3.Any"> & { 73 + /** 74 + * @generated from field: google.protobuf.Any value = 1; 75 + */ 76 + value?: Any$1; 77 + 78 + /** 79 + * @generated from field: string yaml = 2; 80 + */ 81 + yaml: string; 82 + }; 83 + 84 + /** 85 + * Describes the message gnostic.openapi.v3.Any. 86 + * Use `create(AnySchema)` to create a new message. 87 + */ 88 + export const AnySchema: GenMessage<Any> = /*@__PURE__*/ 89 + messageDesc(file_gnostic_openapi_v3_openapiv3, 1); 90 + 91 + /** 92 + * @generated from message gnostic.openapi.v3.AnyOrExpression 93 + */ 94 + export type AnyOrExpression = Message<"gnostic.openapi.v3.AnyOrExpression"> & { 95 + /** 96 + * @generated from oneof gnostic.openapi.v3.AnyOrExpression.oneof 97 + */ 98 + oneof: { 99 + /** 100 + * @generated from field: gnostic.openapi.v3.Any any = 1; 101 + */ 102 + value: Any; 103 + case: "any"; 104 + } | { 105 + /** 106 + * @generated from field: gnostic.openapi.v3.Expression expression = 2; 107 + */ 108 + value: Expression; 109 + case: "expression"; 110 + } | { case: undefined; value?: undefined }; 111 + }; 112 + 113 + /** 114 + * Describes the message gnostic.openapi.v3.AnyOrExpression. 115 + * Use `create(AnyOrExpressionSchema)` to create a new message. 116 + */ 117 + export const AnyOrExpressionSchema: GenMessage<AnyOrExpression> = /*@__PURE__*/ 118 + messageDesc(file_gnostic_openapi_v3_openapiv3, 2); 119 + 120 + /** 121 + * A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation. 122 + * 123 + * @generated from message gnostic.openapi.v3.Callback 124 + */ 125 + export type Callback = Message<"gnostic.openapi.v3.Callback"> & { 126 + /** 127 + * @generated from field: repeated gnostic.openapi.v3.NamedPathItem path = 1; 128 + */ 129 + path: NamedPathItem[]; 130 + 131 + /** 132 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 2; 133 + */ 134 + specificationExtension: NamedAny[]; 135 + }; 136 + 137 + /** 138 + * Describes the message gnostic.openapi.v3.Callback. 139 + * Use `create(CallbackSchema)` to create a new message. 140 + */ 141 + export const CallbackSchema: GenMessage<Callback> = /*@__PURE__*/ 142 + messageDesc(file_gnostic_openapi_v3_openapiv3, 3); 143 + 144 + /** 145 + * @generated from message gnostic.openapi.v3.CallbackOrReference 146 + */ 147 + export type CallbackOrReference = 148 + & Message<"gnostic.openapi.v3.CallbackOrReference"> 149 + & { 150 + /** 151 + * @generated from oneof gnostic.openapi.v3.CallbackOrReference.oneof 152 + */ 153 + oneof: { 154 + /** 155 + * @generated from field: gnostic.openapi.v3.Callback callback = 1; 156 + */ 157 + value: Callback; 158 + case: "callback"; 159 + } | { 160 + /** 161 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 162 + */ 163 + value: Reference; 164 + case: "reference"; 165 + } | { case: undefined; value?: undefined }; 166 + }; 167 + 168 + /** 169 + * Describes the message gnostic.openapi.v3.CallbackOrReference. 170 + * Use `create(CallbackOrReferenceSchema)` to create a new message. 171 + */ 172 + export const CallbackOrReferenceSchema: GenMessage< 173 + CallbackOrReference 174 + > = /*@__PURE__*/ 175 + messageDesc(file_gnostic_openapi_v3_openapiv3, 4); 176 + 177 + /** 178 + * @generated from message gnostic.openapi.v3.CallbacksOrReferences 179 + */ 180 + export type CallbacksOrReferences = 181 + & Message<"gnostic.openapi.v3.CallbacksOrReferences"> 182 + & { 183 + /** 184 + * @generated from field: repeated gnostic.openapi.v3.NamedCallbackOrReference additional_properties = 1; 185 + */ 186 + additionalProperties: NamedCallbackOrReference[]; 187 + }; 188 + 189 + /** 190 + * Describes the message gnostic.openapi.v3.CallbacksOrReferences. 191 + * Use `create(CallbacksOrReferencesSchema)` to create a new message. 192 + */ 193 + export const CallbacksOrReferencesSchema: GenMessage< 194 + CallbacksOrReferences 195 + > = /*@__PURE__*/ 196 + messageDesc(file_gnostic_openapi_v3_openapiv3, 5); 197 + 198 + /** 199 + * Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object. 200 + * 201 + * @generated from message gnostic.openapi.v3.Components 202 + */ 203 + export type Components = Message<"gnostic.openapi.v3.Components"> & { 204 + /** 205 + * @generated from field: gnostic.openapi.v3.SchemasOrReferences schemas = 1; 206 + */ 207 + schemas?: SchemasOrReferences; 208 + 209 + /** 210 + * @generated from field: gnostic.openapi.v3.ResponsesOrReferences responses = 2; 211 + */ 212 + responses?: ResponsesOrReferences; 213 + 214 + /** 215 + * @generated from field: gnostic.openapi.v3.ParametersOrReferences parameters = 3; 216 + */ 217 + parameters?: ParametersOrReferences; 218 + 219 + /** 220 + * @generated from field: gnostic.openapi.v3.ExamplesOrReferences examples = 4; 221 + */ 222 + examples?: ExamplesOrReferences; 223 + 224 + /** 225 + * @generated from field: gnostic.openapi.v3.RequestBodiesOrReferences request_bodies = 5; 226 + */ 227 + requestBodies?: RequestBodiesOrReferences; 228 + 229 + /** 230 + * @generated from field: gnostic.openapi.v3.HeadersOrReferences headers = 6; 231 + */ 232 + headers?: HeadersOrReferences; 233 + 234 + /** 235 + * @generated from field: gnostic.openapi.v3.SecuritySchemesOrReferences security_schemes = 7; 236 + */ 237 + securitySchemes?: SecuritySchemesOrReferences; 238 + 239 + /** 240 + * @generated from field: gnostic.openapi.v3.LinksOrReferences links = 8; 241 + */ 242 + links?: LinksOrReferences; 243 + 244 + /** 245 + * @generated from field: gnostic.openapi.v3.CallbacksOrReferences callbacks = 9; 246 + */ 247 + callbacks?: CallbacksOrReferences; 248 + 249 + /** 250 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 10; 251 + */ 252 + specificationExtension: NamedAny[]; 253 + }; 254 + 255 + /** 256 + * Describes the message gnostic.openapi.v3.Components. 257 + * Use `create(ComponentsSchema)` to create a new message. 258 + */ 259 + export const ComponentsSchema: GenMessage<Components> = /*@__PURE__*/ 260 + messageDesc(file_gnostic_openapi_v3_openapiv3, 6); 261 + 262 + /** 263 + * Contact information for the exposed API. 264 + * 265 + * @generated from message gnostic.openapi.v3.Contact 266 + */ 267 + export type Contact = Message<"gnostic.openapi.v3.Contact"> & { 268 + /** 269 + * @generated from field: string name = 1; 270 + */ 271 + name: string; 272 + 273 + /** 274 + * @generated from field: string url = 2; 275 + */ 276 + url: string; 277 + 278 + /** 279 + * @generated from field: string email = 3; 280 + */ 281 + email: string; 282 + 283 + /** 284 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 4; 285 + */ 286 + specificationExtension: NamedAny[]; 287 + }; 288 + 289 + /** 290 + * Describes the message gnostic.openapi.v3.Contact. 291 + * Use `create(ContactSchema)` to create a new message. 292 + */ 293 + export const ContactSchema: GenMessage<Contact> = /*@__PURE__*/ 294 + messageDesc(file_gnostic_openapi_v3_openapiv3, 7); 295 + 296 + /** 297 + * @generated from message gnostic.openapi.v3.DefaultType 298 + */ 299 + export type DefaultType = Message<"gnostic.openapi.v3.DefaultType"> & { 300 + /** 301 + * @generated from oneof gnostic.openapi.v3.DefaultType.oneof 302 + */ 303 + oneof: { 304 + /** 305 + * @generated from field: double number = 1; 306 + */ 307 + value: number; 308 + case: "number"; 309 + } | { 310 + /** 311 + * @generated from field: bool boolean = 2; 312 + */ 313 + value: boolean; 314 + case: "boolean"; 315 + } | { 316 + /** 317 + * @generated from field: string string = 3; 318 + */ 319 + value: string; 320 + case: "string"; 321 + } | { case: undefined; value?: undefined }; 322 + }; 323 + 324 + /** 325 + * Describes the message gnostic.openapi.v3.DefaultType. 326 + * Use `create(DefaultTypeSchema)` to create a new message. 327 + */ 328 + export const DefaultTypeSchema: GenMessage<DefaultType> = /*@__PURE__*/ 329 + messageDesc(file_gnostic_openapi_v3_openapiv3, 8); 330 + 331 + /** 332 + * When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it. When using the discriminator, _inline_ schemas will not be considered. 333 + * 334 + * @generated from message gnostic.openapi.v3.Discriminator 335 + */ 336 + export type Discriminator = Message<"gnostic.openapi.v3.Discriminator"> & { 337 + /** 338 + * @generated from field: string property_name = 1; 339 + */ 340 + propertyName: string; 341 + 342 + /** 343 + * @generated from field: gnostic.openapi.v3.Strings mapping = 2; 344 + */ 345 + mapping?: Strings; 346 + 347 + /** 348 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 3; 349 + */ 350 + specificationExtension: NamedAny[]; 351 + }; 352 + 353 + /** 354 + * Describes the message gnostic.openapi.v3.Discriminator. 355 + * Use `create(DiscriminatorSchema)` to create a new message. 356 + */ 357 + export const DiscriminatorSchema: GenMessage<Discriminator> = /*@__PURE__*/ 358 + messageDesc(file_gnostic_openapi_v3_openapiv3, 9); 359 + 360 + /** 361 + * @generated from message gnostic.openapi.v3.Document 362 + */ 363 + export type Document = Message<"gnostic.openapi.v3.Document"> & { 364 + /** 365 + * @generated from field: string openapi = 1; 366 + */ 367 + openapi: string; 368 + 369 + /** 370 + * @generated from field: gnostic.openapi.v3.Info info = 2; 371 + */ 372 + info?: Info; 373 + 374 + /** 375 + * @generated from field: repeated gnostic.openapi.v3.Server servers = 3; 376 + */ 377 + servers: Server[]; 378 + 379 + /** 380 + * @generated from field: gnostic.openapi.v3.Paths paths = 4; 381 + */ 382 + paths?: Paths; 383 + 384 + /** 385 + * @generated from field: gnostic.openapi.v3.Components components = 5; 386 + */ 387 + components?: Components; 388 + 389 + /** 390 + * @generated from field: repeated gnostic.openapi.v3.SecurityRequirement security = 6; 391 + */ 392 + security: SecurityRequirement[]; 393 + 394 + /** 395 + * @generated from field: repeated gnostic.openapi.v3.Tag tags = 7; 396 + */ 397 + tags: Tag[]; 398 + 399 + /** 400 + * @generated from field: gnostic.openapi.v3.ExternalDocs external_docs = 8; 401 + */ 402 + externalDocs?: ExternalDocs; 403 + 404 + /** 405 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 9; 406 + */ 407 + specificationExtension: NamedAny[]; 408 + }; 409 + 410 + /** 411 + * Describes the message gnostic.openapi.v3.Document. 412 + * Use `create(DocumentSchema)` to create a new message. 413 + */ 414 + export const DocumentSchema: GenMessage<Document> = /*@__PURE__*/ 415 + messageDesc(file_gnostic_openapi_v3_openapiv3, 10); 416 + 417 + /** 418 + * A single encoding definition applied to a single schema property. 419 + * 420 + * @generated from message gnostic.openapi.v3.Encoding 421 + */ 422 + export type Encoding = Message<"gnostic.openapi.v3.Encoding"> & { 423 + /** 424 + * @generated from field: string content_type = 1; 425 + */ 426 + contentType: string; 427 + 428 + /** 429 + * @generated from field: gnostic.openapi.v3.HeadersOrReferences headers = 2; 430 + */ 431 + headers?: HeadersOrReferences; 432 + 433 + /** 434 + * @generated from field: string style = 3; 435 + */ 436 + style: string; 437 + 438 + /** 439 + * @generated from field: bool explode = 4; 440 + */ 441 + explode: boolean; 442 + 443 + /** 444 + * @generated from field: bool allow_reserved = 5; 445 + */ 446 + allowReserved: boolean; 447 + 448 + /** 449 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 6; 450 + */ 451 + specificationExtension: NamedAny[]; 452 + }; 453 + 454 + /** 455 + * Describes the message gnostic.openapi.v3.Encoding. 456 + * Use `create(EncodingSchema)` to create a new message. 457 + */ 458 + export const EncodingSchema: GenMessage<Encoding> = /*@__PURE__*/ 459 + messageDesc(file_gnostic_openapi_v3_openapiv3, 11); 460 + 461 + /** 462 + * @generated from message gnostic.openapi.v3.Encodings 463 + */ 464 + export type Encodings = Message<"gnostic.openapi.v3.Encodings"> & { 465 + /** 466 + * @generated from field: repeated gnostic.openapi.v3.NamedEncoding additional_properties = 1; 467 + */ 468 + additionalProperties: NamedEncoding[]; 469 + }; 470 + 471 + /** 472 + * Describes the message gnostic.openapi.v3.Encodings. 473 + * Use `create(EncodingsSchema)` to create a new message. 474 + */ 475 + export const EncodingsSchema: GenMessage<Encodings> = /*@__PURE__*/ 476 + messageDesc(file_gnostic_openapi_v3_openapiv3, 12); 477 + 478 + /** 479 + * @generated from message gnostic.openapi.v3.Example 480 + */ 481 + export type Example = Message<"gnostic.openapi.v3.Example"> & { 482 + /** 483 + * @generated from field: string summary = 1; 484 + */ 485 + summary: string; 486 + 487 + /** 488 + * @generated from field: string description = 2; 489 + */ 490 + description: string; 491 + 492 + /** 493 + * @generated from field: gnostic.openapi.v3.Any value = 3; 494 + */ 495 + value?: Any; 496 + 497 + /** 498 + * @generated from field: string external_value = 4; 499 + */ 500 + externalValue: string; 501 + 502 + /** 503 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 5; 504 + */ 505 + specificationExtension: NamedAny[]; 506 + }; 507 + 508 + /** 509 + * Describes the message gnostic.openapi.v3.Example. 510 + * Use `create(ExampleSchema)` to create a new message. 511 + */ 512 + export const ExampleSchema: GenMessage<Example> = /*@__PURE__*/ 513 + messageDesc(file_gnostic_openapi_v3_openapiv3, 13); 514 + 515 + /** 516 + * @generated from message gnostic.openapi.v3.ExampleOrReference 517 + */ 518 + export type ExampleOrReference = 519 + & Message<"gnostic.openapi.v3.ExampleOrReference"> 520 + & { 521 + /** 522 + * @generated from oneof gnostic.openapi.v3.ExampleOrReference.oneof 523 + */ 524 + oneof: { 525 + /** 526 + * @generated from field: gnostic.openapi.v3.Example example = 1; 527 + */ 528 + value: Example; 529 + case: "example"; 530 + } | { 531 + /** 532 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 533 + */ 534 + value: Reference; 535 + case: "reference"; 536 + } | { case: undefined; value?: undefined }; 537 + }; 538 + 539 + /** 540 + * Describes the message gnostic.openapi.v3.ExampleOrReference. 541 + * Use `create(ExampleOrReferenceSchema)` to create a new message. 542 + */ 543 + export const ExampleOrReferenceSchema: GenMessage< 544 + ExampleOrReference 545 + > = /*@__PURE__*/ 546 + messageDesc(file_gnostic_openapi_v3_openapiv3, 14); 547 + 548 + /** 549 + * @generated from message gnostic.openapi.v3.ExamplesOrReferences 550 + */ 551 + export type ExamplesOrReferences = 552 + & Message<"gnostic.openapi.v3.ExamplesOrReferences"> 553 + & { 554 + /** 555 + * @generated from field: repeated gnostic.openapi.v3.NamedExampleOrReference additional_properties = 1; 556 + */ 557 + additionalProperties: NamedExampleOrReference[]; 558 + }; 559 + 560 + /** 561 + * Describes the message gnostic.openapi.v3.ExamplesOrReferences. 562 + * Use `create(ExamplesOrReferencesSchema)` to create a new message. 563 + */ 564 + export const ExamplesOrReferencesSchema: GenMessage< 565 + ExamplesOrReferences 566 + > = /*@__PURE__*/ 567 + messageDesc(file_gnostic_openapi_v3_openapiv3, 15); 568 + 569 + /** 570 + * @generated from message gnostic.openapi.v3.Expression 571 + */ 572 + export type Expression = Message<"gnostic.openapi.v3.Expression"> & { 573 + /** 574 + * @generated from field: repeated gnostic.openapi.v3.NamedAny additional_properties = 1; 575 + */ 576 + additionalProperties: NamedAny[]; 577 + }; 578 + 579 + /** 580 + * Describes the message gnostic.openapi.v3.Expression. 581 + * Use `create(ExpressionSchema)` to create a new message. 582 + */ 583 + export const ExpressionSchema: GenMessage<Expression> = /*@__PURE__*/ 584 + messageDesc(file_gnostic_openapi_v3_openapiv3, 16); 585 + 586 + /** 587 + * Allows referencing an external resource for extended documentation. 588 + * 589 + * @generated from message gnostic.openapi.v3.ExternalDocs 590 + */ 591 + export type ExternalDocs = Message<"gnostic.openapi.v3.ExternalDocs"> & { 592 + /** 593 + * @generated from field: string description = 1; 594 + */ 595 + description: string; 596 + 597 + /** 598 + * @generated from field: string url = 2; 599 + */ 600 + url: string; 601 + 602 + /** 603 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 3; 604 + */ 605 + specificationExtension: NamedAny[]; 606 + }; 607 + 608 + /** 609 + * Describes the message gnostic.openapi.v3.ExternalDocs. 610 + * Use `create(ExternalDocsSchema)` to create a new message. 611 + */ 612 + export const ExternalDocsSchema: GenMessage<ExternalDocs> = /*@__PURE__*/ 613 + messageDesc(file_gnostic_openapi_v3_openapiv3, 17); 614 + 615 + /** 616 + * The Header Object follows the structure of the Parameter Object with the following changes: 1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`). 617 + * 618 + * @generated from message gnostic.openapi.v3.Header 619 + */ 620 + export type Header = Message<"gnostic.openapi.v3.Header"> & { 621 + /** 622 + * @generated from field: string description = 1; 623 + */ 624 + description: string; 625 + 626 + /** 627 + * @generated from field: bool required = 2; 628 + */ 629 + required: boolean; 630 + 631 + /** 632 + * @generated from field: bool deprecated = 3; 633 + */ 634 + deprecated: boolean; 635 + 636 + /** 637 + * @generated from field: bool allow_empty_value = 4; 638 + */ 639 + allowEmptyValue: boolean; 640 + 641 + /** 642 + * @generated from field: string style = 5; 643 + */ 644 + style: string; 645 + 646 + /** 647 + * @generated from field: bool explode = 6; 648 + */ 649 + explode: boolean; 650 + 651 + /** 652 + * @generated from field: bool allow_reserved = 7; 653 + */ 654 + allowReserved: boolean; 655 + 656 + /** 657 + * @generated from field: gnostic.openapi.v3.SchemaOrReference schema = 8; 658 + */ 659 + schema?: SchemaOrReference; 660 + 661 + /** 662 + * @generated from field: gnostic.openapi.v3.Any example = 9; 663 + */ 664 + example?: Any; 665 + 666 + /** 667 + * @generated from field: gnostic.openapi.v3.ExamplesOrReferences examples = 10; 668 + */ 669 + examples?: ExamplesOrReferences; 670 + 671 + /** 672 + * @generated from field: gnostic.openapi.v3.MediaTypes content = 11; 673 + */ 674 + content?: MediaTypes; 675 + 676 + /** 677 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 12; 678 + */ 679 + specificationExtension: NamedAny[]; 680 + }; 681 + 682 + /** 683 + * Describes the message gnostic.openapi.v3.Header. 684 + * Use `create(HeaderSchema)` to create a new message. 685 + */ 686 + export const HeaderSchema: GenMessage<Header> = /*@__PURE__*/ 687 + messageDesc(file_gnostic_openapi_v3_openapiv3, 18); 688 + 689 + /** 690 + * @generated from message gnostic.openapi.v3.HeaderOrReference 691 + */ 692 + export type HeaderOrReference = 693 + & Message<"gnostic.openapi.v3.HeaderOrReference"> 694 + & { 695 + /** 696 + * @generated from oneof gnostic.openapi.v3.HeaderOrReference.oneof 697 + */ 698 + oneof: { 699 + /** 700 + * @generated from field: gnostic.openapi.v3.Header header = 1; 701 + */ 702 + value: Header; 703 + case: "header"; 704 + } | { 705 + /** 706 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 707 + */ 708 + value: Reference; 709 + case: "reference"; 710 + } | { case: undefined; value?: undefined }; 711 + }; 712 + 713 + /** 714 + * Describes the message gnostic.openapi.v3.HeaderOrReference. 715 + * Use `create(HeaderOrReferenceSchema)` to create a new message. 716 + */ 717 + export const HeaderOrReferenceSchema: GenMessage< 718 + HeaderOrReference 719 + > = /*@__PURE__*/ 720 + messageDesc(file_gnostic_openapi_v3_openapiv3, 19); 721 + 722 + /** 723 + * @generated from message gnostic.openapi.v3.HeadersOrReferences 724 + */ 725 + export type HeadersOrReferences = 726 + & Message<"gnostic.openapi.v3.HeadersOrReferences"> 727 + & { 728 + /** 729 + * @generated from field: repeated gnostic.openapi.v3.NamedHeaderOrReference additional_properties = 1; 730 + */ 731 + additionalProperties: NamedHeaderOrReference[]; 732 + }; 733 + 734 + /** 735 + * Describes the message gnostic.openapi.v3.HeadersOrReferences. 736 + * Use `create(HeadersOrReferencesSchema)` to create a new message. 737 + */ 738 + export const HeadersOrReferencesSchema: GenMessage< 739 + HeadersOrReferences 740 + > = /*@__PURE__*/ 741 + messageDesc(file_gnostic_openapi_v3_openapiv3, 20); 742 + 743 + /** 744 + * The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience. 745 + * 746 + * @generated from message gnostic.openapi.v3.Info 747 + */ 748 + export type Info = Message<"gnostic.openapi.v3.Info"> & { 749 + /** 750 + * @generated from field: string title = 1; 751 + */ 752 + title: string; 753 + 754 + /** 755 + * @generated from field: string description = 2; 756 + */ 757 + description: string; 758 + 759 + /** 760 + * @generated from field: string terms_of_service = 3; 761 + */ 762 + termsOfService: string; 763 + 764 + /** 765 + * @generated from field: gnostic.openapi.v3.Contact contact = 4; 766 + */ 767 + contact?: Contact; 768 + 769 + /** 770 + * @generated from field: gnostic.openapi.v3.License license = 5; 771 + */ 772 + license?: License; 773 + 774 + /** 775 + * @generated from field: string version = 6; 776 + */ 777 + version: string; 778 + 779 + /** 780 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 7; 781 + */ 782 + specificationExtension: NamedAny[]; 783 + 784 + /** 785 + * @generated from field: string summary = 8; 786 + */ 787 + summary: string; 788 + }; 789 + 790 + /** 791 + * Describes the message gnostic.openapi.v3.Info. 792 + * Use `create(InfoSchema)` to create a new message. 793 + */ 794 + export const InfoSchema: GenMessage<Info> = /*@__PURE__*/ 795 + messageDesc(file_gnostic_openapi_v3_openapiv3, 21); 796 + 797 + /** 798 + * @generated from message gnostic.openapi.v3.ItemsItem 799 + */ 800 + export type ItemsItem = Message<"gnostic.openapi.v3.ItemsItem"> & { 801 + /** 802 + * @generated from field: repeated gnostic.openapi.v3.SchemaOrReference schema_or_reference = 1; 803 + */ 804 + schemaOrReference: SchemaOrReference[]; 805 + }; 806 + 807 + /** 808 + * Describes the message gnostic.openapi.v3.ItemsItem. 809 + * Use `create(ItemsItemSchema)` to create a new message. 810 + */ 811 + export const ItemsItemSchema: GenMessage<ItemsItem> = /*@__PURE__*/ 812 + messageDesc(file_gnostic_openapi_v3_openapiv3, 22); 813 + 814 + /** 815 + * License information for the exposed API. 816 + * 817 + * @generated from message gnostic.openapi.v3.License 818 + */ 819 + export type License = Message<"gnostic.openapi.v3.License"> & { 820 + /** 821 + * @generated from field: string name = 1; 822 + */ 823 + name: string; 824 + 825 + /** 826 + * @generated from field: string url = 2; 827 + */ 828 + url: string; 829 + 830 + /** 831 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 3; 832 + */ 833 + specificationExtension: NamedAny[]; 834 + }; 835 + 836 + /** 837 + * Describes the message gnostic.openapi.v3.License. 838 + * Use `create(LicenseSchema)` to create a new message. 839 + */ 840 + export const LicenseSchema: GenMessage<License> = /*@__PURE__*/ 841 + messageDesc(file_gnostic_openapi_v3_openapiv3, 23); 842 + 843 + /** 844 + * The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations. Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response. For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation. 845 + * 846 + * @generated from message gnostic.openapi.v3.Link 847 + */ 848 + export type Link = Message<"gnostic.openapi.v3.Link"> & { 849 + /** 850 + * @generated from field: string operation_ref = 1; 851 + */ 852 + operationRef: string; 853 + 854 + /** 855 + * @generated from field: string operation_id = 2; 856 + */ 857 + operationId: string; 858 + 859 + /** 860 + * @generated from field: gnostic.openapi.v3.AnyOrExpression parameters = 3; 861 + */ 862 + parameters?: AnyOrExpression; 863 + 864 + /** 865 + * @generated from field: gnostic.openapi.v3.AnyOrExpression request_body = 4; 866 + */ 867 + requestBody?: AnyOrExpression; 868 + 869 + /** 870 + * @generated from field: string description = 5; 871 + */ 872 + description: string; 873 + 874 + /** 875 + * @generated from field: gnostic.openapi.v3.Server server = 6; 876 + */ 877 + server?: Server; 878 + 879 + /** 880 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 7; 881 + */ 882 + specificationExtension: NamedAny[]; 883 + }; 884 + 885 + /** 886 + * Describes the message gnostic.openapi.v3.Link. 887 + * Use `create(LinkSchema)` to create a new message. 888 + */ 889 + export const LinkSchema: GenMessage<Link> = /*@__PURE__*/ 890 + messageDesc(file_gnostic_openapi_v3_openapiv3, 24); 891 + 892 + /** 893 + * @generated from message gnostic.openapi.v3.LinkOrReference 894 + */ 895 + export type LinkOrReference = Message<"gnostic.openapi.v3.LinkOrReference"> & { 896 + /** 897 + * @generated from oneof gnostic.openapi.v3.LinkOrReference.oneof 898 + */ 899 + oneof: { 900 + /** 901 + * @generated from field: gnostic.openapi.v3.Link link = 1; 902 + */ 903 + value: Link; 904 + case: "link"; 905 + } | { 906 + /** 907 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 908 + */ 909 + value: Reference; 910 + case: "reference"; 911 + } | { case: undefined; value?: undefined }; 912 + }; 913 + 914 + /** 915 + * Describes the message gnostic.openapi.v3.LinkOrReference. 916 + * Use `create(LinkOrReferenceSchema)` to create a new message. 917 + */ 918 + export const LinkOrReferenceSchema: GenMessage<LinkOrReference> = /*@__PURE__*/ 919 + messageDesc(file_gnostic_openapi_v3_openapiv3, 25); 920 + 921 + /** 922 + * @generated from message gnostic.openapi.v3.LinksOrReferences 923 + */ 924 + export type LinksOrReferences = 925 + & Message<"gnostic.openapi.v3.LinksOrReferences"> 926 + & { 927 + /** 928 + * @generated from field: repeated gnostic.openapi.v3.NamedLinkOrReference additional_properties = 1; 929 + */ 930 + additionalProperties: NamedLinkOrReference[]; 931 + }; 932 + 933 + /** 934 + * Describes the message gnostic.openapi.v3.LinksOrReferences. 935 + * Use `create(LinksOrReferencesSchema)` to create a new message. 936 + */ 937 + export const LinksOrReferencesSchema: GenMessage< 938 + LinksOrReferences 939 + > = /*@__PURE__*/ 940 + messageDesc(file_gnostic_openapi_v3_openapiv3, 26); 941 + 942 + /** 943 + * Each Media Type Object provides schema and examples for the media type identified by its key. 944 + * 945 + * @generated from message gnostic.openapi.v3.MediaType 946 + */ 947 + export type MediaType = Message<"gnostic.openapi.v3.MediaType"> & { 948 + /** 949 + * @generated from field: gnostic.openapi.v3.SchemaOrReference schema = 1; 950 + */ 951 + schema?: SchemaOrReference; 952 + 953 + /** 954 + * @generated from field: gnostic.openapi.v3.Any example = 2; 955 + */ 956 + example?: Any; 957 + 958 + /** 959 + * @generated from field: gnostic.openapi.v3.ExamplesOrReferences examples = 3; 960 + */ 961 + examples?: ExamplesOrReferences; 962 + 963 + /** 964 + * @generated from field: gnostic.openapi.v3.Encodings encoding = 4; 965 + */ 966 + encoding?: Encodings; 967 + 968 + /** 969 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 5; 970 + */ 971 + specificationExtension: NamedAny[]; 972 + }; 973 + 974 + /** 975 + * Describes the message gnostic.openapi.v3.MediaType. 976 + * Use `create(MediaTypeSchema)` to create a new message. 977 + */ 978 + export const MediaTypeSchema: GenMessage<MediaType> = /*@__PURE__*/ 979 + messageDesc(file_gnostic_openapi_v3_openapiv3, 27); 980 + 981 + /** 982 + * @generated from message gnostic.openapi.v3.MediaTypes 983 + */ 984 + export type MediaTypes = Message<"gnostic.openapi.v3.MediaTypes"> & { 985 + /** 986 + * @generated from field: repeated gnostic.openapi.v3.NamedMediaType additional_properties = 1; 987 + */ 988 + additionalProperties: NamedMediaType[]; 989 + }; 990 + 991 + /** 992 + * Describes the message gnostic.openapi.v3.MediaTypes. 993 + * Use `create(MediaTypesSchema)` to create a new message. 994 + */ 995 + export const MediaTypesSchema: GenMessage<MediaTypes> = /*@__PURE__*/ 996 + messageDesc(file_gnostic_openapi_v3_openapiv3, 28); 997 + 998 + /** 999 + * Automatically-generated message used to represent maps of Any as ordered (name,value) pairs. 1000 + * 1001 + * @generated from message gnostic.openapi.v3.NamedAny 1002 + */ 1003 + export type NamedAny = Message<"gnostic.openapi.v3.NamedAny"> & { 1004 + /** 1005 + * Map key 1006 + * 1007 + * @generated from field: string name = 1; 1008 + */ 1009 + name: string; 1010 + 1011 + /** 1012 + * Mapped value 1013 + * 1014 + * @generated from field: gnostic.openapi.v3.Any value = 2; 1015 + */ 1016 + value?: Any; 1017 + }; 1018 + 1019 + /** 1020 + * Describes the message gnostic.openapi.v3.NamedAny. 1021 + * Use `create(NamedAnySchema)` to create a new message. 1022 + */ 1023 + export const NamedAnySchema: GenMessage<NamedAny> = /*@__PURE__*/ 1024 + messageDesc(file_gnostic_openapi_v3_openapiv3, 29); 1025 + 1026 + /** 1027 + * Automatically-generated message used to represent maps of CallbackOrReference as ordered (name,value) pairs. 1028 + * 1029 + * @generated from message gnostic.openapi.v3.NamedCallbackOrReference 1030 + */ 1031 + export type NamedCallbackOrReference = 1032 + & Message<"gnostic.openapi.v3.NamedCallbackOrReference"> 1033 + & { 1034 + /** 1035 + * Map key 1036 + * 1037 + * @generated from field: string name = 1; 1038 + */ 1039 + name: string; 1040 + 1041 + /** 1042 + * Mapped value 1043 + * 1044 + * @generated from field: gnostic.openapi.v3.CallbackOrReference value = 2; 1045 + */ 1046 + value?: CallbackOrReference; 1047 + }; 1048 + 1049 + /** 1050 + * Describes the message gnostic.openapi.v3.NamedCallbackOrReference. 1051 + * Use `create(NamedCallbackOrReferenceSchema)` to create a new message. 1052 + */ 1053 + export const NamedCallbackOrReferenceSchema: GenMessage< 1054 + NamedCallbackOrReference 1055 + > = /*@__PURE__*/ 1056 + messageDesc(file_gnostic_openapi_v3_openapiv3, 30); 1057 + 1058 + /** 1059 + * Automatically-generated message used to represent maps of Encoding as ordered (name,value) pairs. 1060 + * 1061 + * @generated from message gnostic.openapi.v3.NamedEncoding 1062 + */ 1063 + export type NamedEncoding = Message<"gnostic.openapi.v3.NamedEncoding"> & { 1064 + /** 1065 + * Map key 1066 + * 1067 + * @generated from field: string name = 1; 1068 + */ 1069 + name: string; 1070 + 1071 + /** 1072 + * Mapped value 1073 + * 1074 + * @generated from field: gnostic.openapi.v3.Encoding value = 2; 1075 + */ 1076 + value?: Encoding; 1077 + }; 1078 + 1079 + /** 1080 + * Describes the message gnostic.openapi.v3.NamedEncoding. 1081 + * Use `create(NamedEncodingSchema)` to create a new message. 1082 + */ 1083 + export const NamedEncodingSchema: GenMessage<NamedEncoding> = /*@__PURE__*/ 1084 + messageDesc(file_gnostic_openapi_v3_openapiv3, 31); 1085 + 1086 + /** 1087 + * Automatically-generated message used to represent maps of ExampleOrReference as ordered (name,value) pairs. 1088 + * 1089 + * @generated from message gnostic.openapi.v3.NamedExampleOrReference 1090 + */ 1091 + export type NamedExampleOrReference = 1092 + & Message<"gnostic.openapi.v3.NamedExampleOrReference"> 1093 + & { 1094 + /** 1095 + * Map key 1096 + * 1097 + * @generated from field: string name = 1; 1098 + */ 1099 + name: string; 1100 + 1101 + /** 1102 + * Mapped value 1103 + * 1104 + * @generated from field: gnostic.openapi.v3.ExampleOrReference value = 2; 1105 + */ 1106 + value?: ExampleOrReference; 1107 + }; 1108 + 1109 + /** 1110 + * Describes the message gnostic.openapi.v3.NamedExampleOrReference. 1111 + * Use `create(NamedExampleOrReferenceSchema)` to create a new message. 1112 + */ 1113 + export const NamedExampleOrReferenceSchema: GenMessage< 1114 + NamedExampleOrReference 1115 + > = /*@__PURE__*/ 1116 + messageDesc(file_gnostic_openapi_v3_openapiv3, 32); 1117 + 1118 + /** 1119 + * Automatically-generated message used to represent maps of HeaderOrReference as ordered (name,value) pairs. 1120 + * 1121 + * @generated from message gnostic.openapi.v3.NamedHeaderOrReference 1122 + */ 1123 + export type NamedHeaderOrReference = 1124 + & Message<"gnostic.openapi.v3.NamedHeaderOrReference"> 1125 + & { 1126 + /** 1127 + * Map key 1128 + * 1129 + * @generated from field: string name = 1; 1130 + */ 1131 + name: string; 1132 + 1133 + /** 1134 + * Mapped value 1135 + * 1136 + * @generated from field: gnostic.openapi.v3.HeaderOrReference value = 2; 1137 + */ 1138 + value?: HeaderOrReference; 1139 + }; 1140 + 1141 + /** 1142 + * Describes the message gnostic.openapi.v3.NamedHeaderOrReference. 1143 + * Use `create(NamedHeaderOrReferenceSchema)` to create a new message. 1144 + */ 1145 + export const NamedHeaderOrReferenceSchema: GenMessage< 1146 + NamedHeaderOrReference 1147 + > = /*@__PURE__*/ 1148 + messageDesc(file_gnostic_openapi_v3_openapiv3, 33); 1149 + 1150 + /** 1151 + * Automatically-generated message used to represent maps of LinkOrReference as ordered (name,value) pairs. 1152 + * 1153 + * @generated from message gnostic.openapi.v3.NamedLinkOrReference 1154 + */ 1155 + export type NamedLinkOrReference = 1156 + & Message<"gnostic.openapi.v3.NamedLinkOrReference"> 1157 + & { 1158 + /** 1159 + * Map key 1160 + * 1161 + * @generated from field: string name = 1; 1162 + */ 1163 + name: string; 1164 + 1165 + /** 1166 + * Mapped value 1167 + * 1168 + * @generated from field: gnostic.openapi.v3.LinkOrReference value = 2; 1169 + */ 1170 + value?: LinkOrReference; 1171 + }; 1172 + 1173 + /** 1174 + * Describes the message gnostic.openapi.v3.NamedLinkOrReference. 1175 + * Use `create(NamedLinkOrReferenceSchema)` to create a new message. 1176 + */ 1177 + export const NamedLinkOrReferenceSchema: GenMessage< 1178 + NamedLinkOrReference 1179 + > = /*@__PURE__*/ 1180 + messageDesc(file_gnostic_openapi_v3_openapiv3, 34); 1181 + 1182 + /** 1183 + * Automatically-generated message used to represent maps of MediaType as ordered (name,value) pairs. 1184 + * 1185 + * @generated from message gnostic.openapi.v3.NamedMediaType 1186 + */ 1187 + export type NamedMediaType = Message<"gnostic.openapi.v3.NamedMediaType"> & { 1188 + /** 1189 + * Map key 1190 + * 1191 + * @generated from field: string name = 1; 1192 + */ 1193 + name: string; 1194 + 1195 + /** 1196 + * Mapped value 1197 + * 1198 + * @generated from field: gnostic.openapi.v3.MediaType value = 2; 1199 + */ 1200 + value?: MediaType; 1201 + }; 1202 + 1203 + /** 1204 + * Describes the message gnostic.openapi.v3.NamedMediaType. 1205 + * Use `create(NamedMediaTypeSchema)` to create a new message. 1206 + */ 1207 + export const NamedMediaTypeSchema: GenMessage<NamedMediaType> = /*@__PURE__*/ 1208 + messageDesc(file_gnostic_openapi_v3_openapiv3, 35); 1209 + 1210 + /** 1211 + * Automatically-generated message used to represent maps of ParameterOrReference as ordered (name,value) pairs. 1212 + * 1213 + * @generated from message gnostic.openapi.v3.NamedParameterOrReference 1214 + */ 1215 + export type NamedParameterOrReference = 1216 + & Message<"gnostic.openapi.v3.NamedParameterOrReference"> 1217 + & { 1218 + /** 1219 + * Map key 1220 + * 1221 + * @generated from field: string name = 1; 1222 + */ 1223 + name: string; 1224 + 1225 + /** 1226 + * Mapped value 1227 + * 1228 + * @generated from field: gnostic.openapi.v3.ParameterOrReference value = 2; 1229 + */ 1230 + value?: ParameterOrReference; 1231 + }; 1232 + 1233 + /** 1234 + * Describes the message gnostic.openapi.v3.NamedParameterOrReference. 1235 + * Use `create(NamedParameterOrReferenceSchema)` to create a new message. 1236 + */ 1237 + export const NamedParameterOrReferenceSchema: GenMessage< 1238 + NamedParameterOrReference 1239 + > = /*@__PURE__*/ 1240 + messageDesc(file_gnostic_openapi_v3_openapiv3, 36); 1241 + 1242 + /** 1243 + * Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs. 1244 + * 1245 + * @generated from message gnostic.openapi.v3.NamedPathItem 1246 + */ 1247 + export type NamedPathItem = Message<"gnostic.openapi.v3.NamedPathItem"> & { 1248 + /** 1249 + * Map key 1250 + * 1251 + * @generated from field: string name = 1; 1252 + */ 1253 + name: string; 1254 + 1255 + /** 1256 + * Mapped value 1257 + * 1258 + * @generated from field: gnostic.openapi.v3.PathItem value = 2; 1259 + */ 1260 + value?: PathItem; 1261 + }; 1262 + 1263 + /** 1264 + * Describes the message gnostic.openapi.v3.NamedPathItem. 1265 + * Use `create(NamedPathItemSchema)` to create a new message. 1266 + */ 1267 + export const NamedPathItemSchema: GenMessage<NamedPathItem> = /*@__PURE__*/ 1268 + messageDesc(file_gnostic_openapi_v3_openapiv3, 37); 1269 + 1270 + /** 1271 + * Automatically-generated message used to represent maps of RequestBodyOrReference as ordered (name,value) pairs. 1272 + * 1273 + * @generated from message gnostic.openapi.v3.NamedRequestBodyOrReference 1274 + */ 1275 + export type NamedRequestBodyOrReference = 1276 + & Message<"gnostic.openapi.v3.NamedRequestBodyOrReference"> 1277 + & { 1278 + /** 1279 + * Map key 1280 + * 1281 + * @generated from field: string name = 1; 1282 + */ 1283 + name: string; 1284 + 1285 + /** 1286 + * Mapped value 1287 + * 1288 + * @generated from field: gnostic.openapi.v3.RequestBodyOrReference value = 2; 1289 + */ 1290 + value?: RequestBodyOrReference; 1291 + }; 1292 + 1293 + /** 1294 + * Describes the message gnostic.openapi.v3.NamedRequestBodyOrReference. 1295 + * Use `create(NamedRequestBodyOrReferenceSchema)` to create a new message. 1296 + */ 1297 + export const NamedRequestBodyOrReferenceSchema: GenMessage< 1298 + NamedRequestBodyOrReference 1299 + > = /*@__PURE__*/ 1300 + messageDesc(file_gnostic_openapi_v3_openapiv3, 38); 1301 + 1302 + /** 1303 + * Automatically-generated message used to represent maps of ResponseOrReference as ordered (name,value) pairs. 1304 + * 1305 + * @generated from message gnostic.openapi.v3.NamedResponseOrReference 1306 + */ 1307 + export type NamedResponseOrReference = 1308 + & Message<"gnostic.openapi.v3.NamedResponseOrReference"> 1309 + & { 1310 + /** 1311 + * Map key 1312 + * 1313 + * @generated from field: string name = 1; 1314 + */ 1315 + name: string; 1316 + 1317 + /** 1318 + * Mapped value 1319 + * 1320 + * @generated from field: gnostic.openapi.v3.ResponseOrReference value = 2; 1321 + */ 1322 + value?: ResponseOrReference; 1323 + }; 1324 + 1325 + /** 1326 + * Describes the message gnostic.openapi.v3.NamedResponseOrReference. 1327 + * Use `create(NamedResponseOrReferenceSchema)` to create a new message. 1328 + */ 1329 + export const NamedResponseOrReferenceSchema: GenMessage< 1330 + NamedResponseOrReference 1331 + > = /*@__PURE__*/ 1332 + messageDesc(file_gnostic_openapi_v3_openapiv3, 39); 1333 + 1334 + /** 1335 + * Automatically-generated message used to represent maps of SchemaOrReference as ordered (name,value) pairs. 1336 + * 1337 + * @generated from message gnostic.openapi.v3.NamedSchemaOrReference 1338 + */ 1339 + export type NamedSchemaOrReference = 1340 + & Message<"gnostic.openapi.v3.NamedSchemaOrReference"> 1341 + & { 1342 + /** 1343 + * Map key 1344 + * 1345 + * @generated from field: string name = 1; 1346 + */ 1347 + name: string; 1348 + 1349 + /** 1350 + * Mapped value 1351 + * 1352 + * @generated from field: gnostic.openapi.v3.SchemaOrReference value = 2; 1353 + */ 1354 + value?: SchemaOrReference; 1355 + }; 1356 + 1357 + /** 1358 + * Describes the message gnostic.openapi.v3.NamedSchemaOrReference. 1359 + * Use `create(NamedSchemaOrReferenceSchema)` to create a new message. 1360 + */ 1361 + export const NamedSchemaOrReferenceSchema: GenMessage< 1362 + NamedSchemaOrReference 1363 + > = /*@__PURE__*/ 1364 + messageDesc(file_gnostic_openapi_v3_openapiv3, 40); 1365 + 1366 + /** 1367 + * Automatically-generated message used to represent maps of SecuritySchemeOrReference as ordered (name,value) pairs. 1368 + * 1369 + * @generated from message gnostic.openapi.v3.NamedSecuritySchemeOrReference 1370 + */ 1371 + export type NamedSecuritySchemeOrReference = 1372 + & Message<"gnostic.openapi.v3.NamedSecuritySchemeOrReference"> 1373 + & { 1374 + /** 1375 + * Map key 1376 + * 1377 + * @generated from field: string name = 1; 1378 + */ 1379 + name: string; 1380 + 1381 + /** 1382 + * Mapped value 1383 + * 1384 + * @generated from field: gnostic.openapi.v3.SecuritySchemeOrReference value = 2; 1385 + */ 1386 + value?: SecuritySchemeOrReference; 1387 + }; 1388 + 1389 + /** 1390 + * Describes the message gnostic.openapi.v3.NamedSecuritySchemeOrReference. 1391 + * Use `create(NamedSecuritySchemeOrReferenceSchema)` to create a new message. 1392 + */ 1393 + export const NamedSecuritySchemeOrReferenceSchema: GenMessage< 1394 + NamedSecuritySchemeOrReference 1395 + > = /*@__PURE__*/ 1396 + messageDesc(file_gnostic_openapi_v3_openapiv3, 41); 1397 + 1398 + /** 1399 + * Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs. 1400 + * 1401 + * @generated from message gnostic.openapi.v3.NamedServerVariable 1402 + */ 1403 + export type NamedServerVariable = 1404 + & Message<"gnostic.openapi.v3.NamedServerVariable"> 1405 + & { 1406 + /** 1407 + * Map key 1408 + * 1409 + * @generated from field: string name = 1; 1410 + */ 1411 + name: string; 1412 + 1413 + /** 1414 + * Mapped value 1415 + * 1416 + * @generated from field: gnostic.openapi.v3.ServerVariable value = 2; 1417 + */ 1418 + value?: ServerVariable; 1419 + }; 1420 + 1421 + /** 1422 + * Describes the message gnostic.openapi.v3.NamedServerVariable. 1423 + * Use `create(NamedServerVariableSchema)` to create a new message. 1424 + */ 1425 + export const NamedServerVariableSchema: GenMessage< 1426 + NamedServerVariable 1427 + > = /*@__PURE__*/ 1428 + messageDesc(file_gnostic_openapi_v3_openapiv3, 42); 1429 + 1430 + /** 1431 + * Automatically-generated message used to represent maps of string as ordered (name,value) pairs. 1432 + * 1433 + * @generated from message gnostic.openapi.v3.NamedString 1434 + */ 1435 + export type NamedString = Message<"gnostic.openapi.v3.NamedString"> & { 1436 + /** 1437 + * Map key 1438 + * 1439 + * @generated from field: string name = 1; 1440 + */ 1441 + name: string; 1442 + 1443 + /** 1444 + * Mapped value 1445 + * 1446 + * @generated from field: string value = 2; 1447 + */ 1448 + value: string; 1449 + }; 1450 + 1451 + /** 1452 + * Describes the message gnostic.openapi.v3.NamedString. 1453 + * Use `create(NamedStringSchema)` to create a new message. 1454 + */ 1455 + export const NamedStringSchema: GenMessage<NamedString> = /*@__PURE__*/ 1456 + messageDesc(file_gnostic_openapi_v3_openapiv3, 43); 1457 + 1458 + /** 1459 + * Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs. 1460 + * 1461 + * @generated from message gnostic.openapi.v3.NamedStringArray 1462 + */ 1463 + export type NamedStringArray = 1464 + & Message<"gnostic.openapi.v3.NamedStringArray"> 1465 + & { 1466 + /** 1467 + * Map key 1468 + * 1469 + * @generated from field: string name = 1; 1470 + */ 1471 + name: string; 1472 + 1473 + /** 1474 + * Mapped value 1475 + * 1476 + * @generated from field: gnostic.openapi.v3.StringArray value = 2; 1477 + */ 1478 + value?: StringArray; 1479 + }; 1480 + 1481 + /** 1482 + * Describes the message gnostic.openapi.v3.NamedStringArray. 1483 + * Use `create(NamedStringArraySchema)` to create a new message. 1484 + */ 1485 + export const NamedStringArraySchema: GenMessage< 1486 + NamedStringArray 1487 + > = /*@__PURE__*/ 1488 + messageDesc(file_gnostic_openapi_v3_openapiv3, 44); 1489 + 1490 + /** 1491 + * Configuration details for a supported OAuth Flow 1492 + * 1493 + * @generated from message gnostic.openapi.v3.OauthFlow 1494 + */ 1495 + export type OauthFlow = Message<"gnostic.openapi.v3.OauthFlow"> & { 1496 + /** 1497 + * @generated from field: string authorization_url = 1; 1498 + */ 1499 + authorizationUrl: string; 1500 + 1501 + /** 1502 + * @generated from field: string token_url = 2; 1503 + */ 1504 + tokenUrl: string; 1505 + 1506 + /** 1507 + * @generated from field: string refresh_url = 3; 1508 + */ 1509 + refreshUrl: string; 1510 + 1511 + /** 1512 + * @generated from field: gnostic.openapi.v3.Strings scopes = 4; 1513 + */ 1514 + scopes?: Strings; 1515 + 1516 + /** 1517 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 5; 1518 + */ 1519 + specificationExtension: NamedAny[]; 1520 + }; 1521 + 1522 + /** 1523 + * Describes the message gnostic.openapi.v3.OauthFlow. 1524 + * Use `create(OauthFlowSchema)` to create a new message. 1525 + */ 1526 + export const OauthFlowSchema: GenMessage<OauthFlow> = /*@__PURE__*/ 1527 + messageDesc(file_gnostic_openapi_v3_openapiv3, 45); 1528 + 1529 + /** 1530 + * Allows configuration of the supported OAuth Flows. 1531 + * 1532 + * @generated from message gnostic.openapi.v3.OauthFlows 1533 + */ 1534 + export type OauthFlows = Message<"gnostic.openapi.v3.OauthFlows"> & { 1535 + /** 1536 + * @generated from field: gnostic.openapi.v3.OauthFlow implicit = 1; 1537 + */ 1538 + implicit?: OauthFlow; 1539 + 1540 + /** 1541 + * @generated from field: gnostic.openapi.v3.OauthFlow password = 2; 1542 + */ 1543 + password?: OauthFlow; 1544 + 1545 + /** 1546 + * @generated from field: gnostic.openapi.v3.OauthFlow client_credentials = 3; 1547 + */ 1548 + clientCredentials?: OauthFlow; 1549 + 1550 + /** 1551 + * @generated from field: gnostic.openapi.v3.OauthFlow authorization_code = 4; 1552 + */ 1553 + authorizationCode?: OauthFlow; 1554 + 1555 + /** 1556 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 5; 1557 + */ 1558 + specificationExtension: NamedAny[]; 1559 + }; 1560 + 1561 + /** 1562 + * Describes the message gnostic.openapi.v3.OauthFlows. 1563 + * Use `create(OauthFlowsSchema)` to create a new message. 1564 + */ 1565 + export const OauthFlowsSchema: GenMessage<OauthFlows> = /*@__PURE__*/ 1566 + messageDesc(file_gnostic_openapi_v3_openapiv3, 46); 1567 + 1568 + /** 1569 + * @generated from message gnostic.openapi.v3.Object 1570 + */ 1571 + export type Object$ = Message<"gnostic.openapi.v3.Object"> & { 1572 + /** 1573 + * @generated from field: repeated gnostic.openapi.v3.NamedAny additional_properties = 1; 1574 + */ 1575 + additionalProperties: NamedAny[]; 1576 + }; 1577 + 1578 + /** 1579 + * Describes the message gnostic.openapi.v3.Object. 1580 + * Use `create(ObjectSchema)` to create a new message. 1581 + */ 1582 + export const ObjectSchema: GenMessage<Object$> = /*@__PURE__*/ 1583 + messageDesc(file_gnostic_openapi_v3_openapiv3, 47); 1584 + 1585 + /** 1586 + * Describes a single API operation on a path. 1587 + * 1588 + * @generated from message gnostic.openapi.v3.Operation 1589 + */ 1590 + export type Operation = Message<"gnostic.openapi.v3.Operation"> & { 1591 + /** 1592 + * @generated from field: repeated string tags = 1; 1593 + */ 1594 + tags: string[]; 1595 + 1596 + /** 1597 + * @generated from field: string summary = 2; 1598 + */ 1599 + summary: string; 1600 + 1601 + /** 1602 + * @generated from field: string description = 3; 1603 + */ 1604 + description: string; 1605 + 1606 + /** 1607 + * @generated from field: gnostic.openapi.v3.ExternalDocs external_docs = 4; 1608 + */ 1609 + externalDocs?: ExternalDocs; 1610 + 1611 + /** 1612 + * @generated from field: string operation_id = 5; 1613 + */ 1614 + operationId: string; 1615 + 1616 + /** 1617 + * @generated from field: repeated gnostic.openapi.v3.ParameterOrReference parameters = 6; 1618 + */ 1619 + parameters: ParameterOrReference[]; 1620 + 1621 + /** 1622 + * @generated from field: gnostic.openapi.v3.RequestBodyOrReference request_body = 7; 1623 + */ 1624 + requestBody?: RequestBodyOrReference; 1625 + 1626 + /** 1627 + * @generated from field: gnostic.openapi.v3.Responses responses = 8; 1628 + */ 1629 + responses?: Responses; 1630 + 1631 + /** 1632 + * @generated from field: gnostic.openapi.v3.CallbacksOrReferences callbacks = 9; 1633 + */ 1634 + callbacks?: CallbacksOrReferences; 1635 + 1636 + /** 1637 + * @generated from field: bool deprecated = 10; 1638 + */ 1639 + deprecated: boolean; 1640 + 1641 + /** 1642 + * @generated from field: repeated gnostic.openapi.v3.SecurityRequirement security = 11; 1643 + */ 1644 + security: SecurityRequirement[]; 1645 + 1646 + /** 1647 + * @generated from field: repeated gnostic.openapi.v3.Server servers = 12; 1648 + */ 1649 + servers: Server[]; 1650 + 1651 + /** 1652 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 13; 1653 + */ 1654 + specificationExtension: NamedAny[]; 1655 + }; 1656 + 1657 + /** 1658 + * Describes the message gnostic.openapi.v3.Operation. 1659 + * Use `create(OperationSchema)` to create a new message. 1660 + */ 1661 + export const OperationSchema: GenMessage<Operation> = /*@__PURE__*/ 1662 + messageDesc(file_gnostic_openapi_v3_openapiv3, 48); 1663 + 1664 + /** 1665 + * Describes a single operation parameter. A unique parameter is defined by a combination of a name and location. 1666 + * 1667 + * @generated from message gnostic.openapi.v3.Parameter 1668 + */ 1669 + export type Parameter = Message<"gnostic.openapi.v3.Parameter"> & { 1670 + /** 1671 + * @generated from field: string name = 1; 1672 + */ 1673 + name: string; 1674 + 1675 + /** 1676 + * @generated from field: string in = 2; 1677 + */ 1678 + in: string; 1679 + 1680 + /** 1681 + * @generated from field: string description = 3; 1682 + */ 1683 + description: string; 1684 + 1685 + /** 1686 + * @generated from field: bool required = 4; 1687 + */ 1688 + required: boolean; 1689 + 1690 + /** 1691 + * @generated from field: bool deprecated = 5; 1692 + */ 1693 + deprecated: boolean; 1694 + 1695 + /** 1696 + * @generated from field: bool allow_empty_value = 6; 1697 + */ 1698 + allowEmptyValue: boolean; 1699 + 1700 + /** 1701 + * @generated from field: string style = 7; 1702 + */ 1703 + style: string; 1704 + 1705 + /** 1706 + * @generated from field: bool explode = 8; 1707 + */ 1708 + explode: boolean; 1709 + 1710 + /** 1711 + * @generated from field: bool allow_reserved = 9; 1712 + */ 1713 + allowReserved: boolean; 1714 + 1715 + /** 1716 + * @generated from field: gnostic.openapi.v3.SchemaOrReference schema = 10; 1717 + */ 1718 + schema?: SchemaOrReference; 1719 + 1720 + /** 1721 + * @generated from field: gnostic.openapi.v3.Any example = 11; 1722 + */ 1723 + example?: Any; 1724 + 1725 + /** 1726 + * @generated from field: gnostic.openapi.v3.ExamplesOrReferences examples = 12; 1727 + */ 1728 + examples?: ExamplesOrReferences; 1729 + 1730 + /** 1731 + * @generated from field: gnostic.openapi.v3.MediaTypes content = 13; 1732 + */ 1733 + content?: MediaTypes; 1734 + 1735 + /** 1736 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 14; 1737 + */ 1738 + specificationExtension: NamedAny[]; 1739 + }; 1740 + 1741 + /** 1742 + * Describes the message gnostic.openapi.v3.Parameter. 1743 + * Use `create(ParameterSchema)` to create a new message. 1744 + */ 1745 + export const ParameterSchema: GenMessage<Parameter> = /*@__PURE__*/ 1746 + messageDesc(file_gnostic_openapi_v3_openapiv3, 49); 1747 + 1748 + /** 1749 + * @generated from message gnostic.openapi.v3.ParameterOrReference 1750 + */ 1751 + export type ParameterOrReference = 1752 + & Message<"gnostic.openapi.v3.ParameterOrReference"> 1753 + & { 1754 + /** 1755 + * @generated from oneof gnostic.openapi.v3.ParameterOrReference.oneof 1756 + */ 1757 + oneof: { 1758 + /** 1759 + * @generated from field: gnostic.openapi.v3.Parameter parameter = 1; 1760 + */ 1761 + value: Parameter; 1762 + case: "parameter"; 1763 + } | { 1764 + /** 1765 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 1766 + */ 1767 + value: Reference; 1768 + case: "reference"; 1769 + } | { case: undefined; value?: undefined }; 1770 + }; 1771 + 1772 + /** 1773 + * Describes the message gnostic.openapi.v3.ParameterOrReference. 1774 + * Use `create(ParameterOrReferenceSchema)` to create a new message. 1775 + */ 1776 + export const ParameterOrReferenceSchema: GenMessage< 1777 + ParameterOrReference 1778 + > = /*@__PURE__*/ 1779 + messageDesc(file_gnostic_openapi_v3_openapiv3, 50); 1780 + 1781 + /** 1782 + * @generated from message gnostic.openapi.v3.ParametersOrReferences 1783 + */ 1784 + export type ParametersOrReferences = 1785 + & Message<"gnostic.openapi.v3.ParametersOrReferences"> 1786 + & { 1787 + /** 1788 + * @generated from field: repeated gnostic.openapi.v3.NamedParameterOrReference additional_properties = 1; 1789 + */ 1790 + additionalProperties: NamedParameterOrReference[]; 1791 + }; 1792 + 1793 + /** 1794 + * Describes the message gnostic.openapi.v3.ParametersOrReferences. 1795 + * Use `create(ParametersOrReferencesSchema)` to create a new message. 1796 + */ 1797 + export const ParametersOrReferencesSchema: GenMessage< 1798 + ParametersOrReferences 1799 + > = /*@__PURE__*/ 1800 + messageDesc(file_gnostic_openapi_v3_openapiv3, 51); 1801 + 1802 + /** 1803 + * Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available. 1804 + * 1805 + * @generated from message gnostic.openapi.v3.PathItem 1806 + */ 1807 + export type PathItem = Message<"gnostic.openapi.v3.PathItem"> & { 1808 + /** 1809 + * @generated from field: string _ref = 1; 1810 + */ 1811 + Ref: string; 1812 + 1813 + /** 1814 + * @generated from field: string summary = 2; 1815 + */ 1816 + summary: string; 1817 + 1818 + /** 1819 + * @generated from field: string description = 3; 1820 + */ 1821 + description: string; 1822 + 1823 + /** 1824 + * @generated from field: gnostic.openapi.v3.Operation get = 4; 1825 + */ 1826 + get?: Operation; 1827 + 1828 + /** 1829 + * @generated from field: gnostic.openapi.v3.Operation put = 5; 1830 + */ 1831 + put?: Operation; 1832 + 1833 + /** 1834 + * @generated from field: gnostic.openapi.v3.Operation post = 6; 1835 + */ 1836 + post?: Operation; 1837 + 1838 + /** 1839 + * @generated from field: gnostic.openapi.v3.Operation delete = 7; 1840 + */ 1841 + delete?: Operation; 1842 + 1843 + /** 1844 + * @generated from field: gnostic.openapi.v3.Operation options = 8; 1845 + */ 1846 + options?: Operation; 1847 + 1848 + /** 1849 + * @generated from field: gnostic.openapi.v3.Operation head = 9; 1850 + */ 1851 + head?: Operation; 1852 + 1853 + /** 1854 + * @generated from field: gnostic.openapi.v3.Operation patch = 10; 1855 + */ 1856 + patch?: Operation; 1857 + 1858 + /** 1859 + * @generated from field: gnostic.openapi.v3.Operation trace = 11; 1860 + */ 1861 + trace?: Operation; 1862 + 1863 + /** 1864 + * @generated from field: repeated gnostic.openapi.v3.Server servers = 12; 1865 + */ 1866 + servers: Server[]; 1867 + 1868 + /** 1869 + * @generated from field: repeated gnostic.openapi.v3.ParameterOrReference parameters = 13; 1870 + */ 1871 + parameters: ParameterOrReference[]; 1872 + 1873 + /** 1874 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 14; 1875 + */ 1876 + specificationExtension: NamedAny[]; 1877 + }; 1878 + 1879 + /** 1880 + * Describes the message gnostic.openapi.v3.PathItem. 1881 + * Use `create(PathItemSchema)` to create a new message. 1882 + */ 1883 + export const PathItemSchema: GenMessage<PathItem> = /*@__PURE__*/ 1884 + messageDesc(file_gnostic_openapi_v3_openapiv3, 52); 1885 + 1886 + /** 1887 + * Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL. The Paths MAY be empty, due to ACL constraints. 1888 + * 1889 + * @generated from message gnostic.openapi.v3.Paths 1890 + */ 1891 + export type Paths = Message<"gnostic.openapi.v3.Paths"> & { 1892 + /** 1893 + * @generated from field: repeated gnostic.openapi.v3.NamedPathItem path = 1; 1894 + */ 1895 + path: NamedPathItem[]; 1896 + 1897 + /** 1898 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 2; 1899 + */ 1900 + specificationExtension: NamedAny[]; 1901 + }; 1902 + 1903 + /** 1904 + * Describes the message gnostic.openapi.v3.Paths. 1905 + * Use `create(PathsSchema)` to create a new message. 1906 + */ 1907 + export const PathsSchema: GenMessage<Paths> = /*@__PURE__*/ 1908 + messageDesc(file_gnostic_openapi_v3_openapiv3, 53); 1909 + 1910 + /** 1911 + * @generated from message gnostic.openapi.v3.Properties 1912 + */ 1913 + export type Properties = Message<"gnostic.openapi.v3.Properties"> & { 1914 + /** 1915 + * @generated from field: repeated gnostic.openapi.v3.NamedSchemaOrReference additional_properties = 1; 1916 + */ 1917 + additionalProperties: NamedSchemaOrReference[]; 1918 + }; 1919 + 1920 + /** 1921 + * Describes the message gnostic.openapi.v3.Properties. 1922 + * Use `create(PropertiesSchema)` to create a new message. 1923 + */ 1924 + export const PropertiesSchema: GenMessage<Properties> = /*@__PURE__*/ 1925 + messageDesc(file_gnostic_openapi_v3_openapiv3, 54); 1926 + 1927 + /** 1928 + * A simple object to allow referencing other components in the specification, internally and externally. The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules. For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification. 1929 + * 1930 + * @generated from message gnostic.openapi.v3.Reference 1931 + */ 1932 + export type Reference = Message<"gnostic.openapi.v3.Reference"> & { 1933 + /** 1934 + * @generated from field: string _ref = 1; 1935 + */ 1936 + Ref: string; 1937 + 1938 + /** 1939 + * @generated from field: string summary = 2; 1940 + */ 1941 + summary: string; 1942 + 1943 + /** 1944 + * @generated from field: string description = 3; 1945 + */ 1946 + description: string; 1947 + }; 1948 + 1949 + /** 1950 + * Describes the message gnostic.openapi.v3.Reference. 1951 + * Use `create(ReferenceSchema)` to create a new message. 1952 + */ 1953 + export const ReferenceSchema: GenMessage<Reference> = /*@__PURE__*/ 1954 + messageDesc(file_gnostic_openapi_v3_openapiv3, 55); 1955 + 1956 + /** 1957 + * @generated from message gnostic.openapi.v3.RequestBodiesOrReferences 1958 + */ 1959 + export type RequestBodiesOrReferences = 1960 + & Message<"gnostic.openapi.v3.RequestBodiesOrReferences"> 1961 + & { 1962 + /** 1963 + * @generated from field: repeated gnostic.openapi.v3.NamedRequestBodyOrReference additional_properties = 1; 1964 + */ 1965 + additionalProperties: NamedRequestBodyOrReference[]; 1966 + }; 1967 + 1968 + /** 1969 + * Describes the message gnostic.openapi.v3.RequestBodiesOrReferences. 1970 + * Use `create(RequestBodiesOrReferencesSchema)` to create a new message. 1971 + */ 1972 + export const RequestBodiesOrReferencesSchema: GenMessage< 1973 + RequestBodiesOrReferences 1974 + > = /*@__PURE__*/ 1975 + messageDesc(file_gnostic_openapi_v3_openapiv3, 56); 1976 + 1977 + /** 1978 + * Describes a single request body. 1979 + * 1980 + * @generated from message gnostic.openapi.v3.RequestBody 1981 + */ 1982 + export type RequestBody = Message<"gnostic.openapi.v3.RequestBody"> & { 1983 + /** 1984 + * @generated from field: string description = 1; 1985 + */ 1986 + description: string; 1987 + 1988 + /** 1989 + * @generated from field: gnostic.openapi.v3.MediaTypes content = 2; 1990 + */ 1991 + content?: MediaTypes; 1992 + 1993 + /** 1994 + * @generated from field: bool required = 3; 1995 + */ 1996 + required: boolean; 1997 + 1998 + /** 1999 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 4; 2000 + */ 2001 + specificationExtension: NamedAny[]; 2002 + }; 2003 + 2004 + /** 2005 + * Describes the message gnostic.openapi.v3.RequestBody. 2006 + * Use `create(RequestBodySchema)` to create a new message. 2007 + */ 2008 + export const RequestBodySchema: GenMessage<RequestBody> = /*@__PURE__*/ 2009 + messageDesc(file_gnostic_openapi_v3_openapiv3, 57); 2010 + 2011 + /** 2012 + * @generated from message gnostic.openapi.v3.RequestBodyOrReference 2013 + */ 2014 + export type RequestBodyOrReference = 2015 + & Message<"gnostic.openapi.v3.RequestBodyOrReference"> 2016 + & { 2017 + /** 2018 + * @generated from oneof gnostic.openapi.v3.RequestBodyOrReference.oneof 2019 + */ 2020 + oneof: { 2021 + /** 2022 + * @generated from field: gnostic.openapi.v3.RequestBody request_body = 1; 2023 + */ 2024 + value: RequestBody; 2025 + case: "requestBody"; 2026 + } | { 2027 + /** 2028 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 2029 + */ 2030 + value: Reference; 2031 + case: "reference"; 2032 + } | { case: undefined; value?: undefined }; 2033 + }; 2034 + 2035 + /** 2036 + * Describes the message gnostic.openapi.v3.RequestBodyOrReference. 2037 + * Use `create(RequestBodyOrReferenceSchema)` to create a new message. 2038 + */ 2039 + export const RequestBodyOrReferenceSchema: GenMessage< 2040 + RequestBodyOrReference 2041 + > = /*@__PURE__*/ 2042 + messageDesc(file_gnostic_openapi_v3_openapiv3, 58); 2043 + 2044 + /** 2045 + * Describes a single response from an API Operation, including design-time, static `links` to operations based on the response. 2046 + * 2047 + * @generated from message gnostic.openapi.v3.Response 2048 + */ 2049 + export type Response = Message<"gnostic.openapi.v3.Response"> & { 2050 + /** 2051 + * @generated from field: string description = 1; 2052 + */ 2053 + description: string; 2054 + 2055 + /** 2056 + * @generated from field: gnostic.openapi.v3.HeadersOrReferences headers = 2; 2057 + */ 2058 + headers?: HeadersOrReferences; 2059 + 2060 + /** 2061 + * @generated from field: gnostic.openapi.v3.MediaTypes content = 3; 2062 + */ 2063 + content?: MediaTypes; 2064 + 2065 + /** 2066 + * @generated from field: gnostic.openapi.v3.LinksOrReferences links = 4; 2067 + */ 2068 + links?: LinksOrReferences; 2069 + 2070 + /** 2071 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 5; 2072 + */ 2073 + specificationExtension: NamedAny[]; 2074 + }; 2075 + 2076 + /** 2077 + * Describes the message gnostic.openapi.v3.Response. 2078 + * Use `create(ResponseSchema)` to create a new message. 2079 + */ 2080 + export const ResponseSchema: GenMessage<Response> = /*@__PURE__*/ 2081 + messageDesc(file_gnostic_openapi_v3_openapiv3, 59); 2082 + 2083 + /** 2084 + * @generated from message gnostic.openapi.v3.ResponseOrReference 2085 + */ 2086 + export type ResponseOrReference = 2087 + & Message<"gnostic.openapi.v3.ResponseOrReference"> 2088 + & { 2089 + /** 2090 + * @generated from oneof gnostic.openapi.v3.ResponseOrReference.oneof 2091 + */ 2092 + oneof: { 2093 + /** 2094 + * @generated from field: gnostic.openapi.v3.Response response = 1; 2095 + */ 2096 + value: Response; 2097 + case: "response"; 2098 + } | { 2099 + /** 2100 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 2101 + */ 2102 + value: Reference; 2103 + case: "reference"; 2104 + } | { case: undefined; value?: undefined }; 2105 + }; 2106 + 2107 + /** 2108 + * Describes the message gnostic.openapi.v3.ResponseOrReference. 2109 + * Use `create(ResponseOrReferenceSchema)` to create a new message. 2110 + */ 2111 + export const ResponseOrReferenceSchema: GenMessage< 2112 + ResponseOrReference 2113 + > = /*@__PURE__*/ 2114 + messageDesc(file_gnostic_openapi_v3_openapiv3, 60); 2115 + 2116 + /** 2117 + * A container for the expected responses of an operation. The container maps a HTTP response code to the expected response. The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors. The `default` MAY be used as a default response object for all HTTP codes that are not covered individually by the specification. The `Responses Object` MUST contain at least one response code, and it SHOULD be the response for a successful operation call. 2118 + * 2119 + * @generated from message gnostic.openapi.v3.Responses 2120 + */ 2121 + export type Responses = Message<"gnostic.openapi.v3.Responses"> & { 2122 + /** 2123 + * @generated from field: gnostic.openapi.v3.ResponseOrReference default = 1; 2124 + */ 2125 + default?: ResponseOrReference; 2126 + 2127 + /** 2128 + * @generated from field: repeated gnostic.openapi.v3.NamedResponseOrReference response_or_reference = 2; 2129 + */ 2130 + responseOrReference: NamedResponseOrReference[]; 2131 + 2132 + /** 2133 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 3; 2134 + */ 2135 + specificationExtension: NamedAny[]; 2136 + }; 2137 + 2138 + /** 2139 + * Describes the message gnostic.openapi.v3.Responses. 2140 + * Use `create(ResponsesSchema)` to create a new message. 2141 + */ 2142 + export const ResponsesSchema: GenMessage<Responses> = /*@__PURE__*/ 2143 + messageDesc(file_gnostic_openapi_v3_openapiv3, 61); 2144 + 2145 + /** 2146 + * @generated from message gnostic.openapi.v3.ResponsesOrReferences 2147 + */ 2148 + export type ResponsesOrReferences = 2149 + & Message<"gnostic.openapi.v3.ResponsesOrReferences"> 2150 + & { 2151 + /** 2152 + * @generated from field: repeated gnostic.openapi.v3.NamedResponseOrReference additional_properties = 1; 2153 + */ 2154 + additionalProperties: NamedResponseOrReference[]; 2155 + }; 2156 + 2157 + /** 2158 + * Describes the message gnostic.openapi.v3.ResponsesOrReferences. 2159 + * Use `create(ResponsesOrReferencesSchema)` to create a new message. 2160 + */ 2161 + export const ResponsesOrReferencesSchema: GenMessage< 2162 + ResponsesOrReferences 2163 + > = /*@__PURE__*/ 2164 + messageDesc(file_gnostic_openapi_v3_openapiv3, 62); 2165 + 2166 + /** 2167 + * The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00. For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema. 2168 + * 2169 + * @generated from message gnostic.openapi.v3.Schema 2170 + */ 2171 + export type Schema = Message<"gnostic.openapi.v3.Schema"> & { 2172 + /** 2173 + * @generated from field: bool nullable = 1; 2174 + */ 2175 + nullable: boolean; 2176 + 2177 + /** 2178 + * @generated from field: gnostic.openapi.v3.Discriminator discriminator = 2; 2179 + */ 2180 + discriminator?: Discriminator; 2181 + 2182 + /** 2183 + * @generated from field: bool read_only = 3; 2184 + */ 2185 + readOnly: boolean; 2186 + 2187 + /** 2188 + * @generated from field: bool write_only = 4; 2189 + */ 2190 + writeOnly: boolean; 2191 + 2192 + /** 2193 + * @generated from field: gnostic.openapi.v3.Xml xml = 5; 2194 + */ 2195 + xml?: Xml; 2196 + 2197 + /** 2198 + * @generated from field: gnostic.openapi.v3.ExternalDocs external_docs = 6; 2199 + */ 2200 + externalDocs?: ExternalDocs; 2201 + 2202 + /** 2203 + * @generated from field: gnostic.openapi.v3.Any example = 7; 2204 + */ 2205 + example?: Any; 2206 + 2207 + /** 2208 + * @generated from field: bool deprecated = 8; 2209 + */ 2210 + deprecated: boolean; 2211 + 2212 + /** 2213 + * @generated from field: string title = 9; 2214 + */ 2215 + title: string; 2216 + 2217 + /** 2218 + * @generated from field: double multiple_of = 10; 2219 + */ 2220 + multipleOf: number; 2221 + 2222 + /** 2223 + * @generated from field: double maximum = 11; 2224 + */ 2225 + maximum: number; 2226 + 2227 + /** 2228 + * @generated from field: bool exclusive_maximum = 12; 2229 + */ 2230 + exclusiveMaximum: boolean; 2231 + 2232 + /** 2233 + * @generated from field: double minimum = 13; 2234 + */ 2235 + minimum: number; 2236 + 2237 + /** 2238 + * @generated from field: bool exclusive_minimum = 14; 2239 + */ 2240 + exclusiveMinimum: boolean; 2241 + 2242 + /** 2243 + * @generated from field: int64 max_length = 15; 2244 + */ 2245 + maxLength: bigint; 2246 + 2247 + /** 2248 + * @generated from field: int64 min_length = 16; 2249 + */ 2250 + minLength: bigint; 2251 + 2252 + /** 2253 + * @generated from field: string pattern = 17; 2254 + */ 2255 + pattern: string; 2256 + 2257 + /** 2258 + * @generated from field: int64 max_items = 18; 2259 + */ 2260 + maxItems: bigint; 2261 + 2262 + /** 2263 + * @generated from field: int64 min_items = 19; 2264 + */ 2265 + minItems: bigint; 2266 + 2267 + /** 2268 + * @generated from field: bool unique_items = 20; 2269 + */ 2270 + uniqueItems: boolean; 2271 + 2272 + /** 2273 + * @generated from field: int64 max_properties = 21; 2274 + */ 2275 + maxProperties: bigint; 2276 + 2277 + /** 2278 + * @generated from field: int64 min_properties = 22; 2279 + */ 2280 + minProperties: bigint; 2281 + 2282 + /** 2283 + * @generated from field: repeated string required = 23; 2284 + */ 2285 + required: string[]; 2286 + 2287 + /** 2288 + * @generated from field: repeated gnostic.openapi.v3.Any enum = 24; 2289 + */ 2290 + enum: Any[]; 2291 + 2292 + /** 2293 + * @generated from field: string type = 25; 2294 + */ 2295 + type: string; 2296 + 2297 + /** 2298 + * @generated from field: repeated gnostic.openapi.v3.SchemaOrReference all_of = 26; 2299 + */ 2300 + allOf: SchemaOrReference[]; 2301 + 2302 + /** 2303 + * @generated from field: repeated gnostic.openapi.v3.SchemaOrReference one_of = 27; 2304 + */ 2305 + oneOf: SchemaOrReference[]; 2306 + 2307 + /** 2308 + * @generated from field: repeated gnostic.openapi.v3.SchemaOrReference any_of = 28; 2309 + */ 2310 + anyOf: SchemaOrReference[]; 2311 + 2312 + /** 2313 + * @generated from field: gnostic.openapi.v3.Schema not = 29; 2314 + */ 2315 + not?: Schema; 2316 + 2317 + /** 2318 + * @generated from field: gnostic.openapi.v3.ItemsItem items = 30; 2319 + */ 2320 + items?: ItemsItem; 2321 + 2322 + /** 2323 + * @generated from field: gnostic.openapi.v3.Properties properties = 31; 2324 + */ 2325 + properties?: Properties; 2326 + 2327 + /** 2328 + * @generated from field: gnostic.openapi.v3.AdditionalPropertiesItem additional_properties = 32; 2329 + */ 2330 + additionalProperties?: AdditionalPropertiesItem; 2331 + 2332 + /** 2333 + * @generated from field: gnostic.openapi.v3.DefaultType default = 33; 2334 + */ 2335 + default?: DefaultType; 2336 + 2337 + /** 2338 + * @generated from field: string description = 34; 2339 + */ 2340 + description: string; 2341 + 2342 + /** 2343 + * @generated from field: string format = 35; 2344 + */ 2345 + format: string; 2346 + 2347 + /** 2348 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 36; 2349 + */ 2350 + specificationExtension: NamedAny[]; 2351 + }; 2352 + 2353 + /** 2354 + * Describes the message gnostic.openapi.v3.Schema. 2355 + * Use `create(SchemaSchema)` to create a new message. 2356 + */ 2357 + export const SchemaSchema: GenMessage<Schema> = /*@__PURE__*/ 2358 + messageDesc(file_gnostic_openapi_v3_openapiv3, 63); 2359 + 2360 + /** 2361 + * @generated from message gnostic.openapi.v3.SchemaOrReference 2362 + */ 2363 + export type SchemaOrReference = 2364 + & Message<"gnostic.openapi.v3.SchemaOrReference"> 2365 + & { 2366 + /** 2367 + * @generated from oneof gnostic.openapi.v3.SchemaOrReference.oneof 2368 + */ 2369 + oneof: { 2370 + /** 2371 + * @generated from field: gnostic.openapi.v3.Schema schema = 1; 2372 + */ 2373 + value: Schema; 2374 + case: "schema"; 2375 + } | { 2376 + /** 2377 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 2378 + */ 2379 + value: Reference; 2380 + case: "reference"; 2381 + } | { case: undefined; value?: undefined }; 2382 + }; 2383 + 2384 + /** 2385 + * Describes the message gnostic.openapi.v3.SchemaOrReference. 2386 + * Use `create(SchemaOrReferenceSchema)` to create a new message. 2387 + */ 2388 + export const SchemaOrReferenceSchema: GenMessage< 2389 + SchemaOrReference 2390 + > = /*@__PURE__*/ 2391 + messageDesc(file_gnostic_openapi_v3_openapiv3, 64); 2392 + 2393 + /** 2394 + * @generated from message gnostic.openapi.v3.SchemasOrReferences 2395 + */ 2396 + export type SchemasOrReferences = 2397 + & Message<"gnostic.openapi.v3.SchemasOrReferences"> 2398 + & { 2399 + /** 2400 + * @generated from field: repeated gnostic.openapi.v3.NamedSchemaOrReference additional_properties = 1; 2401 + */ 2402 + additionalProperties: NamedSchemaOrReference[]; 2403 + }; 2404 + 2405 + /** 2406 + * Describes the message gnostic.openapi.v3.SchemasOrReferences. 2407 + * Use `create(SchemasOrReferencesSchema)` to create a new message. 2408 + */ 2409 + export const SchemasOrReferencesSchema: GenMessage< 2410 + SchemasOrReferences 2411 + > = /*@__PURE__*/ 2412 + messageDesc(file_gnostic_openapi_v3_openapiv3, 65); 2413 + 2414 + /** 2415 + * Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object. Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information. When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request. 2416 + * 2417 + * @generated from message gnostic.openapi.v3.SecurityRequirement 2418 + */ 2419 + export type SecurityRequirement = 2420 + & Message<"gnostic.openapi.v3.SecurityRequirement"> 2421 + & { 2422 + /** 2423 + * @generated from field: repeated gnostic.openapi.v3.NamedStringArray additional_properties = 1; 2424 + */ 2425 + additionalProperties: NamedStringArray[]; 2426 + }; 2427 + 2428 + /** 2429 + * Describes the message gnostic.openapi.v3.SecurityRequirement. 2430 + * Use `create(SecurityRequirementSchema)` to create a new message. 2431 + */ 2432 + export const SecurityRequirementSchema: GenMessage< 2433 + SecurityRequirement 2434 + > = /*@__PURE__*/ 2435 + messageDesc(file_gnostic_openapi_v3_openapiv3, 66); 2436 + 2437 + /** 2438 + * Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect. Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE. 2439 + * 2440 + * @generated from message gnostic.openapi.v3.SecurityScheme 2441 + */ 2442 + export type SecurityScheme = Message<"gnostic.openapi.v3.SecurityScheme"> & { 2443 + /** 2444 + * @generated from field: string type = 1; 2445 + */ 2446 + type: string; 2447 + 2448 + /** 2449 + * @generated from field: string description = 2; 2450 + */ 2451 + description: string; 2452 + 2453 + /** 2454 + * @generated from field: string name = 3; 2455 + */ 2456 + name: string; 2457 + 2458 + /** 2459 + * @generated from field: string in = 4; 2460 + */ 2461 + in: string; 2462 + 2463 + /** 2464 + * @generated from field: string scheme = 5; 2465 + */ 2466 + scheme: string; 2467 + 2468 + /** 2469 + * @generated from field: string bearer_format = 6; 2470 + */ 2471 + bearerFormat: string; 2472 + 2473 + /** 2474 + * @generated from field: gnostic.openapi.v3.OauthFlows flows = 7; 2475 + */ 2476 + flows?: OauthFlows; 2477 + 2478 + /** 2479 + * @generated from field: string open_id_connect_url = 8; 2480 + */ 2481 + openIdConnectUrl: string; 2482 + 2483 + /** 2484 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 9; 2485 + */ 2486 + specificationExtension: NamedAny[]; 2487 + }; 2488 + 2489 + /** 2490 + * Describes the message gnostic.openapi.v3.SecurityScheme. 2491 + * Use `create(SecuritySchemeSchema)` to create a new message. 2492 + */ 2493 + export const SecuritySchemeSchema: GenMessage<SecurityScheme> = /*@__PURE__*/ 2494 + messageDesc(file_gnostic_openapi_v3_openapiv3, 67); 2495 + 2496 + /** 2497 + * @generated from message gnostic.openapi.v3.SecuritySchemeOrReference 2498 + */ 2499 + export type SecuritySchemeOrReference = 2500 + & Message<"gnostic.openapi.v3.SecuritySchemeOrReference"> 2501 + & { 2502 + /** 2503 + * @generated from oneof gnostic.openapi.v3.SecuritySchemeOrReference.oneof 2504 + */ 2505 + oneof: { 2506 + /** 2507 + * @generated from field: gnostic.openapi.v3.SecurityScheme security_scheme = 1; 2508 + */ 2509 + value: SecurityScheme; 2510 + case: "securityScheme"; 2511 + } | { 2512 + /** 2513 + * @generated from field: gnostic.openapi.v3.Reference reference = 2; 2514 + */ 2515 + value: Reference; 2516 + case: "reference"; 2517 + } | { case: undefined; value?: undefined }; 2518 + }; 2519 + 2520 + /** 2521 + * Describes the message gnostic.openapi.v3.SecuritySchemeOrReference. 2522 + * Use `create(SecuritySchemeOrReferenceSchema)` to create a new message. 2523 + */ 2524 + export const SecuritySchemeOrReferenceSchema: GenMessage< 2525 + SecuritySchemeOrReference 2526 + > = /*@__PURE__*/ 2527 + messageDesc(file_gnostic_openapi_v3_openapiv3, 68); 2528 + 2529 + /** 2530 + * @generated from message gnostic.openapi.v3.SecuritySchemesOrReferences 2531 + */ 2532 + export type SecuritySchemesOrReferences = 2533 + & Message<"gnostic.openapi.v3.SecuritySchemesOrReferences"> 2534 + & { 2535 + /** 2536 + * @generated from field: repeated gnostic.openapi.v3.NamedSecuritySchemeOrReference additional_properties = 1; 2537 + */ 2538 + additionalProperties: NamedSecuritySchemeOrReference[]; 2539 + }; 2540 + 2541 + /** 2542 + * Describes the message gnostic.openapi.v3.SecuritySchemesOrReferences. 2543 + * Use `create(SecuritySchemesOrReferencesSchema)` to create a new message. 2544 + */ 2545 + export const SecuritySchemesOrReferencesSchema: GenMessage< 2546 + SecuritySchemesOrReferences 2547 + > = /*@__PURE__*/ 2548 + messageDesc(file_gnostic_openapi_v3_openapiv3, 69); 2549 + 2550 + /** 2551 + * An object representing a Server. 2552 + * 2553 + * @generated from message gnostic.openapi.v3.Server 2554 + */ 2555 + export type Server = Message<"gnostic.openapi.v3.Server"> & { 2556 + /** 2557 + * @generated from field: string url = 1; 2558 + */ 2559 + url: string; 2560 + 2561 + /** 2562 + * @generated from field: string description = 2; 2563 + */ 2564 + description: string; 2565 + 2566 + /** 2567 + * @generated from field: gnostic.openapi.v3.ServerVariables variables = 3; 2568 + */ 2569 + variables?: ServerVariables; 2570 + 2571 + /** 2572 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 4; 2573 + */ 2574 + specificationExtension: NamedAny[]; 2575 + }; 2576 + 2577 + /** 2578 + * Describes the message gnostic.openapi.v3.Server. 2579 + * Use `create(ServerSchema)` to create a new message. 2580 + */ 2581 + export const ServerSchema: GenMessage<Server> = /*@__PURE__*/ 2582 + messageDesc(file_gnostic_openapi_v3_openapiv3, 70); 2583 + 2584 + /** 2585 + * An object representing a Server Variable for server URL template substitution. 2586 + * 2587 + * @generated from message gnostic.openapi.v3.ServerVariable 2588 + */ 2589 + export type ServerVariable = Message<"gnostic.openapi.v3.ServerVariable"> & { 2590 + /** 2591 + * @generated from field: repeated string enum = 1; 2592 + */ 2593 + enum: string[]; 2594 + 2595 + /** 2596 + * @generated from field: string default = 2; 2597 + */ 2598 + default: string; 2599 + 2600 + /** 2601 + * @generated from field: string description = 3; 2602 + */ 2603 + description: string; 2604 + 2605 + /** 2606 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 4; 2607 + */ 2608 + specificationExtension: NamedAny[]; 2609 + }; 2610 + 2611 + /** 2612 + * Describes the message gnostic.openapi.v3.ServerVariable. 2613 + * Use `create(ServerVariableSchema)` to create a new message. 2614 + */ 2615 + export const ServerVariableSchema: GenMessage<ServerVariable> = /*@__PURE__*/ 2616 + messageDesc(file_gnostic_openapi_v3_openapiv3, 71); 2617 + 2618 + /** 2619 + * @generated from message gnostic.openapi.v3.ServerVariables 2620 + */ 2621 + export type ServerVariables = Message<"gnostic.openapi.v3.ServerVariables"> & { 2622 + /** 2623 + * @generated from field: repeated gnostic.openapi.v3.NamedServerVariable additional_properties = 1; 2624 + */ 2625 + additionalProperties: NamedServerVariable[]; 2626 + }; 2627 + 2628 + /** 2629 + * Describes the message gnostic.openapi.v3.ServerVariables. 2630 + * Use `create(ServerVariablesSchema)` to create a new message. 2631 + */ 2632 + export const ServerVariablesSchema: GenMessage<ServerVariables> = /*@__PURE__*/ 2633 + messageDesc(file_gnostic_openapi_v3_openapiv3, 72); 2634 + 2635 + /** 2636 + * Any property starting with x- is valid. 2637 + * 2638 + * @generated from message gnostic.openapi.v3.SpecificationExtension 2639 + */ 2640 + export type SpecificationExtension = 2641 + & Message<"gnostic.openapi.v3.SpecificationExtension"> 2642 + & { 2643 + /** 2644 + * @generated from oneof gnostic.openapi.v3.SpecificationExtension.oneof 2645 + */ 2646 + oneof: { 2647 + /** 2648 + * @generated from field: double number = 1; 2649 + */ 2650 + value: number; 2651 + case: "number"; 2652 + } | { 2653 + /** 2654 + * @generated from field: bool boolean = 2; 2655 + */ 2656 + value: boolean; 2657 + case: "boolean"; 2658 + } | { 2659 + /** 2660 + * @generated from field: string string = 3; 2661 + */ 2662 + value: string; 2663 + case: "string"; 2664 + } | { case: undefined; value?: undefined }; 2665 + }; 2666 + 2667 + /** 2668 + * Describes the message gnostic.openapi.v3.SpecificationExtension. 2669 + * Use `create(SpecificationExtensionSchema)` to create a new message. 2670 + */ 2671 + export const SpecificationExtensionSchema: GenMessage< 2672 + SpecificationExtension 2673 + > = /*@__PURE__*/ 2674 + messageDesc(file_gnostic_openapi_v3_openapiv3, 73); 2675 + 2676 + /** 2677 + * @generated from message gnostic.openapi.v3.StringArray 2678 + */ 2679 + export type StringArray = Message<"gnostic.openapi.v3.StringArray"> & { 2680 + /** 2681 + * @generated from field: repeated string value = 1; 2682 + */ 2683 + value: string[]; 2684 + }; 2685 + 2686 + /** 2687 + * Describes the message gnostic.openapi.v3.StringArray. 2688 + * Use `create(StringArraySchema)` to create a new message. 2689 + */ 2690 + export const StringArraySchema: GenMessage<StringArray> = /*@__PURE__*/ 2691 + messageDesc(file_gnostic_openapi_v3_openapiv3, 74); 2692 + 2693 + /** 2694 + * @generated from message gnostic.openapi.v3.Strings 2695 + */ 2696 + export type Strings = Message<"gnostic.openapi.v3.Strings"> & { 2697 + /** 2698 + * @generated from field: repeated gnostic.openapi.v3.NamedString additional_properties = 1; 2699 + */ 2700 + additionalProperties: NamedString[]; 2701 + }; 2702 + 2703 + /** 2704 + * Describes the message gnostic.openapi.v3.Strings. 2705 + * Use `create(StringsSchema)` to create a new message. 2706 + */ 2707 + export const StringsSchema: GenMessage<Strings> = /*@__PURE__*/ 2708 + messageDesc(file_gnostic_openapi_v3_openapiv3, 75); 2709 + 2710 + /** 2711 + * Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances. 2712 + * 2713 + * @generated from message gnostic.openapi.v3.Tag 2714 + */ 2715 + export type Tag = Message<"gnostic.openapi.v3.Tag"> & { 2716 + /** 2717 + * @generated from field: string name = 1; 2718 + */ 2719 + name: string; 2720 + 2721 + /** 2722 + * @generated from field: string description = 2; 2723 + */ 2724 + description: string; 2725 + 2726 + /** 2727 + * @generated from field: gnostic.openapi.v3.ExternalDocs external_docs = 3; 2728 + */ 2729 + externalDocs?: ExternalDocs; 2730 + 2731 + /** 2732 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 4; 2733 + */ 2734 + specificationExtension: NamedAny[]; 2735 + }; 2736 + 2737 + /** 2738 + * Describes the message gnostic.openapi.v3.Tag. 2739 + * Use `create(TagSchema)` to create a new message. 2740 + */ 2741 + export const TagSchema: GenMessage<Tag> = /*@__PURE__*/ 2742 + messageDesc(file_gnostic_openapi_v3_openapiv3, 76); 2743 + 2744 + /** 2745 + * A metadata object that allows for more fine-tuned XML model definitions. When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior. 2746 + * 2747 + * @generated from message gnostic.openapi.v3.Xml 2748 + */ 2749 + export type Xml = Message<"gnostic.openapi.v3.Xml"> & { 2750 + /** 2751 + * @generated from field: string name = 1; 2752 + */ 2753 + name: string; 2754 + 2755 + /** 2756 + * @generated from field: string namespace = 2; 2757 + */ 2758 + namespace: string; 2759 + 2760 + /** 2761 + * @generated from field: string prefix = 3; 2762 + */ 2763 + prefix: string; 2764 + 2765 + /** 2766 + * @generated from field: bool attribute = 4; 2767 + */ 2768 + attribute: boolean; 2769 + 2770 + /** 2771 + * @generated from field: bool wrapped = 5; 2772 + */ 2773 + wrapped: boolean; 2774 + 2775 + /** 2776 + * @generated from field: repeated gnostic.openapi.v3.NamedAny specification_extension = 6; 2777 + */ 2778 + specificationExtension: NamedAny[]; 2779 + }; 2780 + 2781 + /** 2782 + * Describes the message gnostic.openapi.v3.Xml. 2783 + * Use `create(XmlSchema)` to create a new message. 2784 + */ 2785 + export const XmlSchema: GenMessage<Xml> = /*@__PURE__*/ 2786 + messageDesc(file_gnostic_openapi_v3_openapiv3, 77);
+1 -1
src/gen/openstatus/health/v1/health_pb.ts
··· 21 21 */ 22 22 export const file_openstatus_health_v1_health: GenFile = /*@__PURE__*/ 23 23 fileDesc( 24 - "CiFvcGVuc3RhdHVzL2hlYWx0aC92MS9oZWFsdGgucHJvdG8SFG9wZW5zdGF0dXMuaGVhbHRoLnYxIh8KDENoZWNrUmVxdWVzdBIPCgdzZXJ2aWNlGAEgASgJIr8BCg1DaGVja1Jlc3BvbnNlEkEKBnN0YXR1cxgBIAEoDjIxLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVzcG9uc2UuU2VydmluZ1N0YXR1cyJrCg1TZXJ2aW5nU3RhdHVzEh4KGlNFUlZJTkdfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklOR19TVEFUVVNfU0VSVklORxABEh4KGlNFUlZJTkdfU1RBVFVTX05PVF9TRVJWSU5HEAIyYQoNSGVhbHRoU2VydmljZRJQCgVDaGVjaxIiLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVxdWVzdBojLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVzcG9uc2VCUVpPZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL2hlYWx0aC92MTtoZWFsdGh2MWIGcHJvdG8z", 24 + "CiFvcGVuc3RhdHVzL2hlYWx0aC92MS9oZWFsdGgucHJvdG8SFG9wZW5zdGF0dXMuaGVhbHRoLnYxIh8KDENoZWNrUmVxdWVzdBIPCgdzZXJ2aWNlGAEgASgJIr8BCg1DaGVja1Jlc3BvbnNlEkEKBnN0YXR1cxgBIAEoDjIxLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVzcG9uc2UuU2VydmluZ1N0YXR1cyJrCg1TZXJ2aW5nU3RhdHVzEh4KGlNFUlZJTkdfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklOR19TVEFUVVNfU0VSVklORxABEh4KGlNFUlZJTkdfU1RBVFVTX05PVF9TRVJWSU5HEAIyZgoNSGVhbHRoU2VydmljZRJVCgVDaGVjaxIiLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVxdWVzdBojLm9wZW5zdGF0dXMuaGVhbHRoLnYxLkNoZWNrUmVzcG9uc2UiA5ACAUJRWk9naXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvaGVhbHRoL3YxO2hlYWx0aHYxYgZwcm90bzM", 25 25 ); 26 26 27 27 /**
+39 -4
src/gen/openstatus/maintenance/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 { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 16 17 import type { Maintenance, MaintenanceSummary } from "./maintenance_pb.ts"; 17 18 import { file_openstatus_maintenance_v1_maintenance } from "./maintenance_pb.ts"; 18 19 import type { Message } from "@bufbuild/protobuf"; ··· 22 23 */ 23 24 export const file_openstatus_maintenance_v1_service: GenFile = /*@__PURE__*/ 24 25 fileDesc( 25 - "CidvcGVuc3RhdHVzL21haW50ZW5hbmNlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEi2QIKGENyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBIZCgV0aXRsZRgBIAEoCUIKukgHcgUQARiAAhIYCgdtZXNzYWdlGAIgASgJQge6SARyAhABElkKBGZyb20YAyABKAlCS7pISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJBJXCgJ0bxgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkEhgKB3BhZ2VfaWQYBSABKAlCB7pIBHICEAESGgoScGFnZV9jb21wb25lbnRfaWRzGAYgAygJEhMKBm5vdGlmeRgHIAEoCEgAiAEBQgkKB19ub3RpZnkiWAoZQ3JlYXRlTWFpbnRlbmFuY2VSZXNwb25zZRI7CgttYWludGVuYW5jZRgBIAEoCzImLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuTWFpbnRlbmFuY2UiLAoVR2V0TWFpbnRlbmFuY2VSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIlUKFkdldE1haW50ZW5hbmNlUmVzcG9uc2USOwoLbWFpbnRlbmFuY2UYASABKAsyJi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLk1haW50ZW5hbmNlIo0BChdMaXN0TWFpbnRlbmFuY2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQESFAoHcGFnZV9pZBgDIAEoCUgCiAEBQggKBl9saW1pdEIJCgdfb2Zmc2V0QgoKCF9wYWdlX2lkInMKGExpc3RNYWludGVuYW5jZXNSZXNwb25zZRJDCgxtYWludGVuYW5jZXMYASADKAsyLS5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLk1haW50ZW5hbmNlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIocDChhVcGRhdGVNYWludGVuYW5jZVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESHgoFdGl0bGUYAiABKAlCCrpIB3IFEAEYgAJIAIgBARIUCgdtZXNzYWdlGAMgASgJSAGIAQESXgoEZnJvbRgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkSAKIAQESXAoCdG8YBSABKAlCS7pISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJEgDiAEBEhQKB3BhZ2VfaWQYBiABKAlIBIgBARIaChJwYWdlX2NvbXBvbmVudF9pZHMYByADKAlCCAoGX3RpdGxlQgoKCF9tZXNzYWdlQgcKBV9mcm9tQgUKA190b0IKCghfcGFnZV9pZCJYChlVcGRhdGVNYWludGVuYW5jZVJlc3BvbnNlEjsKC21haW50ZW5hbmNlGAEgASgLMiYub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZSIvChhEZWxldGVNYWludGVuYW5jZVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLAoZRGVsZXRlTWFpbnRlbmFuY2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIMogFChJNYWludGVuYW5jZVNlcnZpY2USfgoRQ3JlYXRlTWFpbnRlbmFuY2USMy5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkNyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBo0Lm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuQ3JlYXRlTWFpbnRlbmFuY2VSZXNwb25zZRJ1Cg5HZXRNYWludGVuYW5jZRIwLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuR2V0TWFpbnRlbmFuY2VSZXF1ZXN0GjEub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5HZXRNYWludGVuYW5jZVJlc3BvbnNlEnsKEExpc3RNYWludGVuYW5jZXMSMi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkxpc3RNYWludGVuYW5jZXNSZXF1ZXN0GjMub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5MaXN0TWFpbnRlbmFuY2VzUmVzcG9uc2USfgoRVXBkYXRlTWFpbnRlbmFuY2USMy5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLlVwZGF0ZU1haW50ZW5hbmNlUmVxdWVzdBo0Lm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuVXBkYXRlTWFpbnRlbmFuY2VSZXNwb25zZRJ+ChFEZWxldGVNYWludGVuYW5jZRIzLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuRGVsZXRlTWFpbnRlbmFuY2VSZXF1ZXN0GjQub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5EZWxldGVNYWludGVuYW5jZVJlc3BvbnNlQltaWWdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9tYWludGVuYW5jZS92MTttYWludGVuYW5jZXYxYgZwcm90bzM", 26 - [file_buf_validate_validate, file_openstatus_maintenance_v1_maintenance], 26 + "CidvcGVuc3RhdHVzL21haW50ZW5hbmNlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEiqAMKGENyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBIyCgV0aXRsZRgBIAEoCUIjukcWOhQSEkRhdGFiYXNlIE1pZ3JhdGlvbrpIB3IFEAEYgAISGAoHbWVzc2FnZRgCIAEoCUIHukgEcgIQARJ0CgRmcm9tGAMgASgJQma6Rxg6FhIUMjAyNC0wMy0wMVQwMjowMDowMFq6SEhyRjJEXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGR7MSw5fSk/KFp8WystXVxkezJ9OlxkezJ9KSQScgoCdG8YBCABKAlCZrpHGDoWEhQyMDI0LTAzLTAxVDA2OjAwOjAwWrpISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJBIYCgdwYWdlX2lkGAUgASgJQge6SARyAhABEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgGIAMoCRITCgZub3RpZnkYByABKAhIAIgBAUIJCgdfbm90aWZ5IlgKGUNyZWF0ZU1haW50ZW5hbmNlUmVzcG9uc2USOwoLbWFpbnRlbmFuY2UYASABKAsyJi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLk1haW50ZW5hbmNlIiwKFUdldE1haW50ZW5hbmNlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJVChZHZXRNYWludGVuYW5jZVJlc3BvbnNlEjsKC21haW50ZW5hbmNlGAEgASgLMiYub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZSKNAQoXTGlzdE1haW50ZW5hbmNlc1JlcXVlc3QSHQoFbGltaXQYASABKAVCCbpIBhoEGGQoAUgAiAEBEhwKBm9mZnNldBgCIAEoBUIHukgEGgIoAEgBiAEBEhQKB3BhZ2VfaWQYAyABKAlIAogBAUIICgZfbGltaXRCCQoHX29mZnNldEIKCghfcGFnZV9pZCJzChhMaXN0TWFpbnRlbmFuY2VzUmVzcG9uc2USQwoMbWFpbnRlbmFuY2VzGAEgAygLMi0ub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZVN1bW1hcnkSEgoKdG90YWxfc2l6ZRgCIAEoBSLRAwoYVXBkYXRlTWFpbnRlbmFuY2VSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEh4KBXRpdGxlGAIgASgJQgq6SAdyBRABGIACSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBEl4KBGZyb20YBCABKAlCS7pISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJEgCiAEBElwKAnRvGAUgASgJQku6SEhyRjJEXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGR7MSw5fSk/KFp8WystXVxkezJ9OlxkezJ9KSRIA4gBARIYCgdwYWdlX2lkGAYgASgJQgIYAUgEiAEBEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgHIAMoCRImChl1cGRhdGVfcGFnZV9jb21wb25lbnRfaWRzGAggASgISAWIAQFCCAoGX3RpdGxlQgoKCF9tZXNzYWdlQgcKBV9mcm9tQgUKA190b0IKCghfcGFnZV9pZEIcChpfdXBkYXRlX3BhZ2VfY29tcG9uZW50X2lkcyJYChlVcGRhdGVNYWludGVuYW5jZVJlc3BvbnNlEjsKC21haW50ZW5hbmNlGAEgASgLMiYub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZSIvChhEZWxldGVNYWludGVuYW5jZVJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLAoZRGVsZXRlTWFpbnRlbmFuY2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIMpMFChJNYWludGVuYW5jZVNlcnZpY2USfgoRQ3JlYXRlTWFpbnRlbmFuY2USMy5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkNyZWF0ZU1haW50ZW5hbmNlUmVxdWVzdBo0Lm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuQ3JlYXRlTWFpbnRlbmFuY2VSZXNwb25zZRJ6Cg5HZXRNYWludGVuYW5jZRIwLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuR2V0TWFpbnRlbmFuY2VSZXF1ZXN0GjEub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5HZXRNYWludGVuYW5jZVJlc3BvbnNlIgOQAgESgAEKEExpc3RNYWludGVuYW5jZXMSMi5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkxpc3RNYWludGVuYW5jZXNSZXF1ZXN0GjMub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5MaXN0TWFpbnRlbmFuY2VzUmVzcG9uc2UiA5ACARJ+ChFVcGRhdGVNYWludGVuYW5jZRIzLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuVXBkYXRlTWFpbnRlbmFuY2VSZXF1ZXN0GjQub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5VcGRhdGVNYWludGVuYW5jZVJlc3BvbnNlEn4KEURlbGV0ZU1haW50ZW5hbmNlEjMub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5EZWxldGVNYWludGVuYW5jZVJlcXVlc3QaNC5vcGVuc3RhdHVzLm1haW50ZW5hbmNlLnYxLkRlbGV0ZU1haW50ZW5hbmNlUmVzcG9uc2VCW1pZZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL21haW50ZW5hbmNlL3YxO21haW50ZW5hbmNldjFiBnByb3RvMw", 27 + [ 28 + file_buf_validate_validate, 29 + file_gnostic_openapi_v3_annotations, 30 + file_openstatus_maintenance_v1_maintenance, 31 + ], 27 32 ); 28 33 29 34 /** 35 + * CreateMaintenanceRequest is the request to create a new maintenance window. 36 + * 30 37 * @generated from message openstatus.maintenance.v1.CreateMaintenanceRequest 31 38 */ 32 39 export type CreateMaintenanceRequest = ··· 92 99 messageDesc(file_openstatus_maintenance_v1_service, 0); 93 100 94 101 /** 102 + * CreateMaintenanceResponse is the response after creating a maintenance window. 103 + * 95 104 * @generated from message openstatus.maintenance.v1.CreateMaintenanceResponse 96 105 */ 97 106 export type CreateMaintenanceResponse = ··· 115 124 messageDesc(file_openstatus_maintenance_v1_service, 1); 116 125 117 126 /** 127 + * GetMaintenanceRequest is the request to get a maintenance window by ID. 128 + * 118 129 * @generated from message openstatus.maintenance.v1.GetMaintenanceRequest 119 130 */ 120 131 export type GetMaintenanceRequest = ··· 138 149 messageDesc(file_openstatus_maintenance_v1_service, 2); 139 150 140 151 /** 152 + * GetMaintenanceResponse is the response containing the maintenance window. 153 + * 141 154 * @generated from message openstatus.maintenance.v1.GetMaintenanceResponse 142 155 */ 143 156 export type GetMaintenanceResponse = ··· 161 174 messageDesc(file_openstatus_maintenance_v1_service, 3); 162 175 163 176 /** 177 + * ListMaintenancesRequest is the request to list maintenance windows. 178 + * 164 179 * @generated from message openstatus.maintenance.v1.ListMaintenancesRequest 165 180 */ 166 181 export type ListMaintenancesRequest = ··· 198 213 messageDesc(file_openstatus_maintenance_v1_service, 4); 199 214 200 215 /** 216 + * ListMaintenancesResponse is the response containing maintenance window summaries. 217 + * 201 218 * @generated from message openstatus.maintenance.v1.ListMaintenancesResponse 202 219 */ 203 220 export type ListMaintenancesResponse = ··· 228 245 messageDesc(file_openstatus_maintenance_v1_service, 5); 229 246 230 247 /** 248 + * UpdateMaintenanceRequest is the request to update a maintenance window. 249 + * 231 250 * @generated from message openstatus.maintenance.v1.UpdateMaintenanceRequest 232 251 */ 233 252 export type UpdateMaintenanceRequest = ··· 269 288 to?: string; 270 289 271 290 /** 272 - * New page ID (optional). 291 + * Deprecated: page_id is now derived from page_component_ids. 273 292 * 274 - * @generated from field: optional string page_id = 6; 293 + * @generated from field: optional string page_id = 6 [deprecated = true]; 294 + * @deprecated 275 295 */ 276 296 pageId?: string; 277 297 ··· 281 301 * @generated from field: repeated string page_component_ids = 7; 282 302 */ 283 303 pageComponentIds: string[]; 304 + 305 + /** 306 + * Set to true to update page component associations. 307 + * When true, page_component_ids replaces the existing list (empty clears all). 308 + * When false or unset, page_component_ids is ignored and existing associations are preserved. 309 + * 310 + * @generated from field: optional bool update_page_component_ids = 8; 311 + */ 312 + updatePageComponentIds?: boolean; 284 313 }; 285 314 286 315 /** ··· 293 322 messageDesc(file_openstatus_maintenance_v1_service, 6); 294 323 295 324 /** 325 + * UpdateMaintenanceResponse is the response after updating a maintenance window. 326 + * 296 327 * @generated from message openstatus.maintenance.v1.UpdateMaintenanceResponse 297 328 */ 298 329 export type UpdateMaintenanceResponse = ··· 316 347 messageDesc(file_openstatus_maintenance_v1_service, 7); 317 348 318 349 /** 350 + * DeleteMaintenanceRequest is the request to delete a maintenance window. 351 + * 319 352 * @generated from message openstatus.maintenance.v1.DeleteMaintenanceRequest 320 353 */ 321 354 export type DeleteMaintenanceRequest = ··· 339 372 messageDesc(file_openstatus_maintenance_v1_service, 8); 340 373 341 374 /** 375 + * DeleteMaintenanceResponse is the response after deleting a maintenance window. 376 + * 342 377 * @generated from message openstatus.maintenance.v1.DeleteMaintenanceResponse 343 378 */ 344 379 export type DeleteMaintenanceResponse =
+3 -1
src/gen/openstatus/monitor/v1/dns_monitor_pb.ts
··· 5 5 import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"; 6 6 import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 7 7 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 8 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 8 9 import type { RecordAssertion } from "./assertions_pb.ts"; 9 10 import { file_openstatus_monitor_v1_assertions } from "./assertions_pb.ts"; 10 11 import type { OpenTelemetryConfig } from "./http_monitor_pb.ts"; ··· 18 19 */ 19 20 export const file_openstatus_monitor_v1_dns_monitor: GenFile = /*@__PURE__*/ 20 21 fileDesc( 21 - "CidvcGVuc3RhdHVzL21vbml0b3IvdjEvZG5zX21vbml0b3IucHJvdG8SFW9wZW5zdGF0dXMubW9uaXRvci52MSLEBAoKRE5TTW9uaXRvchIKCgJpZBgBIAEoCRIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEhcKA3VyaRgDIAEoCUIKukgHcgUQARiAEBJBCgtwZXJpb2RpY2l0eRgEIAEoDjIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5QZXJpb2RpY2l0eUIIukgFggECIAASHAoHdGltZW91dBgFIAEoA0ILukgIIgYYwKkHKAASJQoLZGVncmFkZWRfYXQYBiABKANCC7pICCIGGMCpBygASACIAQESGAoFcmV0cnkYByABKANCCbpIBiIEGAooABJLChFyZWNvcmRfYXNzZXJ0aW9ucxgIIAMoCzImLm9wZW5zdGF0dXMubW9uaXRvci52MS5SZWNvcmRBc3NlcnRpb25CCLpIBZIBAhAKEh0KC2Rlc2NyaXB0aW9uGAkgASgJQgi6SAVyAxiACBIOCgZhY3RpdmUYCiABKAgSDgoGcHVibGljGAsgASgIEj8KB3JlZ2lvbnMYDCADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQg+6SAySAQkQHCIFggECIAASQgoOb3Blbl90ZWxlbWV0cnkYDSABKAsyKi5vcGVuc3RhdHVzLm1vbml0b3IudjEuT3BlblRlbGVtZXRyeUNvbmZpZxI0CgZzdGF0dXMYDiABKA4yJC5vcGVuc3RhdHVzLm1vbml0b3IudjEuTW9uaXRvclN0YXR1c0IOCgxfZGVncmFkZWRfYXRCU1pRZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL21vbml0b3IvdjE7bW9uaXRvcnYxYgZwcm90bzM", 22 + "CidvcGVuc3RhdHVzL21vbml0b3IvdjEvZG5zX21vbml0b3IucHJvdG8SFW9wZW5zdGF0dXMubW9uaXRvci52MSLxBAoKRE5TTW9uaXRvchIKCgJpZBgBIAEoCRIzCgRuYW1lGAIgASgJQiW6Rxg6FhIURE5TIFJlc29sdXRpb24gQ2hlY2u6SAdyBRABGIACEikKA3VyaRgDIAEoCUIcukcPOg0SC2V4YW1wbGUuY29tukgHcgUQARiAEBJBCgtwZXJpb2RpY2l0eRgEIAEoDjIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5QZXJpb2RpY2l0eUIIukgFggECIAASHAoHdGltZW91dBgFIAEoA0ILukgIIgYYwKkHKAASJQoLZGVncmFkZWRfYXQYBiABKANCC7pICCIGGMCpBygASACIAQESGAoFcmV0cnkYByABKANCCbpIBiIEGAooABJLChFyZWNvcmRfYXNzZXJ0aW9ucxgIIAMoCzImLm9wZW5zdGF0dXMubW9uaXRvci52MS5SZWNvcmRBc3NlcnRpb25CCLpIBZIBAhAKEh0KC2Rlc2NyaXB0aW9uGAkgASgJQgi6SAVyAxiACBIOCgZhY3RpdmUYCiABKAgSDgoGcHVibGljGAsgASgIEj8KB3JlZ2lvbnMYDCADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQg+6SAySAQkQHCIFggECIAASQgoOb3Blbl90ZWxlbWV0cnkYDSABKAsyKi5vcGVuc3RhdHVzLm1vbml0b3IudjEuT3BlblRlbGVtZXRyeUNvbmZpZxI0CgZzdGF0dXMYDiABKA4yJC5vcGVuc3RhdHVzLm1vbml0b3IudjEuTW9uaXRvclN0YXR1c0IOCgxfZGVncmFkZWRfYXRCU1pRZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL21vbml0b3IvdjE7bW9uaXRvcnYxYgZwcm90bzM", 22 23 [ 23 24 file_buf_validate_validate, 25 + file_gnostic_openapi_v3_annotations, 24 26 file_openstatus_monitor_v1_assertions, 25 27 file_openstatus_monitor_v1_http_monitor, 26 28 file_openstatus_monitor_v1_monitor,
+7 -1
src/gen/openstatus/monitor/v1/http_monitor_pb.ts
··· 9 9 } from "@bufbuild/protobuf/codegenv2"; 10 10 import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 11 11 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 12 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 12 13 import type { 13 14 BodyAssertion, 14 15 HeaderAssertion, ··· 24 25 */ 25 26 export const file_openstatus_monitor_v1_http_monitor: GenFile = /*@__PURE__*/ 26 27 fileDesc( 27 - "CihvcGVuc3RhdHVzL21vbml0b3IvdjEvaHR0cF9tb25pdG9yLnByb3RvEhVvcGVuc3RhdHVzLm1vbml0b3IudjEiLgoHSGVhZGVycxIUCgNrZXkYASABKAlCB7pIBHICEAESDQoFdmFsdWUYAiABKAkibAoTT3BlblRlbGVtZXRyeUNvbmZpZxIaCghlbmRwb2ludBgBIAEoCUIIukgFcgMYgBASOQoHaGVhZGVycxgCIAMoCzIeLm9wZW5zdGF0dXMubW9uaXRvci52MS5IZWFkZXJzQgi6SAWSAQIQFCKhBwoLSFRUUE1vbml0b3ISCgoCaWQYASABKAkSGAoEbmFtZRgCIAEoCUIKukgHcgUQARiAAhIaCgN1cmwYAyABKAlCDbpICnIIEAEYgBCIAQESQQoLcGVyaW9kaWNpdHkYBCABKA4yIi5vcGVuc3RhdHVzLm1vbml0b3IudjEuUGVyaW9kaWNpdHlCCLpIBYIBAiAAEjsKBm1ldGhvZBgFIAEoDjIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTWV0aG9kQgi6SAWCAQIgABIMCgRib2R5GAYgASgJEhwKB3RpbWVvdXQYByABKANCC7pICCIGGMCpBygAEiUKC2RlZ3JhZGVkX2F0GAggASgDQgu6SAgiBhjAqQcoAEgAiAEBEhgKBXJldHJ5GAkgASgDQgm6SAYiBBgKKAASHQoQZm9sbG93X3JlZGlyZWN0cxgKIAEoCEgBiAEBEjkKB2hlYWRlcnMYCyADKAsyHi5vcGVuc3RhdHVzLm1vbml0b3IudjEuSGVhZGVyc0IIukgFkgECEBQSVAoWc3RhdHVzX2NvZGVfYXNzZXJ0aW9ucxgMIAMoCzIqLm9wZW5zdGF0dXMubW9uaXRvci52MS5TdGF0dXNDb2RlQXNzZXJ0aW9uQgi6SAWSAQIQChJHCg9ib2R5X2Fzc2VydGlvbnMYDSADKAsyJC5vcGVuc3RhdHVzLm1vbml0b3IudjEuQm9keUFzc2VydGlvbkIIukgFkgECEAoSSwoRaGVhZGVyX2Fzc2VydGlvbnMYDiADKAsyJi5vcGVuc3RhdHVzLm1vbml0b3IudjEuSGVhZGVyQXNzZXJ0aW9uQgi6SAWSAQIQChIdCgtkZXNjcmlwdGlvbhgPIAEoCUIIukgFcgMYgAgSDgoGYWN0aXZlGBAgASgIEg4KBnB1YmxpYxgRIAEoCBI/CgdyZWdpb25zGBIgAygOMh0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvbkIPukgMkgEJEBwiBYIBAiAAEkIKDm9wZW5fdGVsZW1ldHJ5GBMgASgLMioub3BlbnN0YXR1cy5tb25pdG9yLnYxLk9wZW5UZWxlbWV0cnlDb25maWcSNAoGc3RhdHVzGBQgASgOMiQub3BlbnN0YXR1cy5tb25pdG9yLnYxLk1vbml0b3JTdGF0dXNCDgoMX2RlZ3JhZGVkX2F0QhMKEV9mb2xsb3dfcmVkaXJlY3RzKvcBCgpIVFRQTWV0aG9kEhsKF0hUVFBfTUVUSE9EX1VOU1BFQ0lGSUVEEAASEwoPSFRUUF9NRVRIT0RfR0VUEAESFAoQSFRUUF9NRVRIT0RfUE9TVBACEhQKEEhUVFBfTUVUSE9EX0hFQUQQAxITCg9IVFRQX01FVEhPRF9QVVQQBBIVChFIVFRQX01FVEhPRF9QQVRDSBAFEhYKEkhUVFBfTUVUSE9EX0RFTEVURRAGEhUKEUhUVFBfTUVUSE9EX1RSQUNFEAcSFwoTSFRUUF9NRVRIT0RfQ09OTkVDVBAIEhcKE0hUVFBfTUVUSE9EX09QVElPTlMQCUJTWlFnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbW9uaXRvci92MTttb25pdG9ydjFiBnByb3RvMw", 28 + "CihvcGVuc3RhdHVzL21vbml0b3IvdjEvaHR0cF9tb25pdG9yLnByb3RvEhVvcGVuc3RhdHVzLm1vbml0b3IudjEiWgoHSGVhZGVycxIoCgNrZXkYASABKAlCG7pHEToPEg1BdXRob3JpemF0aW9uukgEcgIQARIlCgV2YWx1ZRgCIAEoCUIWukcTOhESD0JlYXJlciB0b2tlbjEyMyJsChNPcGVuVGVsZW1ldHJ5Q29uZmlnEhoKCGVuZHBvaW50GAEgASgJQgi6SAVyAxiAEBI5CgdoZWFkZXJzGAIgAygLMh4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhlYWRlcnNCCLpIBZIBAhAUIoEICgtIVFRQTW9uaXRvchIKCgJpZBgBIAEoCRI6CgRuYW1lGAIgASgJQiy6Rx86HRIbUHJvZHVjdGlvbiBBUEkgSGVhbHRoIENoZWNrukgHcgUQARiAAhI/CgN1cmwYAyABKAlCMrpHIjogEh5odHRwczovL2FwaS5leGFtcGxlLmNvbS9oZWFsdGi6SApyCBABGIAQiAEBEkEKC3BlcmlvZGljaXR5GAQgASgOMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLlBlcmlvZGljaXR5Qgi6SAWCAQIgABI7CgZtZXRob2QYBSABKA4yIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuSFRUUE1ldGhvZEIIukgFggECIAASJQoEYm9keRgGIAEoCUIXukcUOhISEHsia2V5IjogInZhbHVlIn0SHAoHdGltZW91dBgHIAEoA0ILukgIIgYYwKkHKAASJQoLZGVncmFkZWRfYXQYCCABKANCC7pICCIGGMCpBygASACIAQESGAoFcmV0cnkYCSABKANCCbpIBiIEGAooABIdChBmb2xsb3dfcmVkaXJlY3RzGAogASgISAGIAQESOQoHaGVhZGVycxgLIAMoCzIeLm9wZW5zdGF0dXMubW9uaXRvci52MS5IZWFkZXJzQgi6SAWSAQIQFBJUChZzdGF0dXNfY29kZV9hc3NlcnRpb25zGAwgAygLMioub3BlbnN0YXR1cy5tb25pdG9yLnYxLlN0YXR1c0NvZGVBc3NlcnRpb25CCLpIBZIBAhAKEkcKD2JvZHlfYXNzZXJ0aW9ucxgNIAMoCzIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Cb2R5QXNzZXJ0aW9uQgi6SAWSAQIQChJLChFoZWFkZXJfYXNzZXJ0aW9ucxgOIAMoCzImLm9wZW5zdGF0dXMubW9uaXRvci52MS5IZWFkZXJBc3NlcnRpb25CCLpIBZIBAhAKEh0KC2Rlc2NyaXB0aW9uGA8gASgJQgi6SAVyAxiACBIOCgZhY3RpdmUYECABKAgSDgoGcHVibGljGBEgASgIEj8KB3JlZ2lvbnMYEiADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQg+6SAySAQkQHCIFggECIAASQgoOb3Blbl90ZWxlbWV0cnkYEyABKAsyKi5vcGVuc3RhdHVzLm1vbml0b3IudjEuT3BlblRlbGVtZXRyeUNvbmZpZxI0CgZzdGF0dXMYFCABKA4yJC5vcGVuc3RhdHVzLm1vbml0b3IudjEuTW9uaXRvclN0YXR1c0IOCgxfZGVncmFkZWRfYXRCEwoRX2ZvbGxvd19yZWRpcmVjdHMq9wEKCkhUVFBNZXRob2QSGwoXSFRUUF9NRVRIT0RfVU5TUEVDSUZJRUQQABITCg9IVFRQX01FVEhPRF9HRVQQARIUChBIVFRQX01FVEhPRF9QT1NUEAISFAoQSFRUUF9NRVRIT0RfSEVBRBADEhMKD0hUVFBfTUVUSE9EX1BVVBAEEhUKEUhUVFBfTUVUSE9EX1BBVENIEAUSFgoSSFRUUF9NRVRIT0RfREVMRVRFEAYSFQoRSFRUUF9NRVRIT0RfVFJBQ0UQBxIXChNIVFRQX01FVEhPRF9DT05ORUNUEAgSFwoTSFRUUF9NRVRIT0RfT1BUSU9OUxAJQlNaUWdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9tb25pdG9yL3YxO21vbml0b3J2MWIGcHJvdG8z", 28 29 [ 29 30 file_buf_validate_validate, 31 + file_gnostic_openapi_v3_annotations, 30 32 file_openstatus_monitor_v1_assertions, 31 33 file_openstatus_monitor_v1_monitor, 32 34 ], ··· 39 41 */ 40 42 export type Headers = Message<"openstatus.monitor.v1.Headers"> & { 41 43 /** 44 + * Header name. 45 + * 42 46 * @generated from field: string key = 1; 43 47 */ 44 48 key: string; 45 49 46 50 /** 51 + * Header value. 52 + * 47 53 * @generated from field: string value = 2; 48 54 */ 49 55 value: string;
+8 -6
src/gen/openstatus/monitor/v1/service_pb.ts
··· 15 15 serviceDesc, 16 16 } from "@bufbuild/protobuf/codegenv2"; 17 17 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 18 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 18 19 import type { DNSMonitor } from "./dns_monitor_pb.ts"; 19 20 import { file_openstatus_monitor_v1_dns_monitor } from "./dns_monitor_pb.ts"; 20 21 import type { HTTPMonitor } from "./http_monitor_pb.ts"; ··· 30 31 */ 31 32 export const file_openstatus_monitor_v1_service: GenFile = /*@__PURE__*/ 32 33 fileDesc( 33 - "CiNvcGVuc3RhdHVzL21vbml0b3IvdjEvc2VydmljZS5wcm90bxIVb3BlbnN0YXR1cy5tb25pdG9yLnYxIlcKGENyZWF0ZUhUVFBNb25pdG9yUmVxdWVzdBI7Cgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yQga6SAPIAQEiUAoZQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRIzCgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yIlUKF0NyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0EjoKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvckIGukgDyAEBIk4KGENyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3IiVQoXQ3JlYXRlRE5TTW9uaXRvclJlcXVlc3QSOgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5ETlNNb25pdG9yQga6SAPIAQEiTgoYQ3JlYXRlRE5TTW9uaXRvclJlc3BvbnNlEjIKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvciJ1ChhVcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESOAoHbW9uaXRvchgCIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIlAKGVVwZGF0ZUhUVFBNb25pdG9yUmVzcG9uc2USMwoHbW9uaXRvchgBIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvciJzChdVcGRhdGVUQ1BNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARI3Cgdtb25pdG9yGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIAIgBAUIKCghfbW9uaXRvciJOChhVcGRhdGVUQ1BNb25pdG9yUmVzcG9uc2USMgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5UQ1BNb25pdG9yInMKF1VwZGF0ZUROU01vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjcKB21vbml0b3IYAiABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIk4KGFVwZGF0ZUROU01vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLkROU01vbml0b3IiLAoVVHJpZ2dlck1vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIikKFlRyaWdnZXJNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrChREZWxldGVNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIoChVEZWxldGVNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnChNMaXN0TW9uaXRvcnNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCLXAQoUTGlzdE1vbml0b3JzUmVzcG9uc2USOQoNaHR0cF9tb25pdG9ycxgBIAMoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvchI3Cgx0Y3BfbW9uaXRvcnMYAiADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvchI3CgxkbnNfbW9uaXRvcnMYAyADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvchISCgp0b3RhbF9zaXplGAQgASgFIi4KF0dldE1vbml0b3JTdGF0dXNSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABInMKDFJlZ2lvblN0YXR1cxItCgZyZWdpb24YASABKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uEjQKBnN0YXR1cxgCIAEoDjIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yU3RhdHVzIlwKGEdldE1vbml0b3JTdGF0dXNSZXNwb25zZRIKCgJpZBgBIAEoCRI0CgdyZWdpb25zGAIgAygLMiMub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvblN0YXR1cyKxAQoNTW9uaXRvckNvbmZpZxIyCgRodHRwGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9ySAASMAoDdGNwGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIABIwCgNkbnMYAyABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAQggKBmNvbmZpZyKfAQoYR2V0TW9uaXRvclN1bW1hcnlSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjQKCnRpbWVfcmFuZ2UYAiABKA4yIC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVGltZVJhbmdlEjgKB3JlZ2lvbnMYAyADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQgi6SAWSAQIQHCKsAgoZR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxsYXN0X3BpbmdfYXQYAiABKAkSGAoQdG90YWxfc3VjY2Vzc2Z1bBgDIAEoAxIWCg50b3RhbF9kZWdyYWRlZBgEIAEoAxIUCgx0b3RhbF9mYWlsZWQYBSABKAMSCwoDcDUwGAYgASgDEgsKA3A3NRgHIAEoAxILCgNwOTAYCCABKAMSCwoDcDk1GAkgASgDEgsKA3A5ORgKIAEoAxI0Cgp0aW1lX3JhbmdlGAsgASgOMiAub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRpbWVSYW5nZRIuCgdyZWdpb25zGAwgAygOMh0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvbiIoChFHZXRNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJLChJHZXRNb25pdG9yUmVzcG9uc2USNQoHbW9uaXRvchgBIAEoCzIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yQ29uZmlnKmEKCVRpbWVSYW5nZRIaChZUSU1FX1JBTkdFX1VOU1BFQ0lGSUVEEAASEQoNVElNRV9SQU5HRV8xRBABEhEKDVRJTUVfUkFOR0VfN0QQAhISCg5USU1FX1JBTkdFXzE0RBADMugKCg5Nb25pdG9yU2VydmljZRJ2ChFDcmVhdGVIVFRQTW9uaXRvchIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5DcmVhdGVIVFRQTW9uaXRvclJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRJzChBDcmVhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBDcmVhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXNwb25zZRJ2ChFVcGRhdGVIVFRQTW9uaXRvchIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVXBkYXRlSFRUUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXNwb25zZRJtCg5UcmlnZ2VyTW9uaXRvchIsLm9wZW5zdGF0dXMubW9uaXRvci52MS5UcmlnZ2VyTW9uaXRvclJlcXVlc3QaLS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVHJpZ2dlck1vbml0b3JSZXNwb25zZRJqCg1EZWxldGVNb25pdG9yEisub3BlbnN0YXR1cy5tb25pdG9yLnYxLkRlbGV0ZU1vbml0b3JSZXF1ZXN0Giwub3BlbnN0YXR1cy5tb25pdG9yLnYxLkRlbGV0ZU1vbml0b3JSZXNwb25zZRJnCgxMaXN0TW9uaXRvcnMSKi5vcGVuc3RhdHVzLm1vbml0b3IudjEuTGlzdE1vbml0b3JzUmVxdWVzdBorLm9wZW5zdGF0dXMubW9uaXRvci52MS5MaXN0TW9uaXRvcnNSZXNwb25zZRJzChBHZXRNb25pdG9yU3RhdHVzEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXNwb25zZRJ2ChFHZXRNb25pdG9yU3VtbWFyeRIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yU3VtbWFyeVJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZRJhCgpHZXRNb25pdG9yEigub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JSZXF1ZXN0Gikub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JSZXNwb25zZUJTWlFnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbW9uaXRvci92MTttb25pdG9ydjFiBnByb3RvMw", 34 + "CiNvcGVuc3RhdHVzL21vbml0b3IvdjEvc2VydmljZS5wcm90bxIVb3BlbnN0YXR1cy5tb25pdG9yLnYxIlcKGENyZWF0ZUhUVFBNb25pdG9yUmVxdWVzdBI7Cgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yQga6SAPIAQEiUAoZQ3JlYXRlSFRUUE1vbml0b3JSZXNwb25zZRIzCgdtb25pdG9yGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9yIlUKF0NyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0EjoKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvckIGukgDyAEBIk4KGENyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3IiVQoXQ3JlYXRlRE5TTW9uaXRvclJlcXVlc3QSOgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5ETlNNb25pdG9yQga6SAPIAQEiTgoYQ3JlYXRlRE5TTW9uaXRvclJlc3BvbnNlEjIKB21vbml0b3IYASABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvciJ1ChhVcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESOAoHbW9uaXRvchgCIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIlAKGVVwZGF0ZUhUVFBNb25pdG9yUmVzcG9uc2USMwoHbW9uaXRvchgBIAEoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvciJzChdVcGRhdGVUQ1BNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARI3Cgdtb25pdG9yGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIAIgBAUIKCghfbW9uaXRvciJOChhVcGRhdGVUQ1BNb25pdG9yUmVzcG9uc2USMgoHbW9uaXRvchgBIAEoCzIhLm9wZW5zdGF0dXMubW9uaXRvci52MS5UQ1BNb25pdG9yInMKF1VwZGF0ZUROU01vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjcKB21vbml0b3IYAiABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAiAEBQgoKCF9tb25pdG9yIk4KGFVwZGF0ZUROU01vbml0b3JSZXNwb25zZRIyCgdtb25pdG9yGAEgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLkROU01vbml0b3IiLAoVVHJpZ2dlck1vbml0b3JSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIikKFlRyaWdnZXJNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIrChREZWxldGVNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIoChVEZWxldGVNb25pdG9yUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnChNMaXN0TW9uaXRvcnNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCLXAQoUTGlzdE1vbml0b3JzUmVzcG9uc2USOQoNaHR0cF9tb25pdG9ycxgBIAMoCzIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5IVFRQTW9uaXRvchI3Cgx0Y3BfbW9uaXRvcnMYAiADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuVENQTW9uaXRvchI3CgxkbnNfbW9uaXRvcnMYAyADKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvchISCgp0b3RhbF9zaXplGAQgASgFIi4KF0dldE1vbml0b3JTdGF0dXNSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABInMKDFJlZ2lvblN0YXR1cxItCgZyZWdpb24YASABKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uEjQKBnN0YXR1cxgCIAEoDjIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yU3RhdHVzIlwKGEdldE1vbml0b3JTdGF0dXNSZXNwb25zZRIKCgJpZBgBIAEoCRI0CgdyZWdpb25zGAIgAygLMiMub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvblN0YXR1cyKxAQoNTW9uaXRvckNvbmZpZxIyCgRodHRwGAEgASgLMiIub3BlbnN0YXR1cy5tb25pdG9yLnYxLkhUVFBNb25pdG9ySAASMAoDdGNwGAIgASgLMiEub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRDUE1vbml0b3JIABIwCgNkbnMYAyABKAsyIS5vcGVuc3RhdHVzLm1vbml0b3IudjEuRE5TTW9uaXRvckgAQggKBmNvbmZpZyKfAQoYR2V0TW9uaXRvclN1bW1hcnlSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEjQKCnRpbWVfcmFuZ2UYAiABKA4yIC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVGltZVJhbmdlEjgKB3JlZ2lvbnMYAyADKA4yHS5vcGVuc3RhdHVzLm1vbml0b3IudjEuUmVnaW9uQgi6SAWSAQIQHCKsAgoZR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZRIKCgJpZBgBIAEoCRIUCgxsYXN0X3BpbmdfYXQYAiABKAkSGAoQdG90YWxfc3VjY2Vzc2Z1bBgDIAEoAxIWCg50b3RhbF9kZWdyYWRlZBgEIAEoAxIUCgx0b3RhbF9mYWlsZWQYBSABKAMSCwoDcDUwGAYgASgDEgsKA3A3NRgHIAEoAxILCgNwOTAYCCABKAMSCwoDcDk1GAkgASgDEgsKA3A5ORgKIAEoAxI0Cgp0aW1lX3JhbmdlGAsgASgOMiAub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRpbWVSYW5nZRIuCgdyZWdpb25zGAwgAygOMh0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvbiIoChFHZXRNb25pdG9yUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJLChJHZXRNb25pdG9yUmVzcG9uc2USNQoHbW9uaXRvchgBIAEoCzIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yQ29uZmlnKmEKCVRpbWVSYW5nZRIaChZUSU1FX1JBTkdFX1VOU1BFQ0lGSUVEEAASEQoNVElNRV9SQU5HRV8xRBABEhEKDVRJTUVfUkFOR0VfN0QQAhISCg5USU1FX1JBTkdFXzE0RBADMukRCg5Nb25pdG9yU2VydmljZRK5AwoRQ3JlYXRlSFRUUE1vbml0b3ISLy5vcGVuc3RhdHVzLm1vbml0b3IudjEuQ3JlYXRlSFRUUE1vbml0b3JSZXF1ZXN0GjAub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUhUVFBNb25pdG9yUmVzcG9uc2UiwAK6R7wCGrkCQ3JlYXRlcyBhIG5ldyBIVFRQIG1vbml0b3IgaW4gdGhlIGF1dGhlbnRpY2F0ZWQgd29ya3NwYWNlLiBDb25maWd1cmUgdGhlIHRhcmdldCBVUkwsIEhUVFAgbWV0aG9kLCByZXF1ZXN0IGhlYWRlcnMgYW5kIGJvZHksIHJlc3BvbnNlIGFzc2VydGlvbnMgKHN0YXR1cyBjb2RlLCBib2R5IGNvbnRlbnQsIGhlYWRlcnMpLCBjaGVjayBwZXJpb2RpY2l0eSwgZ2VvZ3JhcGhpYyByZWdpb25zLCBhbmQgb3B0aW9uYWwgT3BlblRlbGVtZXRyeSBleHBvcnQuIFRoZSBtb25pdG9yIHN0YXJ0cyBjaGVja2luZyBpbW1lZGlhdGVseSBpZiBzZXQgdG8gYWN0aXZlLhJzChBDcmVhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBDcmVhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkNyZWF0ZUROU01vbml0b3JSZXNwb25zZRJ2ChFVcGRhdGVIVFRQTW9uaXRvchIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5VcGRhdGVIVFRQTW9uaXRvclJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVXBkYXRlSFRUUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVUQ1BNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZVRDUE1vbml0b3JSZXNwb25zZRJzChBVcGRhdGVETlNNb25pdG9yEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlVwZGF0ZUROU01vbml0b3JSZXNwb25zZRLpAgoOVHJpZ2dlck1vbml0b3ISLC5vcGVuc3RhdHVzLm1vbml0b3IudjEuVHJpZ2dlck1vbml0b3JSZXF1ZXN0Gi0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlRyaWdnZXJNb25pdG9yUmVzcG9uc2Ui+QG6R/UBGvIBTWFudWFsbHkgdHJpZ2dlcnMgYW4gaW1tZWRpYXRlIGNoZWNrIGZvciB0aGUgc3BlY2lmaWVkIG1vbml0b3IgYWNyb3NzIGFsbCBjb25maWd1cmVkIHJlZ2lvbnMuIFRoaXMgb3BlcmF0aW9uIGlzIHJhdGUtbGltaXRlZCB1bmRlciB0aGUgc3ludGhldGljLWNoZWNrcyBxdW90YS4gQSBtb25pdG9yIHJ1biByZWNvcmQgaXMgY3JlYXRlZCBhbmQgdGhlIGNoZWNrIGlzIGRpc3BhdGNoZWQgdG8gdGhlIGNoZWNrZXIgc2VydmljZS4SagoNRGVsZXRlTW9uaXRvchIrLm9wZW5zdGF0dXMubW9uaXRvci52MS5EZWxldGVNb25pdG9yUmVxdWVzdBosLm9wZW5zdGF0dXMubW9uaXRvci52MS5EZWxldGVNb25pdG9yUmVzcG9uc2USbAoMTGlzdE1vbml0b3JzEioub3BlbnN0YXR1cy5tb25pdG9yLnYxLkxpc3RNb25pdG9yc1JlcXVlc3QaKy5vcGVuc3RhdHVzLm1vbml0b3IudjEuTGlzdE1vbml0b3JzUmVzcG9uc2UiA5ACARJ4ChBHZXRNb25pdG9yU3RhdHVzEi4ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXF1ZXN0Gi8ub3BlbnN0YXR1cy5tb25pdG9yLnYxLkdldE1vbml0b3JTdGF0dXNSZXNwb25zZSIDkAIBEqYDChFHZXRNb25pdG9yU3VtbWFyeRIvLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yU3VtbWFyeVJlcXVlc3QaMC5vcGVuc3RhdHVzLm1vbml0b3IudjEuR2V0TW9uaXRvclN1bW1hcnlSZXNwb25zZSKtApACAbpHpgIaowJSZXR1cm5zIGFnZ3JlZ2F0ZWQgbWV0cmljcyBmb3IgYSBtb25pdG9yIGluY2x1ZGluZyBsYXRlbmN5IHBlcmNlbnRpbGVzIChwNTAsIHA3NSwgcDkwLCBwOTUsIHA5OSksIHJlcXVlc3QgY291bnRzIGJ5IHN0YXR1cyAoc3VjY2Vzc2Z1bCwgZGVncmFkZWQsIGZhaWxlZCksIGFuZCB0aGUgdGltZXN0YW1wIG9mIHRoZSBsYXN0IGNoZWNrLiBNZXRyaWNzIGNhbiBiZSBzY29wZWQgdG8gYSB0aW1lIHJhbmdlICgxIGRheSwgNyBkYXlzLCBvciAxNCBkYXlzKSBhbmQgZmlsdGVyZWQgYnkgc3BlY2lmaWMgcmVnaW9ucy4SZgoKR2V0TW9uaXRvchIoLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yUmVxdWVzdBopLm9wZW5zdGF0dXMubW9uaXRvci52MS5HZXRNb25pdG9yUmVzcG9uc2UiA5ACAUJTWlFnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbW9uaXRvci92MTttb25pdG9ydjFiBnByb3RvMw", 34 35 [ 35 36 file_buf_validate_validate, 37 + file_gnostic_openapi_v3_annotations, 36 38 file_openstatus_monitor_v1_dns_monitor, 37 39 file_openstatus_monitor_v1_http_monitor, 38 40 file_openstatus_monitor_v1_monitor, ··· 906 908 */ 907 909 export const MonitorService: GenService<{ 908 910 /** 909 - * CreateHTTPMonitor creates a new HTTP monitor. 911 + * CreateHTTPMonitor creates a new HTTP monitor with URL, method, headers, assertions, and optional OpenTelemetry configuration. 910 912 * 911 913 * @generated from rpc openstatus.monitor.v1.MonitorService.CreateHTTPMonitor 912 914 */ ··· 966 968 output: typeof UpdateDNSMonitorResponseSchema; 967 969 }; 968 970 /** 969 - * TriggerMonitor initiates an immediate check for a monitor. 971 + * TriggerMonitor initiates an immediate check for a monitor across all configured regions. 970 972 * 971 973 * @generated from rpc openstatus.monitor.v1.MonitorService.TriggerMonitor 972 974 */ ··· 986 988 output: typeof DeleteMonitorResponseSchema; 987 989 }; 988 990 /** 989 - * ListMonitors returns a list of monitors. 991 + * ListMonitors returns a paginated list of all monitors in the workspace. 990 992 * 991 993 * @generated from rpc openstatus.monitor.v1.MonitorService.ListMonitors 992 994 */ ··· 996 998 output: typeof ListMonitorsResponseSchema; 997 999 }; 998 1000 /** 999 - * GetMonitorStatus returns the status of all regions for a monitor. 1001 + * GetMonitorStatus returns the current status of all regions for a monitor. 1000 1002 * 1001 1003 * @generated from rpc openstatus.monitor.v1.MonitorService.GetMonitorStatus 1002 1004 */ ··· 1006 1008 output: typeof GetMonitorStatusResponseSchema; 1007 1009 }; 1008 1010 /** 1009 - * GetMonitorSummary returns aggregated metrics and statistics for a monitor. 1011 + * GetMonitorSummary returns aggregated metrics and statistics for a monitor over a configurable time range. 1010 1012 * 1011 1013 * @generated from rpc openstatus.monitor.v1.MonitorService.GetMonitorSummary 1012 1014 */
+3 -1
src/gen/openstatus/monitor/v1/tcp_monitor_pb.ts
··· 5 5 import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"; 6 6 import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 7 7 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 8 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 8 9 import type { OpenTelemetryConfig } from "./http_monitor_pb.ts"; 9 10 import { file_openstatus_monitor_v1_http_monitor } from "./http_monitor_pb.ts"; 10 11 import type { MonitorStatus, Periodicity, Region } from "./monitor_pb.ts"; ··· 16 17 */ 17 18 export const file_openstatus_monitor_v1_tcp_monitor: GenFile = /*@__PURE__*/ 18 19 fileDesc( 19 - "CidvcGVuc3RhdHVzL21vbml0b3IvdjEvdGNwX21vbml0b3IucHJvdG8SFW9wZW5zdGF0dXMubW9uaXRvci52MSL3AwoKVENQTW9uaXRvchIKCgJpZBgBIAEoCRIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEhcKA3VyaRgDIAEoCUIKukgHcgUQARiAEBJBCgtwZXJpb2RpY2l0eRgEIAEoDjIiLm9wZW5zdGF0dXMubW9uaXRvci52MS5QZXJpb2RpY2l0eUIIukgFggECIAASHAoHdGltZW91dBgFIAEoA0ILukgIIgYYwKkHKAASJQoLZGVncmFkZWRfYXQYBiABKANCC7pICCIGGMCpBygASACIAQESGAoFcmV0cnkYByABKANCCbpIBiIEGAooABIdCgtkZXNjcmlwdGlvbhgIIAEoCUIIukgFcgMYgAgSDgoGYWN0aXZlGAkgASgIEg4KBnB1YmxpYxgKIAEoCBI/CgdyZWdpb25zGAsgAygOMh0ub3BlbnN0YXR1cy5tb25pdG9yLnYxLlJlZ2lvbkIPukgMkgEJEBwiBYIBAiAAEkIKDm9wZW5fdGVsZW1ldHJ5GAwgASgLMioub3BlbnN0YXR1cy5tb25pdG9yLnYxLk9wZW5UZWxlbWV0cnlDb25maWcSNAoGc3RhdHVzGA0gASgOMiQub3BlbnN0YXR1cy5tb25pdG9yLnYxLk1vbml0b3JTdGF0dXNCDgoMX2RlZ3JhZGVkX2F0QlNaUWdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9tb25pdG9yL3YxO21vbml0b3J2MWIGcHJvdG8z", 20 + "CidvcGVuc3RhdHVzL21vbml0b3IvdjEvdGNwX21vbml0b3IucHJvdG8SFW9wZW5zdGF0dXMubW9uaXRvci52MSK3BAoKVENQTW9uaXRvchIKCgJpZBgBIAEoCRI4CgRuYW1lGAIgASgJQiq6Rx06GxIZRGF0YWJhc2UgQ29ubmVjdGlvbiBDaGVja7pIB3IFEAEYgAISNwoDdXJpGAMgASgJQiq6Rx06GxIZdGNwOi8vZGIuZXhhbXBsZS5jb206NTQzMrpIB3IFEAEYgBASQQoLcGVyaW9kaWNpdHkYBCABKA4yIi5vcGVuc3RhdHVzLm1vbml0b3IudjEuUGVyaW9kaWNpdHlCCLpIBYIBAiAAEhwKB3RpbWVvdXQYBSABKANCC7pICCIGGMCpBygAEiUKC2RlZ3JhZGVkX2F0GAYgASgDQgu6SAgiBhjAqQcoAEgAiAEBEhgKBXJldHJ5GAcgASgDQgm6SAYiBBgKKAASHQoLZGVzY3JpcHRpb24YCCABKAlCCLpIBXIDGIAIEg4KBmFjdGl2ZRgJIAEoCBIOCgZwdWJsaWMYCiABKAgSPwoHcmVnaW9ucxgLIAMoDjIdLm9wZW5zdGF0dXMubW9uaXRvci52MS5SZWdpb25CD7pIDJIBCRAcIgWCAQIgABJCCg5vcGVuX3RlbGVtZXRyeRgMIAEoCzIqLm9wZW5zdGF0dXMubW9uaXRvci52MS5PcGVuVGVsZW1ldHJ5Q29uZmlnEjQKBnN0YXR1cxgNIAEoDjIkLm9wZW5zdGF0dXMubW9uaXRvci52MS5Nb25pdG9yU3RhdHVzQg4KDF9kZWdyYWRlZF9hdEJTWlFnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbW9uaXRvci92MTttb25pdG9ydjFiBnByb3RvMw", 20 21 [ 21 22 file_buf_validate_validate, 23 + file_gnostic_openapi_v3_annotations, 22 24 file_openstatus_monitor_v1_http_monitor, 23 25 file_openstatus_monitor_v1_monitor, 24 26 ],
+3 -2
src/gen/openstatus/notification/v1/providers_pb.ts
··· 9 9 } from "@bufbuild/protobuf/codegenv2"; 10 10 import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 11 11 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb.ts"; 12 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 12 13 import type { Message } from "@bufbuild/protobuf"; 13 14 14 15 /** ··· 16 17 */ 17 18 export const file_openstatus_notification_v1_providers: GenFile = /*@__PURE__*/ 18 19 fileDesc( 19 - "CipvcGVuc3RhdHVzL25vdGlmaWNhdGlvbi92MS9wcm92aWRlcnMucHJvdG8SGm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxIiwKC0Rpc2NvcmREYXRhEh0KC3dlYmhvb2tfdXJsGAEgASgJQgi6SAVyA4gBASIjCglFbWFpbERhdGESFgoFZW1haWwYASABKAlCB7pIBHICYAEiLwoOR29vZ2xlQ2hhdERhdGESHQoLd2ViaG9va191cmwYASABKAlCCLpIBXIDiAEBIjIKEUdyYWZhbmFPbmNhbGxEYXRhEh0KC3dlYmhvb2tfdXJsGAEgASgJQgi6SAVyA4gBASJUCghOdGZ5RGF0YRIWCgV0b3BpYxgBIAEoCUIHukgEcgIQARISCgpzZXJ2ZXJfdXJsGAIgASgJEhIKBXRva2VuGAMgASgJSACIAQFCCAoGX3Rva2VuIjEKDVBhZ2VyRHV0eURhdGESIAoPaW50ZWdyYXRpb25fa2V5GAEgASgJQge6SARyAhABIm4KDE9wc2dlbmllRGF0YRIYCgdhcGlfa2V5GAEgASgJQge6SARyAhABEkQKBnJlZ2lvbhgCIAEoDjIqLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLk9wc2dlbmllUmVnaW9uQgi6SAWCAQIQASIqCglTbGFja0RhdGESHQoLd2ViaG9va191cmwYASABKAlCCLpIBXIDiAEBIigKB1Ntc0RhdGESHQoMcGhvbmVfbnVtYmVyGAEgASgJQge6SARyAhABIigKDFRlbGVncmFtRGF0YRIYCgdjaGF0X2lkGAEgASgJQge6SARyAhABIjQKDVdlYmhvb2tIZWFkZXISFAoDa2V5GAEgASgJQge6SARyAhABEg0KBXZhbHVlGAIgASgJImUKC1dlYmhvb2tEYXRhEhoKCGVuZHBvaW50GAEgASgJQgi6SAVyA4gBARI6CgdoZWFkZXJzGAIgAygLMikub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuV2ViaG9va0hlYWRlciItCgxXaGF0c2FwcERhdGESHQoMcGhvbmVfbnVtYmVyGAEgASgJQge6SARyAhABIvIFChBOb3RpZmljYXRpb25EYXRhEjoKB2Rpc2NvcmQYASABKAsyJy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5EaXNjb3JkRGF0YUgAEjYKBWVtYWlsGAIgASgLMiUub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuRW1haWxEYXRhSAASQQoLZ29vZ2xlX2NoYXQYAyABKAsyKi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Hb29nbGVDaGF0RGF0YUgAEkcKDmdyYWZhbmFfb25jYWxsGAQgASgLMi0ub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuR3JhZmFuYU9uY2FsbERhdGFIABI0CgRudGZ5GAUgASgLMiQub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTnRmeURhdGFIABI+CglwYWdlcmR1dHkYBiABKAsyKS5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5QYWdlckR1dHlEYXRhSAASPAoIb3BzZ2VuaWUYByABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5PcHNnZW5pZURhdGFIABI2CgVzbGFjaxgIIAEoCzIlLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNsYWNrRGF0YUgAEjIKA3NtcxgJIAEoCzIjLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNtc0RhdGFIABI8Cgh0ZWxlZ3JhbRgKIAEoCzIoLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlRlbGVncmFtRGF0YUgAEjoKB3dlYmhvb2sYCyABKAsyJy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5XZWJob29rRGF0YUgAEjwKCHdoYXRzYXBwGAwgASgLMigub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuV2hhdHNhcHBEYXRhSABCBgoEZGF0YSrmAwoUTm90aWZpY2F0aW9uUHJvdmlkZXISJQohTk9USUZJQ0FUSU9OX1BST1ZJREVSX1VOU1BFQ0lGSUVEEAASIQodTk9USUZJQ0FUSU9OX1BST1ZJREVSX0RJU0NPUkQQARIfChtOT1RJRklDQVRJT05fUFJPVklERVJfRU1BSUwQAhIlCiFOT1RJRklDQVRJT05fUFJPVklERVJfR09PR0xFX0NIQVQQAxIoCiROT1RJRklDQVRJT05fUFJPVklERVJfR1JBRkFOQV9PTkNBTEwQBBIeChpOT1RJRklDQVRJT05fUFJPVklERVJfTlRGWRAFEiMKH05PVElGSUNBVElPTl9QUk9WSURFUl9QQUdFUkRVVFkQBhIiCh5OT1RJRklDQVRJT05fUFJPVklERVJfT1BTR0VOSUUQBxIfChtOT1RJRklDQVRJT05fUFJPVklERVJfU0xBQ0sQCBIdChlOT1RJRklDQVRJT05fUFJPVklERVJfU01TEAkSIgoeTk9USUZJQ0FUSU9OX1BST1ZJREVSX1RFTEVHUkFNEAoSIQodTk9USUZJQ0FUSU9OX1BST1ZJREVSX1dFQkhPT0sQCxIiCh5OT1RJRklDQVRJT05fUFJPVklERVJfV0hBVFNBUFAQDCphCg5PcHNnZW5pZVJlZ2lvbhIfChtPUFNHRU5JRV9SRUdJT05fVU5TUEVDSUZJRUQQABIWChJPUFNHRU5JRV9SRUdJT05fVVMQARIWChJPUFNHRU5JRV9SRUdJT05fRVUQAkJdWltnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbm90aWZpY2F0aW9uL3YxO25vdGlmaWNhdGlvbnYxYgZwcm90bzM", 20 - [file_buf_validate_validate], 20 + "CipvcGVuc3RhdHVzL25vdGlmaWNhdGlvbi92MS9wcm92aWRlcnMucHJvdG8SGm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxIlsKC0Rpc2NvcmREYXRhEkwKC3dlYmhvb2tfdXJsGAEgASgJQje6Ryw6KhIoaHR0cHM6Ly9kaXNjb3JkLmNvbS9hcGkvd2ViaG9va3MvMTIzL2FiY7pIBXIDiAEBIj4KCUVtYWlsRGF0YRIxCgVlbWFpbBgBIAEoCUIiukcYOhYSFG9wcy10ZWFtQGV4YW1wbGUuY29tukgEcgJgASIvCg5Hb29nbGVDaGF0RGF0YRIdCgt3ZWJob29rX3VybBgBIAEoCUIIukgFcgOIAQEiMgoRR3JhZmFuYU9uY2FsbERhdGESHQoLd2ViaG9va191cmwYASABKAlCCLpIBXIDiAEBImwKCE50ZnlEYXRhEi4KBXRvcGljGAEgASgJQh+6RxU6ExIRb3BlbnN0YXR1cy1hbGVydHO6SARyAhABEhIKCnNlcnZlcl91cmwYAiABKAkSEgoFdG9rZW4YAyABKAlIAIgBAUIICgZfdG9rZW4iTAoNUGFnZXJEdXR5RGF0YRI7Cg9pbnRlZ3JhdGlvbl9rZXkYASABKAlCIrpHGDoWEhRhMWIyYzNkNGU1ZjZnN2g4aTlqMLpIBHICEAEibgoMT3BzZ2VuaWVEYXRhEhgKB2FwaV9rZXkYASABKAlCB7pIBHICEAESRAoGcmVnaW9uGAIgASgOMioub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuT3BzZ2VuaWVSZWdpb25CCLpIBYIBAhABIl0KCVNsYWNrRGF0YRJQCgt3ZWJob29rX3VybBgBIAEoCUI7ukcwOi4SLGh0dHBzOi8vaG9va3Muc2xhY2suY29tL3NlcnZpY2VzL1QwMC9CMDAveHh4ukgFcgOIAQEiOwoHU21zRGF0YRIwCgxwaG9uZV9udW1iZXIYASABKAlCGrpHEDoOEgwrMTQxNTU1NTEyMzS6SARyAhABIj0KDFRlbGVncmFtRGF0YRItCgdjaGF0X2lkGAEgASgJQhy6RxI6EBIOLTEwMDEyMzQ1Njc4OTC6SARyAhABIjQKDVdlYmhvb2tIZWFkZXISFAoDa2V5GAEgASgJQge6SARyAhABEg0KBXZhbHVlGAIgASgJIpcBCgtXZWJob29rRGF0YRJMCghlbmRwb2ludBgBIAEoCUI6ukcvOi0SK2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3dlYmhvb2tzL29wZW5zdGF0dXO6SAVyA4gBARI6CgdoZWFkZXJzGAIgAygLMikub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuV2ViaG9va0hlYWRlciItCgxXaGF0c2FwcERhdGESHQoMcGhvbmVfbnVtYmVyGAEgASgJQge6SARyAhABIvIFChBOb3RpZmljYXRpb25EYXRhEjoKB2Rpc2NvcmQYASABKAsyJy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5EaXNjb3JkRGF0YUgAEjYKBWVtYWlsGAIgASgLMiUub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuRW1haWxEYXRhSAASQQoLZ29vZ2xlX2NoYXQYAyABKAsyKi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Hb29nbGVDaGF0RGF0YUgAEkcKDmdyYWZhbmFfb25jYWxsGAQgASgLMi0ub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuR3JhZmFuYU9uY2FsbERhdGFIABI0CgRudGZ5GAUgASgLMiQub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTnRmeURhdGFIABI+CglwYWdlcmR1dHkYBiABKAsyKS5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5QYWdlckR1dHlEYXRhSAASPAoIb3BzZ2VuaWUYByABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5PcHNnZW5pZURhdGFIABI2CgVzbGFjaxgIIAEoCzIlLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNsYWNrRGF0YUgAEjIKA3NtcxgJIAEoCzIjLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNtc0RhdGFIABI8Cgh0ZWxlZ3JhbRgKIAEoCzIoLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlRlbGVncmFtRGF0YUgAEjoKB3dlYmhvb2sYCyABKAsyJy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5XZWJob29rRGF0YUgAEjwKCHdoYXRzYXBwGAwgASgLMigub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuV2hhdHNhcHBEYXRhSABCBgoEZGF0YSrmAwoUTm90aWZpY2F0aW9uUHJvdmlkZXISJQohTk9USUZJQ0FUSU9OX1BST1ZJREVSX1VOU1BFQ0lGSUVEEAASIQodTk9USUZJQ0FUSU9OX1BST1ZJREVSX0RJU0NPUkQQARIfChtOT1RJRklDQVRJT05fUFJPVklERVJfRU1BSUwQAhIlCiFOT1RJRklDQVRJT05fUFJPVklERVJfR09PR0xFX0NIQVQQAxIoCiROT1RJRklDQVRJT05fUFJPVklERVJfR1JBRkFOQV9PTkNBTEwQBBIeChpOT1RJRklDQVRJT05fUFJPVklERVJfTlRGWRAFEiMKH05PVElGSUNBVElPTl9QUk9WSURFUl9QQUdFUkRVVFkQBhIiCh5OT1RJRklDQVRJT05fUFJPVklERVJfT1BTR0VOSUUQBxIfChtOT1RJRklDQVRJT05fUFJPVklERVJfU0xBQ0sQCBIdChlOT1RJRklDQVRJT05fUFJPVklERVJfU01TEAkSIgoeTk9USUZJQ0FUSU9OX1BST1ZJREVSX1RFTEVHUkFNEAoSIQodTk9USUZJQ0FUSU9OX1BST1ZJREVSX1dFQkhPT0sQCxIiCh5OT1RJRklDQVRJT05fUFJPVklERVJfV0hBVFNBUFAQDCphCg5PcHNnZW5pZVJlZ2lvbhIfChtPUFNHRU5JRV9SRUdJT05fVU5TUEVDSUZJRUQQABIWChJPUFNHRU5JRV9SRUdJT05fVVMQARIWChJPUFNHRU5JRV9SRUdJT05fRVUQAkJdWltnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbm90aWZpY2F0aW9uL3YxO25vdGlmaWNhdGlvbnYxYgZwcm90bzM", 21 + [file_buf_validate_validate, file_gnostic_openapi_v3_annotations], 21 22 ); 22 23 23 24 /**
+13 -2
src/gen/openstatus/notification/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 { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 16 17 import type { Notification, NotificationSummary } from "./notification_pb.ts"; 17 18 import { file_openstatus_notification_v1_notification } from "./notification_pb.ts"; 18 19 import type { NotificationData, NotificationProvider } from "./providers_pb.ts"; ··· 24 25 */ 25 26 export const file_openstatus_notification_v1_service: GenFile = /*@__PURE__*/ 26 27 fileDesc( 27 - "CihvcGVuc3RhdHVzL25vdGlmaWNhdGlvbi92MS9zZXJ2aWNlLnByb3RvEhpvcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MSLbAQoZQ3JlYXRlTm90aWZpY2F0aW9uUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEk4KCHByb3ZpZGVyGAIgASgOMjAub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTm90aWZpY2F0aW9uUHJvdmlkZXJCCrpIB4IBBBABIAASQgoEZGF0YRgDIAEoCzIsLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLk5vdGlmaWNhdGlvbkRhdGFCBrpIA8gBARITCgttb25pdG9yX2lkcxgEIAMoCSJcChpDcmVhdGVOb3RpZmljYXRpb25SZXNwb25zZRI+Cgxub3RpZmljYXRpb24YASABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb24iLQoWR2V0Tm90aWZpY2F0aW9uUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJZChdHZXROb3RpZmljYXRpb25SZXNwb25zZRI+Cgxub3RpZmljYXRpb24YASABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb24ibAoYTGlzdE5vdGlmaWNhdGlvbnNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCJ3ChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEkYKDW5vdGlmaWNhdGlvbnMYASADKAsyLy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb25TdW1tYXJ5EhIKCnRvdGFsX3NpemUYAiABKAUiqwEKGVVwZGF0ZU5vdGlmaWNhdGlvblJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESEQoEbmFtZRgCIAEoCUgAiAEBEj8KBGRhdGEYAyABKAsyLC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb25EYXRhSAGIAQESEwoLbW9uaXRvcl9pZHMYBCADKAlCBwoFX25hbWVCBwoFX2RhdGEiXAoaVXBkYXRlTm90aWZpY2F0aW9uUmVzcG9uc2USPgoMbm90aWZpY2F0aW9uGAEgASgLMigub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTm90aWZpY2F0aW9uIjAKGURlbGV0ZU5vdGlmaWNhdGlvblJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLQoaRGVsZXRlTm90aWZpY2F0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKxAQobU2VuZFRlc3ROb3RpZmljYXRpb25SZXF1ZXN0Ek4KCHByb3ZpZGVyGAEgASgOMjAub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTm90aWZpY2F0aW9uUHJvdmlkZXJCCrpIB4IBBBABIAASQgoEZGF0YRgCIAEoCzIsLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLk5vdGlmaWNhdGlvbkRhdGFCBrpIA8gBASJdChxTZW5kVGVzdE5vdGlmaWNhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSGgoNZXJyb3JfbWVzc2FnZRgCIAEoCUgAiAEBQhAKDl9lcnJvcl9tZXNzYWdlIh8KHUNoZWNrTm90aWZpY2F0aW9uTGltaXRSZXF1ZXN0ImEKHkNoZWNrTm90aWZpY2F0aW9uTGltaXRSZXNwb25zZRIVCg1saW1pdF9yZWFjaGVkGAEgASgIEhUKDWN1cnJlbnRfY291bnQYAiABKAUSEQoJbWF4X2NvdW50GAMgASgFMsQHChNOb3RpZmljYXRpb25TZXJ2aWNlEoMBChJDcmVhdGVOb3RpZmljYXRpb24SNS5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5DcmVhdGVOb3RpZmljYXRpb25SZXF1ZXN0GjYub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuQ3JlYXRlTm90aWZpY2F0aW9uUmVzcG9uc2USegoPR2V0Tm90aWZpY2F0aW9uEjIub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuR2V0Tm90aWZpY2F0aW9uUmVxdWVzdBozLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkdldE5vdGlmaWNhdGlvblJlc3BvbnNlEoABChFMaXN0Tm90aWZpY2F0aW9ucxI0Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkxpc3ROb3RpZmljYXRpb25zUmVxdWVzdBo1Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2USgwEKElVwZGF0ZU5vdGlmaWNhdGlvbhI1Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblJlcXVlc3QaNi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5VcGRhdGVOb3RpZmljYXRpb25SZXNwb25zZRKDAQoSRGVsZXRlTm90aWZpY2F0aW9uEjUub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBo2Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkRlbGV0ZU5vdGlmaWNhdGlvblJlc3BvbnNlEokBChRTZW5kVGVzdE5vdGlmaWNhdGlvbhI3Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNlbmRUZXN0Tm90aWZpY2F0aW9uUmVxdWVzdBo4Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNlbmRUZXN0Tm90aWZpY2F0aW9uUmVzcG9uc2USjwEKFkNoZWNrTm90aWZpY2F0aW9uTGltaXQSOS5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5DaGVja05vdGlmaWNhdGlvbkxpbWl0UmVxdWVzdBo6Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkNoZWNrTm90aWZpY2F0aW9uTGltaXRSZXNwb25zZUJdWltnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbm90aWZpY2F0aW9uL3YxO25vdGlmaWNhdGlvbnYxYgZwcm90bzM", 28 + "CihvcGVuc3RhdHVzL25vdGlmaWNhdGlvbi92MS9zZXJ2aWNlLnByb3RvEhpvcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MSLzAQoZQ3JlYXRlTm90aWZpY2F0aW9uUmVxdWVzdBItCgRuYW1lGAEgASgJQh+6RxU6ExIRU2xhY2sgT3BzIENoYW5uZWy6SARyAhABEk4KCHByb3ZpZGVyGAIgASgOMjAub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTm90aWZpY2F0aW9uUHJvdmlkZXJCCrpIB4IBBBABIAASQgoEZGF0YRgDIAEoCzIsLm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLk5vdGlmaWNhdGlvbkRhdGFCBrpIA8gBARITCgttb25pdG9yX2lkcxgEIAMoCSJcChpDcmVhdGVOb3RpZmljYXRpb25SZXNwb25zZRI+Cgxub3RpZmljYXRpb24YASABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb24iLQoWR2V0Tm90aWZpY2F0aW9uUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJZChdHZXROb3RpZmljYXRpb25SZXNwb25zZRI+Cgxub3RpZmljYXRpb24YASABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb24ibAoYTGlzdE5vdGlmaWNhdGlvbnNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCJ3ChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEkYKDW5vdGlmaWNhdGlvbnMYASADKAsyLy5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb25TdW1tYXJ5EhIKCnRvdGFsX3NpemUYAiABKAUi4wEKGVVwZGF0ZU5vdGlmaWNhdGlvblJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESEQoEbmFtZRgCIAEoCUgAiAEBEj8KBGRhdGEYAyABKAsyLC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb25EYXRhSAGIAQESEwoLbW9uaXRvcl9pZHMYBCADKAkSHwoSdXBkYXRlX21vbml0b3JfaWRzGAUgASgISAKIAQFCBwoFX25hbWVCBwoFX2RhdGFCFQoTX3VwZGF0ZV9tb25pdG9yX2lkcyJcChpVcGRhdGVOb3RpZmljYXRpb25SZXNwb25zZRI+Cgxub3RpZmljYXRpb24YASABKAsyKC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb24iMAoZRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASItChpEZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIrEBChtTZW5kVGVzdE5vdGlmaWNhdGlvblJlcXVlc3QSTgoIcHJvdmlkZXIYASABKA4yMC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5Ob3RpZmljYXRpb25Qcm92aWRlckIKukgHggEEEAEgABJCCgRkYXRhGAIgASgLMiwub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuTm90aWZpY2F0aW9uRGF0YUIGukgDyAEBIl0KHFNlbmRUZXN0Tm90aWZpY2F0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIaCg1lcnJvcl9tZXNzYWdlGAIgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UiHwodQ2hlY2tOb3RpZmljYXRpb25MaW1pdFJlcXVlc3QiYQoeQ2hlY2tOb3RpZmljYXRpb25MaW1pdFJlc3BvbnNlEhUKDWxpbWl0X3JlYWNoZWQYASABKAgSFQoNY3VycmVudF9jb3VudBgCIAEoBRIRCgltYXhfY291bnQYAyABKAUy8QkKE05vdGlmaWNhdGlvblNlcnZpY2USgwEKEkNyZWF0ZU5vdGlmaWNhdGlvbhI1Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkNyZWF0ZU5vdGlmaWNhdGlvblJlcXVlc3QaNi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5DcmVhdGVOb3RpZmljYXRpb25SZXNwb25zZRJ/Cg9HZXROb3RpZmljYXRpb24SMi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5HZXROb3RpZmljYXRpb25SZXF1ZXN0GjMub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuR2V0Tm90aWZpY2F0aW9uUmVzcG9uc2UiA5ACARKFAQoRTGlzdE5vdGlmaWNhdGlvbnMSNC5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5MaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QaNS5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlIgOQAgESgwEKElVwZGF0ZU5vdGlmaWNhdGlvbhI1Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblJlcXVlc3QaNi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5VcGRhdGVOb3RpZmljYXRpb25SZXNwb25zZRKDAQoSRGVsZXRlTm90aWZpY2F0aW9uEjUub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBo2Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLkRlbGV0ZU5vdGlmaWNhdGlvblJlc3BvbnNlEqcDChRTZW5kVGVzdE5vdGlmaWNhdGlvbhI3Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNlbmRUZXN0Tm90aWZpY2F0aW9uUmVxdWVzdBo4Lm9wZW5zdGF0dXMubm90aWZpY2F0aW9uLnYxLlNlbmRUZXN0Tm90aWZpY2F0aW9uUmVzcG9uc2UimwK6R5cCGpQCU2VuZHMgYSB0ZXN0IG5vdGlmaWNhdGlvbiB0byB0aGUgc3BlY2lmaWVkIHByb3ZpZGVyIHRvIHZlcmlmeSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIGlzIGNvcnJlY3QuIFRoaXMgZG9lcyBub3QgcmVxdWlyZSBhbiBleGlzdGluZyBub3RpZmljYXRpb24gY2hhbm5lbCAtIGp1c3QgcHJvdmlkZSB0aGUgcHJvdmlkZXIgdHlwZSBhbmQgaXRzIGNvbmZpZ3VyYXRpb24gZGF0YS4gUmV0dXJucyBzdWNjZXNzIHN0YXR1cyBhbmQgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdGVzdCBmYWlsZWQuEpQBChZDaGVja05vdGlmaWNhdGlvbkxpbWl0Ejkub3BlbnN0YXR1cy5ub3RpZmljYXRpb24udjEuQ2hlY2tOb3RpZmljYXRpb25MaW1pdFJlcXVlc3QaOi5vcGVuc3RhdHVzLm5vdGlmaWNhdGlvbi52MS5DaGVja05vdGlmaWNhdGlvbkxpbWl0UmVzcG9uc2UiA5ACAUJdWltnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvbm90aWZpY2F0aW9uL3YxO25vdGlmaWNhdGlvbnYxYgZwcm90bzM", 28 29 [ 29 30 file_buf_validate_validate, 31 + file_gnostic_openapi_v3_annotations, 30 32 file_openstatus_notification_v1_notification, 31 33 file_openstatus_notification_v1_providers, 32 34 ], ··· 252 254 * @generated from field: repeated string monitor_ids = 4; 253 255 */ 254 256 monitorIds: string[]; 257 + 258 + /** 259 + * Set to true to update monitor associations. 260 + * When true, monitor_ids replaces the existing list (empty clears all). 261 + * When false or unset, monitor_ids is ignored and existing associations are preserved. 262 + * 263 + * @generated from field: optional bool update_monitor_ids = 5; 264 + */ 265 + updateMonitorIds?: boolean; 255 266 }; 256 267 257 268 /** ··· 516 527 output: typeof DeleteNotificationResponseSchema; 517 528 }; 518 529 /** 519 - * SendTestNotification sends a test notification to verify configuration. 530 + * SendTestNotification sends a test notification to verify the provider configuration without requiring an existing notification channel. 520 531 * 521 532 * @generated from rpc openstatus.notification.v1.NotificationService.SendTestNotification 522 533 */
+8 -1
src/gen/openstatus/status_page/v1/page_component_pb.ts
··· 16 16 export const file_openstatus_status_page_v1_page_component: 17 17 GenFile = /*@__PURE__*/ 18 18 fileDesc( 19 - "Ci5vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2VfY29tcG9uZW50LnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIv0BCg1QYWdlQ29tcG9uZW50EgoKAmlkGAEgASgJEg8KB3BhZ2VfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI6CgR0eXBlGAUgASgOMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50VHlwZRISCgptb25pdG9yX2lkGAYgASgJEg0KBW9yZGVyGAcgASgFEhAKCGdyb3VwX2lkGAggASgJEhMKC2dyb3VwX29yZGVyGAkgASgFEhIKCmNyZWF0ZWRfYXQYCiABKAkSEgoKdXBkYXRlZF9hdBgLIAEoCSJnChJQYWdlQ29tcG9uZW50R3JvdXASCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCSp5ChFQYWdlQ29tcG9uZW50VHlwZRIjCh9QQUdFX0NPTVBPTkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobUEFHRV9DT01QT05FTlRfVFlQRV9NT05JVE9SEAESHgoaUEFHRV9DT01QT05FTlRfVFlQRV9TVEFUSUMQAkJaWlhnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3BhZ2UvdjE7c3RhdHVzcGFnZXYxYgZwcm90bzM", 19 + "Ci5vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2VfY29tcG9uZW50LnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIv0BCg1QYWdlQ29tcG9uZW50EgoKAmlkGAEgASgJEg8KB3BhZ2VfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI6CgR0eXBlGAUgASgOMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50VHlwZRISCgptb25pdG9yX2lkGAYgASgJEg0KBW9yZGVyGAcgASgFEhAKCGdyb3VwX2lkGAggASgJEhMKC2dyb3VwX29yZGVyGAkgASgFEhIKCmNyZWF0ZWRfYXQYCiABKAkSEgoKdXBkYXRlZF9hdBgLIAEoCSJ9ChJQYWdlQ29tcG9uZW50R3JvdXASCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIUCgxkZWZhdWx0X29wZW4YBiABKAgqeQoRUGFnZUNvbXBvbmVudFR5cGUSIwofUEFHRV9DT01QT05FTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG1BBR0VfQ09NUE9ORU5UX1RZUEVfTU9OSVRPUhABEh4KGlBBR0VfQ09NUE9ORU5UX1RZUEVfU1RBVElDEAJCWlpYZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxO3N0YXR1c3BhZ2V2MWIGcHJvdG8z", 20 20 ); 21 21 22 22 /** ··· 154 154 * @generated from field: string updated_at = 5; 155 155 */ 156 156 updatedAt: string; 157 + 158 + /** 159 + * Whether the group should be expanded by default on the status page. 160 + * 161 + * @generated from field: bool default_open = 6; 162 + */ 163 + defaultOpen: boolean; 157 164 }; 158 165 159 166 /**
+89 -4
src/gen/openstatus/status_page/v1/page_subscriber_pb.ts
··· 2 2 // @generated from file openstatus/status_page/v1/page_subscriber.proto (package openstatus.status_page.v1, syntax proto3) 3 3 /* eslint-disable */ 4 4 5 - import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2"; 6 - import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 5 + import type { 6 + GenEnum, 7 + GenFile, 8 + GenMessage, 9 + } from "@bufbuild/protobuf/codegenv2"; 10 + import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 7 11 import type { Message } from "@bufbuild/protobuf"; 8 12 9 13 /** ··· 12 16 export const file_openstatus_status_page_v1_page_subscriber: 13 17 GenFile = /*@__PURE__*/ 14 18 fileDesc( 15 - "Ci9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2Vfc3Vic2NyaWJlci5wcm90bxIZb3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MSKSAQoOUGFnZVN1YnNjcmliZXISCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRINCgVlbWFpbBgDIAEoCRITCgthY2NlcHRlZF9hdBgEIAEoCRIXCg91bnN1YnNjcmliZWRfYXQYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRISCgp1cGRhdGVkX2F0GAcgASgJQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 19 + "Ci9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3BhZ2Vfc3Vic2NyaWJlci5wcm90bxIZb3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MSLyAgoOUGFnZVN1YnNjcmliZXISCgoCaWQYASABKAkSDwoHcGFnZV9pZBgCIAEoCRINCgVlbWFpbBgDIAEoCRITCgthY2NlcHRlZF9hdBgEIAEoCRIXCg91bnN1YnNjcmliZWRfYXQYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRISCgp1cGRhdGVkX2F0GAcgASgJEjsKBnNvdXJjZRgIIAEoDjIrLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3Vic2NyaWJlclNvdXJjZRIRCgRuYW1lGAkgASgJSACIAQESFAoMY2hhbm5lbF90eXBlGAogASgJEhgKC3dlYmhvb2tfdXJsGAsgASgJSAGIAQESGwoOY2hhbm5lbF9jb25maWcYDCABKAlIAogBARIVCg1jb21wb25lbnRfaWRzGA0gAygJQgcKBV9uYW1lQg4KDF93ZWJob29rX3VybEIRCg9fY2hhbm5lbF9jb25maWcqlAEKEFN1YnNjcmliZXJTb3VyY2USIQodU1VCU0NSSUJFUl9TT1VSQ0VfVU5TUEVDSUZJRUQQABIhCh1TVUJTQ1JJQkVSX1NPVVJDRV9TRUxGX1NJR05VUBABEhwKGFNVQlNDUklCRVJfU09VUkNFX1ZFTkRPUhACEhwKGFNVQlNDUklCRVJfU09VUkNFX0lNUE9SVBADQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 16 20 ); 17 21 18 22 /** ··· 38 42 pageId: string; 39 43 40 44 /** 41 - * Email address of the subscriber. 45 + * Email address of the subscriber (empty for webhook channels). 42 46 * 43 47 * @generated from field: string email = 3; 44 48 */ ··· 71 75 * @generated from field: string updated_at = 7; 72 76 */ 73 77 updatedAt: string; 78 + 79 + /** 80 + * How the subscription was created. Vendor-added rows skip verification. 81 + * 82 + * @generated from field: openstatus.status_page.v1.SubscriberSource source = 8; 83 + */ 84 + source: SubscriberSource; 85 + 86 + /** 87 + * Optional human-readable label (e.g. "Supabase #incidents"). 88 + * 89 + * @generated from field: optional string name = 9; 90 + */ 91 + name?: string; 92 + 93 + /** 94 + * Channel type: "email" or "webhook". 95 + * 96 + * @generated from field: string channel_type = 10; 97 + */ 98 + channelType: string; 99 + 100 + /** 101 + * Webhook URL (populated only for channel_type = "webhook"). 102 + * 103 + * @generated from field: optional string webhook_url = 11; 104 + */ 105 + webhookUrl?: string; 106 + 107 + /** 108 + * JSON-encoded channel config (e.g. custom headers). Populated for webhook channels. 109 + * 110 + * @generated from field: optional string channel_config = 12; 111 + */ 112 + channelConfig?: string; 113 + 114 + /** 115 + * IDs of components this subscription is scoped to. Empty = entire page. 116 + * 117 + * @generated from field: repeated string component_ids = 13; 118 + */ 119 + componentIds: string[]; 74 120 }; 75 121 76 122 /** ··· 79 125 */ 80 126 export const PageSubscriberSchema: GenMessage<PageSubscriber> = /*@__PURE__*/ 81 127 messageDesc(file_openstatus_status_page_v1_page_subscriber, 0); 128 + 129 + /** 130 + * SubscriberSource indicates how the subscription was created. 131 + * 132 + * @generated from enum openstatus.status_page.v1.SubscriberSource 133 + */ 134 + export enum SubscriberSource { 135 + /** 136 + * @generated from enum value: SUBSCRIBER_SOURCE_UNSPECIFIED = 0; 137 + */ 138 + UNSPECIFIED = 0, 139 + 140 + /** 141 + * Created by the user themselves via the status-page subscribe form. 142 + * 143 + * @generated from enum value: SUBSCRIBER_SOURCE_SELF_SIGNUP = 1; 144 + */ 145 + SELF_SIGNUP = 1, 146 + 147 + /** 148 + * Created by the page vendor (dashboard user), skipping verification. 149 + * 150 + * @generated from enum value: SUBSCRIBER_SOURCE_VENDOR = 2; 151 + */ 152 + VENDOR = 2, 153 + 154 + /** 155 + * Imported from a third-party provider (Atlassian Statuspage, Better Stack, Instatus). 156 + * 157 + * @generated from enum value: SUBSCRIBER_SOURCE_IMPORT = 3; 158 + */ 159 + IMPORT = 3, 160 + } 161 + 162 + /** 163 + * Describes the enum openstatus.status_page.v1.SubscriberSource. 164 + */ 165 + export const SubscriberSourceSchema: GenEnum<SubscriberSource> = /*@__PURE__*/ 166 + enumDesc(file_openstatus_status_page_v1_page_subscriber, 0);
+433 -17
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 { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 16 17 import type { MaintenanceSummary } from "../../maintenance/v1/maintenance_pb.ts"; 17 18 import { file_openstatus_maintenance_v1_maintenance } from "../../maintenance/v1/maintenance_pb.ts"; 18 19 import type { PageComponent, PageComponentGroup } from "./page_component_pb.ts"; ··· 20 21 import type { PageSubscriber } from "./page_subscriber_pb.ts"; 21 22 import { file_openstatus_status_page_v1_page_subscriber } from "./page_subscriber_pb.ts"; 22 23 import type { 24 + Locale, 23 25 OverallStatus, 26 + PageAccessType, 27 + PageTheme, 24 28 StatusPage, 25 29 StatusPageSummary, 26 30 } from "./status_page_pb.ts"; ··· 34 38 */ 35 39 export const file_openstatus_status_page_v1_service: GenFile = /*@__PURE__*/ 36 40 fileDesc( 37 - "CidvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEi9AEKF0NyZWF0ZVN0YXR1c1BhZ2VSZXF1ZXN0EhkKBXRpdGxlGAEgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAIgASgJQgi6SAVyAxiACEgAiAEBEjQKBHNsdWcYAyABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokEhkKDGhvbWVwYWdlX3VybBgEIAEoCUgBiAEBEhgKC2NvbnRhY3RfdXJsGAUgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGENyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIrChRHZXRTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJTChVHZXRTdGF0dXNQYWdlUmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2UiagoWTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQicQoXTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USQgoMc3RhdHVzX3BhZ2VzGAEgAygLMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIqYCChdVcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIeCgV0aXRsZRgCIAEoCUIKukgHcgUQARiAAkgAiAEBEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgBiAEBEjkKBHNsdWcYBCABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokSAKIAQESGQoMaG9tZXBhZ2VfdXJsGAUgASgJSAOIAQESGAoLY29udGFjdF91cmwYBiABKAlIBIgBAUIICgZfdGl0bGVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9zbHVnQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsIlYKGFVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIuChdEZWxldGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIrChhEZWxldGVTdGF0dXNQYWdlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLvAQoaQWRkTW9uaXRvckNvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIbCgptb25pdG9yX2lkGAIgASgJQge6SARyAhABEhsKBG5hbWUYAyABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YBCABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBSABKAVIAogBARIVCghncm91cF9pZBgGIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfb3JkZXJCCwoJX2dyb3VwX2lkIloKG0FkZE1vbml0b3JDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQixQEKGUFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgAiAEBEhIKBW9yZGVyGAQgASgFSAGIAQESFQoIZ3JvdXBfaWQYBSABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX29yZGVyQgsKCV9ncm91cF9pZCJZChpBZGRTdGF0aWNDb21wb25lbnRSZXNwb25zZRI7Cgljb21wb25lbnQYASABKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQiLQoWUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASIqChdSZW1vdmVDb21wb25lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIvMBChZVcGRhdGVDb21wb25lbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhsKBG5hbWUYAiABKAlCCLpIBXIDGIACSACIAQESIgoLZGVzY3JpcHRpb24YAyABKAlCCLpIBXIDGIAISAGIAQESEgoFb3JkZXIYBCABKAVIAogBARIVCghncm91cF9pZBgFIAEoCUgDiAEBEhgKC2dyb3VwX29yZGVyGAYgASgFSASIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQggKBl9vcmRlckILCglfZ3JvdXBfaWRCDgoMX2dyb3VwX29yZGVyIlYKF1VwZGF0ZUNvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCJRChtDcmVhdGVDb21wb25lbnRHcm91cFJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIYCgRuYW1lGAIgASgJQgq6SAdyBRABGIACIlwKHENyZWF0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USPAoFZ3JvdXAYASABKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cCIyChtEZWxldGVDb21wb25lbnRHcm91cFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiLwocRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIloKG1VwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIdCgRuYW1lGAIgASgJQgq6SAdyBRABGIACSACIAQFCBwoFX25hbWUiXAocVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRI8CgVncm91cBgBIAEoCzItLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudEdyb3VwIkoKFlN1YnNjcmliZVRvUGFnZVJlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgASJYChdTdWJzY3JpYmVUb1BhZ2VSZXNwb25zZRI9CgpzdWJzY3JpYmVyGAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlciJjChpVbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEg8KBWVtYWlsGAIgASgJSAASDAoCaWQYAyABKAlIAEIMCgppZGVudGlmaWVyIi4KG1Vuc3Vic2NyaWJlRnJvbVBhZ2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABChZMaXN0U3Vic2NyaWJlcnNSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESHQoFbGltaXQYAiABKAVCCbpIBhoEGGQoAUgAiAEBEhwKBm9mZnNldBgDIAEoBUIHukgEGgIoAEgBiAEBEiEKFGluY2x1ZGVfdW5zdWJzY3JpYmVkGAQgASgISAKIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXRCFwoVX2luY2x1ZGVfdW5zdWJzY3JpYmVkIm0KF0xpc3RTdWJzY3JpYmVyc1Jlc3BvbnNlEj4KC3N1YnNjcmliZXJzGAEgAygLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlchISCgp0b3RhbF9zaXplGAIgASgFIkkKG0dldFN0YXR1c1BhZ2VDb250ZW50UmVxdWVzdBIMCgJpZBgBIAEoCUgAEg4KBHNsdWcYAiABKAlIAEIMCgppZGVudGlmaWVyIt8CChxHZXRTdGF0dXNQYWdlQ29udGVudFJlc3BvbnNlEjoKC3N0YXR1c19wYWdlGAEgASgLMiUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlEjwKCmNvbXBvbmVudHMYAiADKAsyKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnQSPQoGZ3JvdXBzGAMgAygLMi0ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50R3JvdXASQQoOc3RhdHVzX3JlcG9ydHMYBCADKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0EkMKDG1haW50ZW5hbmNlcxgFIAMoCzItLm9wZW5zdGF0dXMubWFpbnRlbmFuY2UudjEuTWFpbnRlbmFuY2VTdW1tYXJ5IkUKF0dldE92ZXJhbGxTdGF0dXNSZXF1ZXN0EgwKAmlkGAEgASgJSAASDgoEc2x1ZxgCIAEoCUgAQgwKCmlkZW50aWZpZXIiYQoPQ29tcG9uZW50U3RhdHVzEhQKDGNvbXBvbmVudF9pZBgBIAEoCRI4CgZzdGF0dXMYAiABKA4yKC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLk92ZXJhbGxTdGF0dXMipAEKGEdldE92ZXJhbGxTdGF0dXNSZXNwb25zZRJACg5vdmVyYWxsX3N0YXR1cxgBIAEoDjIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuT3ZlcmFsbFN0YXR1cxJGChJjb21wb25lbnRfc3RhdHVzZXMYAiADKAsyKi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNvbXBvbmVudFN0YXR1czKXEQoRU3RhdHVzUGFnZVNlcnZpY2USewoQQ3JlYXRlU3RhdHVzUGFnZRIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlU3RhdHVzUGFnZVJlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRJyCg1HZXRTdGF0dXNQYWdlEi8ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlUmVxdWVzdBowLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0U3RhdHVzUGFnZVJlc3BvbnNlEngKD0xpc3RTdGF0dXNQYWdlcxIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USewoQVXBkYXRlU3RhdHVzUGFnZRIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlU3RhdHVzUGFnZVJlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRJ7ChBEZWxldGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlU3RhdHVzUGFnZVJlc3BvbnNlEoQBChNBZGRNb25pdG9yQ29tcG9uZW50EjUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5BZGRNb25pdG9yQ29tcG9uZW50UmVxdWVzdBo2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkTW9uaXRvckNvbXBvbmVudFJlc3BvbnNlEoEBChJBZGRTdGF0aWNDb21wb25lbnQSNC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QaNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlc3BvbnNlEngKD1JlbW92ZUNvbXBvbmVudBIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVzcG9uc2USeAoPVXBkYXRlQ29tcG9uZW50EjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXNwb25zZRKHAQoUQ3JlYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNyZWF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoURGVsZXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkRlbGV0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoUVXBkYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRJ4Cg9TdWJzY3JpYmVUb1BhZ2USMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN1YnNjcmliZVRvUGFnZVJlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN1YnNjcmliZVRvUGFnZVJlc3BvbnNlEoQBChNVbnN1YnNjcmliZUZyb21QYWdlEjUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VbnN1YnNjcmliZUZyb21QYWdlUmVxdWVzdBo2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVW5zdWJzY3JpYmVGcm9tUGFnZVJlc3BvbnNlEngKD0xpc3RTdWJzY3JpYmVycxIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN1YnNjcmliZXJzUmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTGlzdFN1YnNjcmliZXJzUmVzcG9uc2UShwEKFEdldFN0YXR1c1BhZ2VDb250ZW50EjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlQ29udGVudFJlcXVlc3QaNy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VDb250ZW50UmVzcG9uc2USewoQR2V0T3ZlcmFsbFN0YXR1cxIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0T3ZlcmFsbFN0YXR1c1JlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldE92ZXJhbGxTdGF0dXNSZXNwb25zZUJaWlhnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3BhZ2UvdjE7c3RhdHVzcGFnZXYxYgZwcm90bzM", 41 + "CidvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3NlcnZpY2UucHJvdG8SGW9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEi6gYKF0NyZWF0ZVN0YXR1c1BhZ2VSZXF1ZXN0EjAKBXRpdGxlGAEgASgJQiG6RxQ6EhIQQWNtZSBDb3JwIFN0YXR1c7pIB3IFEAEYgAISIgoLZGVzY3JpcHRpb24YAiABKAlCCLpIBXIDGIAISACIAQESSQoEc2x1ZxgDIAEoCUI7ukcSOhASDm15LXN0YXR1cy1wYWdlukgjciEQARiAAjIaXlthLXowLTldKyg/Oi1bYS16MC05XSspKiQSOQoMaG9tZXBhZ2VfdXJsGAQgASgJQh66Rxs6GRIXaHR0cHM6Ly93d3cuZXhhbXBsZS5jb21IAYgBARIYCgtjb250YWN0X3VybBgFIAEoCUgCiAEBEj4KDmRlZmF1bHRfbG9jYWxlGAYgASgOMiEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5Mb2NhbGVIA4gBARIyCgdsb2NhbGVzGAcgAygOMiEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5Mb2NhbGUSGwoEaWNvbhgIIAEoCUIIukgFcgMYgAhIBIgBARIkCg1jdXN0b21fZG9tYWluGAkgASgJQgi6SAVyAxiAAkgFiAEBEjgKBXRoZW1lGAogASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWVIBogBARJDCgthY2Nlc3NfdHlwZRgLIAEoDjIpLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUFjY2Vzc1R5cGVIB4gBARIhCghwYXNzd29yZBgMIAEoCUIKukgHcgUQARiAAkgIiAEBEhoKEmF1dGhfZW1haWxfZG9tYWlucxgNIAMoCRIYCgthbGxvd19pbmRleBgOIAEoCEgJiAEBEh4KEWFsbG93ZWRfaXBfcmFuZ2VzGA8gASgJSAqIAQFCDgoMX2Rlc2NyaXB0aW9uQg8KDV9ob21lcGFnZV91cmxCDgoMX2NvbnRhY3RfdXJsQhEKD19kZWZhdWx0X2xvY2FsZUIHCgVfaWNvbkIQCg5fY3VzdG9tX2RvbWFpbkIICgZfdGhlbWVCDgoMX2FjY2Vzc190eXBlQgsKCV9wYXNzd29yZEIOCgxfYWxsb3dfaW5kZXhCFAoSX2FsbG93ZWRfaXBfcmFuZ2VzIlYKGENyZWF0ZVN0YXR1c1BhZ2VSZXNwb25zZRI6CgtzdGF0dXNfcGFnZRgBIAEoCzIlLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuU3RhdHVzUGFnZSIrChRHZXRTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJTChVHZXRTdGF0dXNQYWdlUmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2UiagoWTGlzdFN0YXR1c1BhZ2VzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQicQoXTGlzdFN0YXR1c1BhZ2VzUmVzcG9uc2USQgoMc3RhdHVzX3BhZ2VzGAEgAygLMiwub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlU3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFItAGChdVcGRhdGVTdGF0dXNQYWdlUmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARIeCgV0aXRsZRgCIAEoCUIKukgHcgUQARiAAkgAiAEBEiIKC2Rlc2NyaXB0aW9uGAMgASgJQgi6SAVyAxiACEgBiAEBEjkKBHNsdWcYBCABKAlCJrpII3IhEAEYgAIyGl5bYS16MC05XSsoPzotW2EtejAtOV0rKSokSAKIAQESGQoMaG9tZXBhZ2VfdXJsGAUgASgJSAOIAQESGAoLY29udGFjdF91cmwYBiABKAlIBIgBARI+Cg5kZWZhdWx0X2xvY2FsZRgHIAEoDjIhLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTG9jYWxlSAWIAQESMgoHbG9jYWxlcxgIIAMoDjIhLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTG9jYWxlEhsKBGljb24YCSABKAlCCLpIBXIDGIAISAaIAQESJAoNY3VzdG9tX2RvbWFpbhgKIAEoCUIIukgFcgMYgAJIB4gBARI4CgV0aGVtZRgLIAEoDjIkLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZVRoZW1lSAiIAQESQwoLYWNjZXNzX3R5cGUYDCABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlSAmIAQESIQoIcGFzc3dvcmQYDSABKAlCCrpIB3IFEAEYgAJICogBARIaChJhdXRoX2VtYWlsX2RvbWFpbnMYDiADKAkSGAoLYWxsb3dfaW5kZXgYDyABKAhIC4gBARIeChFhbGxvd2VkX2lwX3JhbmdlcxgQIAEoCUgMiAEBQggKBl90aXRsZUIOCgxfZGVzY3JpcHRpb25CBwoFX3NsdWdCDwoNX2hvbWVwYWdlX3VybEIOCgxfY29udGFjdF91cmxCEQoPX2RlZmF1bHRfbG9jYWxlQgcKBV9pY29uQhAKDl9jdXN0b21fZG9tYWluQggKBl90aGVtZUIOCgxfYWNjZXNzX3R5cGVCCwoJX3Bhc3N3b3JkQg4KDF9hbGxvd19pbmRleEIUChJfYWxsb3dlZF9pcF9yYW5nZXMiVgoYVXBkYXRlU3RhdHVzUGFnZVJlc3BvbnNlEjoKC3N0YXR1c19wYWdlGAEgASgLMiUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdGF0dXNQYWdlIi4KF0RlbGV0ZVN0YXR1c1BhZ2VSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIisKGERlbGV0ZVN0YXR1c1BhZ2VSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIu8BChpBZGRNb25pdG9yQ29tcG9uZW50UmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEhsKCm1vbml0b3JfaWQYAiABKAlCB7pIBHICEAESGwoEbmFtZRgDIAEoCUIIukgFcgMYgAJIAIgBARIiCgtkZXNjcmlwdGlvbhgEIAEoCUIIukgFcgMYgAhIAYgBARISCgVvcmRlchgFIAEoBUgCiAEBEhUKCGdyb3VwX2lkGAYgASgJSAOIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQggKBl9vcmRlckILCglfZ3JvdXBfaWQiWgobQWRkTW9uaXRvckNvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCLFAQoZQWRkU3RhdGljQ29tcG9uZW50UmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEhgKBG5hbWUYAiABKAlCCrpIB3IFEAEYgAISIgoLZGVzY3JpcHRpb24YAyABKAlCCLpIBXIDGIAISACIAQESEgoFb3JkZXIYBCABKAVIAYgBARIVCghncm91cF9pZBgFIAEoCUgCiAEBQg4KDF9kZXNjcmlwdGlvbkIICgZfb3JkZXJCCwoJX2dyb3VwX2lkIlkKGkFkZFN0YXRpY0NvbXBvbmVudFJlc3BvbnNlEjsKCWNvbXBvbmVudBgBIAEoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudCItChZSZW1vdmVDb21wb25lbnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIioKF1JlbW92ZUNvbXBvbmVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi8wEKFlVwZGF0ZUNvbXBvbmVudFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAESGwoEbmFtZRgCIAEoCUIIukgFcgMYgAJIAIgBARIiCgtkZXNjcmlwdGlvbhgDIAEoCUIIukgFcgMYgAhIAYgBARISCgVvcmRlchgEIAEoBUgCiAEBEhUKCGdyb3VwX2lkGAUgASgJSAOIAQESGAoLZ3JvdXBfb3JkZXIYBiABKAVIBIgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCAoGX29yZGVyQgsKCV9ncm91cF9pZEIOCgxfZ3JvdXBfb3JkZXIiVgoXVXBkYXRlQ29tcG9uZW50UmVzcG9uc2USOwoJY29tcG9uZW50GAEgASgLMigub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50In0KG0NyZWF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEhgKBG5hbWUYAiABKAlCCrpIB3IFEAEYgAISGQoMZGVmYXVsdF9vcGVuGAMgASgISACIAQFCDwoNX2RlZmF1bHRfb3BlbiJcChxDcmVhdGVDb21wb25lbnRHcm91cFJlc3BvbnNlEjwKBWdyb3VwGAEgASgLMi0ub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlQ29tcG9uZW50R3JvdXAiMgobRGVsZXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABIi8KHERlbGV0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKGAQobVXBkYXRlQ29tcG9uZW50R3JvdXBSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEh0KBG5hbWUYAiABKAlCCrpIB3IFEAEYgAJIAIgBARIZCgxkZWZhdWx0X29wZW4YAyABKAhIAYgBAUIHCgVfbmFtZUIPCg1fZGVmYXVsdF9vcGVuIlwKHFVwZGF0ZUNvbXBvbmVudEdyb3VwUmVzcG9uc2USPAoFZ3JvdXAYASABKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cCJhChZTdWJzY3JpYmVUb1BhZ2VSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESLQoFZW1haWwYAiABKAlCHrpHFDoSEhB1c2VyQGV4YW1wbGUuY29tukgEcgJgASJYChdTdWJzY3JpYmVUb1BhZ2VSZXNwb25zZRI9CgpzdWJzY3JpYmVyGAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlU3Vic2NyaWJlciImCgxFbWFpbENoYW5uZWwSFgoFZW1haWwYASABKAlCB7pIBHICYAEiOwoUV2ViaG9va0NoYW5uZWxIZWFkZXISFAoDa2V5GAEgASgJQge6SARyAhABEg0KBXZhbHVlGAIgASgJInYKDldlYmhvb2tDaGFubmVsEiIKC3dlYmhvb2tfdXJsGAEgASgJQg26SApyCBABGIAQiAEBEkAKB2hlYWRlcnMYAiADKAsyLy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLldlYmhvb2tDaGFubmVsSGVhZGVyIpACCh1DcmVhdGVQYWdlU3Vic2NyaXB0aW9uUmVxdWVzdBIYCgdwYWdlX2lkGAEgASgJQge6SARyAhABEhsKBG5hbWUYAiABKAlCCLpIBXIDGP8BSAGIAQESFQoNY29tcG9uZW50X2lkcxgDIAMoCRJACg1lbWFpbF9jaGFubmVsGAogASgLMicub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5FbWFpbENoYW5uZWxIABJECg93ZWJob29rX2NoYW5uZWwYCyABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLldlYmhvb2tDaGFubmVsSABCEAoHY2hhbm5lbBIFukgCCAFCBwoFX25hbWUiXwoeQ3JlYXRlUGFnZVN1YnNjcmlwdGlvblJlc3BvbnNlEj0KCnN1YnNjcmliZXIYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VTdWJzY3JpYmVyImMKGlVuc3Vic2NyaWJlRnJvbVBhZ2VSZXF1ZXN0EhgKB3BhZ2VfaWQYASABKAlCB7pIBHICEAESDwoFZW1haWwYAiABKAlIABIMCgJpZBgDIAEoCUgAQgwKCmlkZW50aWZpZXIiLgobVW5zdWJzY3JpYmVGcm9tUGFnZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiwAEKFkxpc3RTdWJzY3JpYmVyc1JlcXVlc3QSGAoHcGFnZV9pZBgBIAEoCUIHukgEcgIQARIdCgVsaW1pdBgCIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAMgASgFQge6SAQaAigASAGIAQESIQoUaW5jbHVkZV91bnN1YnNjcmliZWQYBCABKAhIAogBAUIICgZfbGltaXRCCQoHX29mZnNldEIXChVfaW5jbHVkZV91bnN1YnNjcmliZWQibQoXTGlzdFN1YnNjcmliZXJzUmVzcG9uc2USPgoLc3Vic2NyaWJlcnMYASADKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VTdWJzY3JpYmVyEhIKCnRvdGFsX3NpemUYAiABKAUiSQobR2V0U3RhdHVzUGFnZUNvbnRlbnRSZXF1ZXN0EgwKAmlkGAEgASgJSAASDgoEc2x1ZxgCIAEoCUgAQgwKCmlkZW50aWZpZXIi3wIKHEdldFN0YXR1c1BhZ2VDb250ZW50UmVzcG9uc2USOgoLc3RhdHVzX3BhZ2UYASABKAsyJS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlN0YXR1c1BhZ2USPAoKY29tcG9uZW50cxgCIAMoCzIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUGFnZUNvbXBvbmVudBI9CgZncm91cHMYAyADKAsyLS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VDb21wb25lbnRHcm91cBJBCg5zdGF0dXNfcmVwb3J0cxgEIAMoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQSQwoMbWFpbnRlbmFuY2VzGAUgAygLMi0ub3BlbnN0YXR1cy5tYWludGVuYW5jZS52MS5NYWludGVuYW5jZVN1bW1hcnkiRQoXR2V0T3ZlcmFsbFN0YXR1c1JlcXVlc3QSDAoCaWQYASABKAlIABIOCgRzbHVnGAIgASgJSABCDAoKaWRlbnRpZmllciJhCg9Db21wb25lbnRTdGF0dXMSFAoMY29tcG9uZW50X2lkGAEgASgJEjgKBnN0YXR1cxgCIAEoDjIoLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuT3ZlcmFsbFN0YXR1cyKkAQoYR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlEkAKDm92ZXJhbGxfc3RhdHVzGAEgASgOMigub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5PdmVyYWxsU3RhdHVzEkYKEmNvbXBvbmVudF9zdGF0dXNlcxgCIAMoCzIqLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ29tcG9uZW50U3RhdHVzMtEeChFTdGF0dXNQYWdlU2VydmljZRJ7ChBDcmVhdGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlU3RhdHVzUGFnZVJlc3BvbnNlEncKDUdldFN0YXR1c1BhZ2USLy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VSZXF1ZXN0GjAub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlUmVzcG9uc2UiA5ACARJ9Cg9MaXN0U3RhdHVzUGFnZXMSMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkxpc3RTdGF0dXNQYWdlc1JlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkxpc3RTdGF0dXNQYWdlc1Jlc3BvbnNlIgOQAgESewoQVXBkYXRlU3RhdHVzUGFnZRIyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlU3RhdHVzUGFnZVJlcXVlc3QaMy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZVN0YXR1c1BhZ2VSZXNwb25zZRJ7ChBEZWxldGVTdGF0dXNQYWdlEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5EZWxldGVTdGF0dXNQYWdlUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlU3RhdHVzUGFnZVJlc3BvbnNlEoQBChNBZGRNb25pdG9yQ29tcG9uZW50EjUub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5BZGRNb25pdG9yQ29tcG9uZW50UmVxdWVzdBo2Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQWRkTW9uaXRvckNvbXBvbmVudFJlc3BvbnNlEoEBChJBZGRTdGF0aWNDb21wb25lbnQSNC5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlcXVlc3QaNS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkFkZFN0YXRpY0NvbXBvbmVudFJlc3BvbnNlEngKD1JlbW92ZUNvbXBvbmVudBIxLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVxdWVzdBoyLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuUmVtb3ZlQ29tcG9uZW50UmVzcG9uc2USeAoPVXBkYXRlQ29tcG9uZW50EjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5VcGRhdGVDb21wb25lbnRSZXNwb25zZRKHAQoUQ3JlYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkNyZWF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoURGVsZXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkRlbGV0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuRGVsZXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRKHAQoUVXBkYXRlQ29tcG9uZW50R3JvdXASNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVwZGF0ZUNvbXBvbmVudEdyb3VwUmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVXBkYXRlQ29tcG9uZW50R3JvdXBSZXNwb25zZRK5BAoPU3Vic2NyaWJlVG9QYWdlEjEub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdWJzY3JpYmVUb1BhZ2VSZXF1ZXN0GjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5TdWJzY3JpYmVUb1BhZ2VSZXNwb25zZSK+A7pHugMatwNFbmQtdXNlciBlbWFpbCBzZWxmLXNpZ251cCB3aXRoIGRvdWJsZSBvcHQtaW4gdmVyaWZpY2F0aW9uLiBBIHZlcmlmaWNhdGlvbiBlbWFpbCBpcyBzZW50IGFuZCB0aGUgc3Vic2NyaXB0aW9uIGFjdGl2YXRlcyBvbmx5IGFmdGVyIHRoZSByZWNpcGllbnQgY29uZmlybXMuIElmIHRoZSBlbWFpbCB3YXMgcHJldmlvdXNseSB1bnN1YnNjcmliZWQsIHRoZSBleGlzdGluZyByb3cgaXMgcmVhY3RpdmF0ZWQgaW5zdGVhZCBvZiBhIGR1cGxpY2F0ZSBiZWluZyBjcmVhdGVkLiBVc2UgdGhpcyBmb3Igc3Vic2NyaWJlci1pbml0aWF0ZWQgc2lnbnVwcyBvbiB0aGUgcHVibGljIHN0YXR1cyBwYWdlOyB1c2UgQ3JlYXRlUGFnZVN1YnNjcmlwdGlvbiBmb3Igb3BlcmF0b3ItaW5pdGlhdGVkICh2ZW5kb3IpIHN1YnNjcmlwdGlvbnMgdGhhdCBzaG91bGQgc2tpcCB2ZXJpZmljYXRpb24uEv0EChZDcmVhdGVQYWdlU3Vic2NyaXB0aW9uEjgub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5DcmVhdGVQYWdlU3Vic2NyaXB0aW9uUmVxdWVzdBo5Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuQ3JlYXRlUGFnZVN1YnNjcmlwdGlvblJlc3BvbnNlIu0DukfpAxrmA09wZXJhdG9yLWFkZGVkIHN1YnNjcmliZXIgKGVtYWlsIG9yIHdlYmhvb2spIHdpdGggbm8gdmVyaWZpY2F0aW9uIGZsb3cg4oCUIHRoZSBwYXJ0bmVyIHN0YXJ0cyByZWNlaXZpbmcgbm90aWZpY2F0aW9ucyBpbW1lZGlhdGVseS4gU3VwcG9ydHMgU2xhY2sgYW5kIERpc2NvcmQgd2ViaG9vayBVUkxzIGluIGFkZGl0aW9uIHRvIGVtYWlsLiBBIG1hbmFnZW1lbnQgdG9rZW4gaXMgc3RpbGwgZ2VuZXJhdGVkIHNvIHRoZSBzdWJzY3JpYmVyIGNhbiBzZWxmLW1hbmFnZSAodXBkYXRlIHNjb3BlLCB1bnN1YnNjcmliZSkgd2l0aG91dCBvcGVyYXRvciBpbnZvbHZlbWVudC4gVXNlIHRoaXMgZm9yIHZlbmRvci9wYXJ0bmVyIGludGVncmF0aW9ucyB3aGVyZSBjb25zZW50IGlzIGVzdGFibGlzaGVkIG91dC1vZi1iYW5kOyB1c2UgU3Vic2NyaWJlVG9QYWdlIGZvciBzdWJzY3JpYmVyLWluaXRpYXRlZCBzaWdudXBzIHRoYXQgcmVxdWlyZSBkb3VibGUgb3B0LWluLhKEAQoTVW5zdWJzY3JpYmVGcm9tUGFnZRI1Lm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuVW5zdWJzY3JpYmVGcm9tUGFnZVJlcXVlc3QaNi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlVuc3Vic2NyaWJlRnJvbVBhZ2VSZXNwb25zZRJ9Cg9MaXN0U3Vic2NyaWJlcnMSMS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkxpc3RTdWJzY3JpYmVyc1JlcXVlc3QaMi5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkxpc3RTdWJzY3JpYmVyc1Jlc3BvbnNlIgOQAgESwAMKFEdldFN0YXR1c1BhZ2VDb250ZW50EjYub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRTdGF0dXNQYWdlQ29udGVudFJlcXVlc3QaNy5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkdldFN0YXR1c1BhZ2VDb250ZW50UmVzcG9uc2UitgKQAgG6R68CGqwCUmV0dXJucyB0aGUgZnVsbCBjb250ZW50IG9mIGEgc3RhdHVzIHBhZ2UgaW5jbHVkaW5nIGl0cyBjb21wb25lbnRzLCBjb21wb25lbnQgZ3JvdXBzLCBhY3RpdmUgc3RhdHVzIHJlcG9ydHMsIGFuZCBzY2hlZHVsZWQgbWFpbnRlbmFuY2VzLiBTdXBwb3J0cyB0d28gYWNjZXNzIHBhdGhzOiBieSBJRCAocmVxdWlyZXMgYXV0aGVudGljYXRpb24sIHdvcmtzcGFjZS1zY29wZWQpIG9yIGJ5IHNsdWcgKHB1YmxpYyBhY2Nlc3MsIHJlcXVpcmVzIHRoZSBwYWdlIHRvIGJlIHB1Ymxpc2hlZCB3aXRoIGFjY2Vzc190eXBlPVBVQkxJQykuEqoDChBHZXRPdmVyYWxsU3RhdHVzEjIub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5HZXRPdmVyYWxsU3RhdHVzUmVxdWVzdBozLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuR2V0T3ZlcmFsbFN0YXR1c1Jlc3BvbnNlIqwCkAIBukelAhqiAlJldHVybnMgdGhlIG92ZXJhbGwgc3RhdHVzIG9mIGEgc3RhdHVzIHBhZ2UgYWxvbmcgd2l0aCBpbmRpdmlkdWFsIGNvbXBvbmVudCBzdGF0dXNlcy4gVGhlIG92ZXJhbGwgc3RhdHVzIGlzIGNvbXB1dGVkIGZyb20gYWN0aXZlIHN0YXR1cyByZXBvcnRzIGFuZCBtYWludGVuYW5jZXMgd2l0aCB0aGUgZm9sbG93aW5nIHByaW9yaXR5OiBkZWdyYWRlZCAoZnJvbSBhY3RpdmUgc3RhdHVzIHJlcG9ydHMpID4gbWFpbnRlbmFuY2UgKGZyb20gYWN0aXZlIG1haW50ZW5hbmNlIHdpbmRvd3MpID4gb3BlcmF0aW9uYWwuQlpaWGdpdGh1Yi5jb20vb3BlbnN0YXR1c2hxL29wZW5zdGF0dXMvcGFja2FnZXMvcHJvdG8vb3BlbnN0YXR1cy9zdGF0dXNfcGFnZS92MTtzdGF0dXNwYWdldjFiBnByb3RvMw", 38 42 [ 39 43 file_buf_validate_validate, 44 + file_gnostic_openapi_v3_annotations, 40 45 file_openstatus_maintenance_v1_maintenance, 41 46 file_openstatus_status_page_v1_page_component, 42 47 file_openstatus_status_page_v1_page_subscriber, ··· 46 51 ); 47 52 48 53 /** 54 + * CreateStatusPageRequest is the request to create a new status page. 55 + * 49 56 * @generated from message openstatus.status_page.v1.CreateStatusPageRequest 50 57 */ 51 58 export type CreateStatusPageRequest = ··· 66 73 description?: string; 67 74 68 75 /** 69 - * URL-friendly slug for the status page (required). 76 + * URL-friendly slug for the status page (required). Must be lowercase alphanumeric with hyphens. 70 77 * 71 78 * @generated from field: string slug = 3; 72 79 */ ··· 85 92 * @generated from field: optional string contact_url = 5; 86 93 */ 87 94 contactUrl?: string; 95 + 96 + /** 97 + * Default locale for the status page (optional, defaults to EN). 98 + * 99 + * @generated from field: optional openstatus.status_page.v1.Locale default_locale = 6; 100 + */ 101 + defaultLocale?: Locale; 102 + 103 + /** 104 + * Enabled locales for the status page (optional). 105 + * 106 + * @generated from field: repeated openstatus.status_page.v1.Locale locales = 7; 107 + */ 108 + locales: Locale[]; 109 + 110 + /** 111 + * Icon URL for the status page (optional). 112 + * 113 + * @generated from field: optional string icon = 8; 114 + */ 115 + icon?: string; 116 + 117 + /** 118 + * Custom domain for the status page (optional). 119 + * 120 + * @generated from field: optional string custom_domain = 9; 121 + */ 122 + customDomain?: string; 123 + 124 + /** 125 + * Visual theme for the status page (optional, defaults to SYSTEM). 126 + * 127 + * @generated from field: optional openstatus.status_page.v1.PageTheme theme = 10; 128 + */ 129 + theme?: PageTheme; 130 + 131 + /** 132 + * Access type for the status page (optional, defaults to PUBLIC). 133 + * 134 + * @generated from field: optional openstatus.status_page.v1.PageAccessType access_type = 11; 135 + */ 136 + accessType?: PageAccessType; 137 + 138 + /** 139 + * Password for the status page (required when access_type is PASSWORD_PROTECTED). 140 + * 141 + * @generated from field: optional string password = 12; 142 + */ 143 + password?: string; 144 + 145 + /** 146 + * Email domains allowed to access the page (used when access_type is AUTHENTICATED). 147 + * 148 + * @generated from field: repeated string auth_email_domains = 13; 149 + */ 150 + authEmailDomains: string[]; 151 + 152 + /** 153 + * Whether search engines are allowed to index this status page (optional, defaults to true). 154 + * 155 + * @generated from field: optional bool allow_index = 14; 156 + */ 157 + allowIndex?: boolean; 158 + 159 + /** 160 + * Comma-separated IPv4 CIDR ranges (required when access_type is IP_RESTRICTED). 161 + * 162 + * @generated from field: optional string allowed_ip_ranges = 15; 163 + */ 164 + allowedIpRanges?: string; 88 165 }; 89 166 90 167 /** ··· 97 174 messageDesc(file_openstatus_status_page_v1_service, 0); 98 175 99 176 /** 177 + * CreateStatusPageResponse is the response after creating a status page. 178 + * 100 179 * @generated from message openstatus.status_page.v1.CreateStatusPageResponse 101 180 */ 102 181 export type CreateStatusPageResponse = ··· 120 199 messageDesc(file_openstatus_status_page_v1_service, 1); 121 200 122 201 /** 202 + * GetStatusPageRequest is the request to get a status page by ID. 203 + * 123 204 * @generated from message openstatus.status_page.v1.GetStatusPageRequest 124 205 */ 125 206 export type GetStatusPageRequest = ··· 143 224 messageDesc(file_openstatus_status_page_v1_service, 2); 144 225 145 226 /** 227 + * GetStatusPageResponse is the response containing the status page. 228 + * 146 229 * @generated from message openstatus.status_page.v1.GetStatusPageResponse 147 230 */ 148 231 export type GetStatusPageResponse = ··· 166 249 messageDesc(file_openstatus_status_page_v1_service, 3); 167 250 168 251 /** 252 + * ListStatusPagesRequest is the request to list status pages. 253 + * 169 254 * @generated from message openstatus.status_page.v1.ListStatusPagesRequest 170 255 */ 171 256 export type ListStatusPagesRequest = ··· 196 281 messageDesc(file_openstatus_status_page_v1_service, 4); 197 282 198 283 /** 284 + * ListStatusPagesResponse is the response containing status page summaries. 285 + * 199 286 * @generated from message openstatus.status_page.v1.ListStatusPagesResponse 200 287 */ 201 288 export type ListStatusPagesResponse = ··· 226 313 messageDesc(file_openstatus_status_page_v1_service, 5); 227 314 228 315 /** 316 + * UpdateStatusPageRequest is the request to update a status page. 317 + * 229 318 * @generated from message openstatus.status_page.v1.UpdateStatusPageRequest 230 319 */ 231 320 export type UpdateStatusPageRequest = ··· 272 361 * @generated from field: optional string contact_url = 6; 273 362 */ 274 363 contactUrl?: string; 364 + 365 + /** 366 + * New default locale for the status page (optional). 367 + * 368 + * @generated from field: optional openstatus.status_page.v1.Locale default_locale = 7; 369 + */ 370 + defaultLocale?: Locale; 371 + 372 + /** 373 + * New enabled locales for the status page (optional). 374 + * 375 + * @generated from field: repeated openstatus.status_page.v1.Locale locales = 8; 376 + */ 377 + locales: Locale[]; 378 + 379 + /** 380 + * New icon URL for the status page (optional). 381 + * 382 + * @generated from field: optional string icon = 9; 383 + */ 384 + icon?: string; 385 + 386 + /** 387 + * New custom domain (optional). 388 + * 389 + * @generated from field: optional string custom_domain = 10; 390 + */ 391 + customDomain?: string; 392 + 393 + /** 394 + * New visual theme (optional). 395 + * 396 + * @generated from field: optional openstatus.status_page.v1.PageTheme theme = 11; 397 + */ 398 + theme?: PageTheme; 399 + 400 + /** 401 + * New access type (optional). 402 + * 403 + * @generated from field: optional openstatus.status_page.v1.PageAccessType access_type = 12; 404 + */ 405 + accessType?: PageAccessType; 406 + 407 + /** 408 + * New password (optional, required when access_type is PASSWORD_PROTECTED). 409 + * 410 + * @generated from field: optional string password = 13; 411 + */ 412 + password?: string; 413 + 414 + /** 415 + * New email domains (optional, required when access_type is AUTHENTICATED). 416 + * 417 + * @generated from field: repeated string auth_email_domains = 14; 418 + */ 419 + authEmailDomains: string[]; 420 + 421 + /** 422 + * Whether search engines are allowed to index this status page (optional). 423 + * 424 + * @generated from field: optional bool allow_index = 15; 425 + */ 426 + allowIndex?: boolean; 427 + 428 + /** 429 + * Comma-separated IPv4 CIDR ranges (required when access_type is IP_RESTRICTED). 430 + * 431 + * @generated from field: optional string allowed_ip_ranges = 16; 432 + */ 433 + allowedIpRanges?: string; 275 434 }; 276 435 277 436 /** ··· 284 443 messageDesc(file_openstatus_status_page_v1_service, 6); 285 444 286 445 /** 446 + * UpdateStatusPageResponse is the response after updating a status page. 447 + * 287 448 * @generated from message openstatus.status_page.v1.UpdateStatusPageResponse 288 449 */ 289 450 export type UpdateStatusPageResponse = ··· 307 468 messageDesc(file_openstatus_status_page_v1_service, 7); 308 469 309 470 /** 471 + * DeleteStatusPageRequest is the request to delete a status page. 472 + * 310 473 * @generated from message openstatus.status_page.v1.DeleteStatusPageRequest 311 474 */ 312 475 export type DeleteStatusPageRequest = ··· 330 493 messageDesc(file_openstatus_status_page_v1_service, 8); 331 494 332 495 /** 496 + * DeleteStatusPageResponse is the response after deleting a status page. 497 + * 333 498 * @generated from message openstatus.status_page.v1.DeleteStatusPageResponse 334 499 */ 335 500 export type DeleteStatusPageResponse = ··· 353 518 messageDesc(file_openstatus_status_page_v1_service, 9); 354 519 355 520 /** 521 + * AddMonitorComponentRequest is the request to add a monitor-based component to a status page. 522 + * 356 523 * @generated from message openstatus.status_page.v1.AddMonitorComponentRequest 357 524 */ 358 525 export type AddMonitorComponentRequest = ··· 411 578 messageDesc(file_openstatus_status_page_v1_service, 10); 412 579 413 580 /** 581 + * AddMonitorComponentResponse is the response after adding a monitor component. 582 + * 414 583 * @generated from message openstatus.status_page.v1.AddMonitorComponentResponse 415 584 */ 416 585 export type AddMonitorComponentResponse = ··· 434 603 messageDesc(file_openstatus_status_page_v1_service, 11); 435 604 436 605 /** 606 + * AddStaticComponentRequest is the request to add a static component to a status page. 607 + * 437 608 * @generated from message openstatus.status_page.v1.AddStaticComponentRequest 438 609 */ 439 610 export type AddStaticComponentRequest = ··· 485 656 messageDesc(file_openstatus_status_page_v1_service, 12); 486 657 487 658 /** 659 + * AddStaticComponentResponse is the response after adding a static component. 660 + * 488 661 * @generated from message openstatus.status_page.v1.AddStaticComponentResponse 489 662 */ 490 663 export type AddStaticComponentResponse = ··· 508 681 messageDesc(file_openstatus_status_page_v1_service, 13); 509 682 510 683 /** 684 + * RemoveComponentRequest is the request to remove a component from a status page. 685 + * 511 686 * @generated from message openstatus.status_page.v1.RemoveComponentRequest 512 687 */ 513 688 export type RemoveComponentRequest = ··· 531 706 messageDesc(file_openstatus_status_page_v1_service, 14); 532 707 533 708 /** 709 + * RemoveComponentResponse is the response after removing a component. 710 + * 534 711 * @generated from message openstatus.status_page.v1.RemoveComponentResponse 535 712 */ 536 713 export type RemoveComponentResponse = ··· 554 731 messageDesc(file_openstatus_status_page_v1_service, 15); 555 732 556 733 /** 734 + * UpdateComponentRequest is the request to update a component. 735 + * 557 736 * @generated from message openstatus.status_page.v1.UpdateComponentRequest 558 737 */ 559 738 export type UpdateComponentRequest = ··· 612 791 messageDesc(file_openstatus_status_page_v1_service, 16); 613 792 614 793 /** 794 + * UpdateComponentResponse is the response after updating a component. 795 + * 615 796 * @generated from message openstatus.status_page.v1.UpdateComponentResponse 616 797 */ 617 798 export type UpdateComponentResponse = ··· 635 816 messageDesc(file_openstatus_status_page_v1_service, 17); 636 817 637 818 /** 819 + * CreateComponentGroupRequest is the request to create a new component group. 820 + * 638 821 * @generated from message openstatus.status_page.v1.CreateComponentGroupRequest 639 822 */ 640 823 export type CreateComponentGroupRequest = ··· 653 836 * @generated from field: string name = 2; 654 837 */ 655 838 name: string; 839 + 840 + /** 841 + * Whether the group should be expanded by default on the status page (optional, defaults to false). 842 + * 843 + * @generated from field: optional bool default_open = 3; 844 + */ 845 + defaultOpen?: boolean; 656 846 }; 657 847 658 848 /** ··· 665 855 messageDesc(file_openstatus_status_page_v1_service, 18); 666 856 667 857 /** 858 + * CreateComponentGroupResponse is the response after creating a component group. 859 + * 668 860 * @generated from message openstatus.status_page.v1.CreateComponentGroupResponse 669 861 */ 670 862 export type CreateComponentGroupResponse = ··· 688 880 messageDesc(file_openstatus_status_page_v1_service, 19); 689 881 690 882 /** 883 + * DeleteComponentGroupRequest is the request to delete a component group. 884 + * 691 885 * @generated from message openstatus.status_page.v1.DeleteComponentGroupRequest 692 886 */ 693 887 export type DeleteComponentGroupRequest = ··· 711 905 messageDesc(file_openstatus_status_page_v1_service, 20); 712 906 713 907 /** 908 + * DeleteComponentGroupResponse is the response after deleting a component group. 909 + * 714 910 * @generated from message openstatus.status_page.v1.DeleteComponentGroupResponse 715 911 */ 716 912 export type DeleteComponentGroupResponse = ··· 734 930 messageDesc(file_openstatus_status_page_v1_service, 21); 735 931 736 932 /** 933 + * UpdateComponentGroupRequest is the request to update a component group. 934 + * 737 935 * @generated from message openstatus.status_page.v1.UpdateComponentGroupRequest 738 936 */ 739 937 export type UpdateComponentGroupRequest = ··· 752 950 * @generated from field: optional string name = 2; 753 951 */ 754 952 name?: string; 953 + 954 + /** 955 + * Whether the group should be expanded by default on the status page (optional). 956 + * 957 + * @generated from field: optional bool default_open = 3; 958 + */ 959 + defaultOpen?: boolean; 755 960 }; 756 961 757 962 /** ··· 764 969 messageDesc(file_openstatus_status_page_v1_service, 22); 765 970 766 971 /** 972 + * UpdateComponentGroupResponse is the response after updating a component group. 973 + * 767 974 * @generated from message openstatus.status_page.v1.UpdateComponentGroupResponse 768 975 */ 769 976 export type UpdateComponentGroupResponse = ··· 787 994 messageDesc(file_openstatus_status_page_v1_service, 23); 788 995 789 996 /** 997 + * SubscribeToPageRequest is the request to subscribe an email to a status page. 998 + * 790 999 * @generated from message openstatus.status_page.v1.SubscribeToPageRequest 791 1000 */ 792 1001 export type SubscribeToPageRequest = ··· 817 1026 messageDesc(file_openstatus_status_page_v1_service, 24); 818 1027 819 1028 /** 1029 + * SubscribeToPageResponse is the response after subscribing to a status page. 1030 + * 820 1031 * @generated from message openstatus.status_page.v1.SubscribeToPageResponse 821 1032 */ 822 1033 export type SubscribeToPageResponse = ··· 840 1051 messageDesc(file_openstatus_status_page_v1_service, 25); 841 1052 842 1053 /** 1054 + * EmailChannel carries the email-channel fields for CreatePageSubscription. 1055 + * 1056 + * @generated from message openstatus.status_page.v1.EmailChannel 1057 + */ 1058 + export type EmailChannel = Message<"openstatus.status_page.v1.EmailChannel"> & { 1059 + /** 1060 + * Email address of the subscriber (required). 1061 + * 1062 + * @generated from field: string email = 1; 1063 + */ 1064 + email: string; 1065 + }; 1066 + 1067 + /** 1068 + * Describes the message openstatus.status_page.v1.EmailChannel. 1069 + * Use `create(EmailChannelSchema)` to create a new message. 1070 + */ 1071 + export const EmailChannelSchema: GenMessage<EmailChannel> = /*@__PURE__*/ 1072 + messageDesc(file_openstatus_status_page_v1_service, 26); 1073 + 1074 + /** 1075 + * WebhookChannelHeader is a single custom HTTP header. 1076 + * 1077 + * @generated from message openstatus.status_page.v1.WebhookChannelHeader 1078 + */ 1079 + export type WebhookChannelHeader = 1080 + & Message<"openstatus.status_page.v1.WebhookChannelHeader"> 1081 + & { 1082 + /** 1083 + * @generated from field: string key = 1; 1084 + */ 1085 + key: string; 1086 + 1087 + /** 1088 + * @generated from field: string value = 2; 1089 + */ 1090 + value: string; 1091 + }; 1092 + 1093 + /** 1094 + * Describes the message openstatus.status_page.v1.WebhookChannelHeader. 1095 + * Use `create(WebhookChannelHeaderSchema)` to create a new message. 1096 + */ 1097 + export const WebhookChannelHeaderSchema: GenMessage< 1098 + WebhookChannelHeader 1099 + > = /*@__PURE__*/ 1100 + messageDesc(file_openstatus_status_page_v1_service, 27); 1101 + 1102 + /** 1103 + * WebhookChannel carries the webhook-channel fields for CreatePageSubscription. 1104 + * 1105 + * @generated from message openstatus.status_page.v1.WebhookChannel 1106 + */ 1107 + export type WebhookChannel = 1108 + & Message<"openstatus.status_page.v1.WebhookChannel"> 1109 + & { 1110 + /** 1111 + * Webhook URL (required). Payload flavor (Slack / Discord / generic) is auto-detected from the URL prefix. 1112 + * 1113 + * @generated from field: string webhook_url = 1; 1114 + */ 1115 + webhookUrl: string; 1116 + 1117 + /** 1118 + * Optional custom HTTP headers attached to every dispatch. 1119 + * 1120 + * @generated from field: repeated openstatus.status_page.v1.WebhookChannelHeader headers = 2; 1121 + */ 1122 + headers: WebhookChannelHeader[]; 1123 + }; 1124 + 1125 + /** 1126 + * Describes the message openstatus.status_page.v1.WebhookChannel. 1127 + * Use `create(WebhookChannelSchema)` to create a new message. 1128 + */ 1129 + export const WebhookChannelSchema: GenMessage<WebhookChannel> = /*@__PURE__*/ 1130 + messageDesc(file_openstatus_status_page_v1_service, 28); 1131 + 1132 + /** 1133 + * CreatePageSubscriptionRequest is the request to add a vendor-managed subscriber to a status page. 1134 + * 1135 + * @generated from message openstatus.status_page.v1.CreatePageSubscriptionRequest 1136 + */ 1137 + export type CreatePageSubscriptionRequest = 1138 + & Message<"openstatus.status_page.v1.CreatePageSubscriptionRequest"> 1139 + & { 1140 + /** 1141 + * ID of the status page (required). 1142 + * 1143 + * @generated from field: string page_id = 1; 1144 + */ 1145 + pageId: string; 1146 + 1147 + /** 1148 + * Optional human-readable label. 1149 + * 1150 + * @generated from field: optional string name = 2; 1151 + */ 1152 + name?: string; 1153 + 1154 + /** 1155 + * Component scope. Empty = entire page. 1156 + * 1157 + * @generated from field: repeated string component_ids = 3; 1158 + */ 1159 + componentIds: string[]; 1160 + 1161 + /** 1162 + * Channel-specific fields (exactly one must be set). 1163 + * 1164 + * @generated from oneof openstatus.status_page.v1.CreatePageSubscriptionRequest.channel 1165 + */ 1166 + channel: { 1167 + /** 1168 + * @generated from field: openstatus.status_page.v1.EmailChannel email_channel = 10; 1169 + */ 1170 + value: EmailChannel; 1171 + case: "emailChannel"; 1172 + } | { 1173 + /** 1174 + * @generated from field: openstatus.status_page.v1.WebhookChannel webhook_channel = 11; 1175 + */ 1176 + value: WebhookChannel; 1177 + case: "webhookChannel"; 1178 + } | { case: undefined; value?: undefined }; 1179 + }; 1180 + 1181 + /** 1182 + * Describes the message openstatus.status_page.v1.CreatePageSubscriptionRequest. 1183 + * Use `create(CreatePageSubscriptionRequestSchema)` to create a new message. 1184 + */ 1185 + export const CreatePageSubscriptionRequestSchema: GenMessage< 1186 + CreatePageSubscriptionRequest 1187 + > = /*@__PURE__*/ 1188 + messageDesc(file_openstatus_status_page_v1_service, 29); 1189 + 1190 + /** 1191 + * CreatePageSubscriptionResponse is the response after creating a vendor-managed subscription. 1192 + * 1193 + * @generated from message openstatus.status_page.v1.CreatePageSubscriptionResponse 1194 + */ 1195 + export type CreatePageSubscriptionResponse = 1196 + & Message<"openstatus.status_page.v1.CreatePageSubscriptionResponse"> 1197 + & { 1198 + /** 1199 + * The created subscriber. 1200 + * 1201 + * @generated from field: openstatus.status_page.v1.PageSubscriber subscriber = 1; 1202 + */ 1203 + subscriber?: PageSubscriber; 1204 + }; 1205 + 1206 + /** 1207 + * Describes the message openstatus.status_page.v1.CreatePageSubscriptionResponse. 1208 + * Use `create(CreatePageSubscriptionResponseSchema)` to create a new message. 1209 + */ 1210 + export const CreatePageSubscriptionResponseSchema: GenMessage< 1211 + CreatePageSubscriptionResponse 1212 + > = /*@__PURE__*/ 1213 + messageDesc(file_openstatus_status_page_v1_service, 30); 1214 + 1215 + /** 1216 + * UnsubscribeFromPageRequest is the request to unsubscribe from a status page. 1217 + * 843 1218 * @generated from message openstatus.status_page.v1.UnsubscribeFromPageRequest 844 1219 */ 845 1220 export type UnsubscribeFromPageRequest = ··· 883 1258 export const UnsubscribeFromPageRequestSchema: GenMessage< 884 1259 UnsubscribeFromPageRequest 885 1260 > = /*@__PURE__*/ 886 - messageDesc(file_openstatus_status_page_v1_service, 26); 1261 + messageDesc(file_openstatus_status_page_v1_service, 31); 887 1262 888 1263 /** 1264 + * UnsubscribeFromPageResponse is the response after unsubscribing from a status page. 1265 + * 889 1266 * @generated from message openstatus.status_page.v1.UnsubscribeFromPageResponse 890 1267 */ 891 1268 export type UnsubscribeFromPageResponse = ··· 906 1283 export const UnsubscribeFromPageResponseSchema: GenMessage< 907 1284 UnsubscribeFromPageResponse 908 1285 > = /*@__PURE__*/ 909 - messageDesc(file_openstatus_status_page_v1_service, 27); 1286 + messageDesc(file_openstatus_status_page_v1_service, 32); 910 1287 911 1288 /** 1289 + * ListSubscribersRequest is the request to list subscribers of a status page. 1290 + * 912 1291 * @generated from message openstatus.status_page.v1.ListSubscribersRequest 913 1292 */ 914 1293 export type ListSubscribersRequest = ··· 950 1329 export const ListSubscribersRequestSchema: GenMessage< 951 1330 ListSubscribersRequest 952 1331 > = /*@__PURE__*/ 953 - messageDesc(file_openstatus_status_page_v1_service, 28); 1332 + messageDesc(file_openstatus_status_page_v1_service, 33); 954 1333 955 1334 /** 1335 + * ListSubscribersResponse is the response containing status page subscribers. 1336 + * 956 1337 * @generated from message openstatus.status_page.v1.ListSubscribersResponse 957 1338 */ 958 1339 export type ListSubscribersResponse = ··· 980 1361 export const ListSubscribersResponseSchema: GenMessage< 981 1362 ListSubscribersResponse 982 1363 > = /*@__PURE__*/ 983 - messageDesc(file_openstatus_status_page_v1_service, 29); 1364 + messageDesc(file_openstatus_status_page_v1_service, 34); 984 1365 985 1366 /** 1367 + * GetStatusPageContentRequest is the request to get the full content of a status page. 1368 + * 986 1369 * @generated from message openstatus.status_page.v1.GetStatusPageContentRequest 987 1370 */ 988 1371 export type GetStatusPageContentRequest = ··· 1019 1402 export const GetStatusPageContentRequestSchema: GenMessage< 1020 1403 GetStatusPageContentRequest 1021 1404 > = /*@__PURE__*/ 1022 - messageDesc(file_openstatus_status_page_v1_service, 30); 1405 + messageDesc(file_openstatus_status_page_v1_service, 35); 1023 1406 1024 1407 /** 1408 + * GetStatusPageContentResponse is the response containing the full status page content. 1409 + * 1025 1410 * @generated from message openstatus.status_page.v1.GetStatusPageContentResponse 1026 1411 */ 1027 1412 export type GetStatusPageContentResponse = ··· 1070 1455 export const GetStatusPageContentResponseSchema: GenMessage< 1071 1456 GetStatusPageContentResponse 1072 1457 > = /*@__PURE__*/ 1073 - messageDesc(file_openstatus_status_page_v1_service, 31); 1458 + messageDesc(file_openstatus_status_page_v1_service, 36); 1074 1459 1075 1460 /** 1461 + * GetOverallStatusRequest is the request to get the overall status of a status page. 1462 + * 1076 1463 * @generated from message openstatus.status_page.v1.GetOverallStatusRequest 1077 1464 */ 1078 1465 export type GetOverallStatusRequest = ··· 1109 1496 export const GetOverallStatusRequestSchema: GenMessage< 1110 1497 GetOverallStatusRequest 1111 1498 > = /*@__PURE__*/ 1112 - messageDesc(file_openstatus_status_page_v1_service, 32); 1499 + messageDesc(file_openstatus_status_page_v1_service, 37); 1113 1500 1114 1501 /** 1115 1502 * ComponentStatus represents the status of a single component. ··· 1139 1526 * Use `create(ComponentStatusSchema)` to create a new message. 1140 1527 */ 1141 1528 export const ComponentStatusSchema: GenMessage<ComponentStatus> = /*@__PURE__*/ 1142 - messageDesc(file_openstatus_status_page_v1_service, 33); 1529 + messageDesc(file_openstatus_status_page_v1_service, 38); 1143 1530 1144 1531 /** 1532 + * GetOverallStatusResponse is the response containing the overall status and individual component statuses. 1533 + * 1145 1534 * @generated from message openstatus.status_page.v1.GetOverallStatusResponse 1146 1535 */ 1147 1536 export type GetOverallStatusResponse = ··· 1169 1558 export const GetOverallStatusResponseSchema: GenMessage< 1170 1559 GetOverallStatusResponse 1171 1560 > = /*@__PURE__*/ 1172 - messageDesc(file_openstatus_status_page_v1_service, 34); 1561 + messageDesc(file_openstatus_status_page_v1_service, 39); 1173 1562 1174 1563 /** 1175 - * StatusPageService provides CRUD and management operations for status pages. 1176 - * 1177 - * --- Page CRUD --- 1564 + * StatusPageService provides CRUD and management operations for status pages, 1565 + * including component management, component grouping, subscriber handling, and aggregated status queries. 1178 1566 * 1179 1567 * @generated from service openstatus.status_page.v1.StatusPageService 1180 1568 */ ··· 1300 1688 output: typeof UpdateComponentGroupResponseSchema; 1301 1689 }; 1302 1690 /** 1303 - * SubscribeToPage subscribes an email to a status page. 1691 + * SubscribeToPage: end-user email self-signup with double opt-in verification. 1692 + * 1693 + * Use this when an end-user enters their email on the public status page to 1694 + * subscribe themselves. A verification email is sent and the subscription is 1695 + * only activated once the recipient confirms. If the email was previously 1696 + * unsubscribed, the subscription is reactivated rather than duplicated. 1697 + * 1698 + * Pair with CreatePageSubscription (vendor-added, no verification) depending 1699 + * on who is initiating the subscription — the subscriber themselves, or an 1700 + * operator acting on their behalf. 1304 1701 * 1305 1702 * @generated from rpc openstatus.status_page.v1.StatusPageService.SubscribeToPage 1306 1703 */ ··· 1310 1707 output: typeof SubscribeToPageResponseSchema; 1311 1708 }; 1312 1709 /** 1710 + * CreatePageSubscription: operator-added subscriber (email or webhook), no verification. 1711 + * 1712 + * Use this when an operator adds a subscriber on behalf of a partner — the 1713 + * caller has already established consent out-of-band, so no double opt-in is 1714 + * required and notifications begin immediately. Supports both email and 1715 + * webhook (Slack / Discord) channels. A management token is still generated 1716 + * so the partner can self-manage via /manage/{token} and /unsubscribe/{token}. 1717 + * 1718 + * Pair with SubscribeToPage (self-signup with verification) depending on who 1719 + * is initiating the subscription. 1720 + * 1721 + * @generated from rpc openstatus.status_page.v1.StatusPageService.CreatePageSubscription 1722 + */ 1723 + createPageSubscription: { 1724 + methodKind: "unary"; 1725 + input: typeof CreatePageSubscriptionRequestSchema; 1726 + output: typeof CreatePageSubscriptionResponseSchema; 1727 + }; 1728 + /** 1313 1729 * UnsubscribeFromPage removes a subscription from a status page. 1314 1730 * 1315 1731 * @generated from rpc openstatus.status_page.v1.StatusPageService.UnsubscribeFromPage ··· 1330 1746 output: typeof ListSubscribersResponseSchema; 1331 1747 }; 1332 1748 /** 1333 - * GetStatusPageContent retrieves the full content of a status page including components and reports. 1749 + * GetStatusPageContent retrieves the full content of a status page including components, groups, active reports, and maintenances. 1334 1750 * 1335 1751 * @generated from rpc openstatus.status_page.v1.StatusPageService.GetStatusPageContent 1336 1752 */ ··· 1340 1756 output: typeof GetStatusPageContentResponseSchema; 1341 1757 }; 1342 1758 /** 1343 - * GetOverallStatus returns the aggregated status of a status page. 1759 + * GetOverallStatus returns the aggregated status of a status page and its individual components. 1344 1760 * 1345 1761 * @generated from rpc openstatus.status_page.v1.StatusPageService.GetOverallStatus 1346 1762 */
+91 -2
src/gen/openstatus/status_page/v1/status_page_pb.ts
··· 8 8 GenMessage, 9 9 } from "@bufbuild/protobuf/codegenv2"; 10 10 import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; 11 + import { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 11 12 import type { Message } from "@bufbuild/protobuf"; 12 13 13 14 /** ··· 15 16 */ 16 17 export const file_openstatus_status_page_v1_status_page: GenFile = /*@__PURE__*/ 17 18 fileDesc( 18 - "CitvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3N0YXR1c19wYWdlLnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIsoCCgpTdGF0dXNQYWdlEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBHNsdWcYBCABKAkSFQoNY3VzdG9tX2RvbWFpbhgFIAEoCRIRCglwdWJsaXNoZWQYBiABKAgSPgoLYWNjZXNzX3R5cGUYByABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlEjMKBXRoZW1lGAggASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWUSFAoMaG9tZXBhZ2VfdXJsGAkgASgJEhMKC2NvbnRhY3RfdXJsGAogASgJEgwKBGljb24YCyABKAkSEgoKY3JlYXRlZF9hdBgMIAEoCRISCgp1cGRhdGVkX2F0GA0gASgJIncKEVN0YXR1c1BhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSEQoJcHVibGlzaGVkGAQgASgIEhIKCmNyZWF0ZWRfYXQYBSABKAkSEgoKdXBkYXRlZF9hdBgGIAEoCSqcAQoOUGFnZUFjY2Vzc1R5cGUSIAocUEFHRV9BQ0NFU1NfVFlQRV9VTlNQRUNJRklFRBAAEhsKF1BBR0VfQUNDRVNTX1RZUEVfUFVCTElDEAESJwojUEFHRV9BQ0NFU1NfVFlQRV9QQVNTV09SRF9QUk9URUNURUQQAhIiCh5QQUdFX0FDQ0VTU19UWVBFX0FVVEhFTlRJQ0FURUQQAyppCglQYWdlVGhlbWUSGgoWUEFHRV9USEVNRV9VTlNQRUNJRklFRBAAEhUKEVBBR0VfVEhFTUVfU1lTVEVNEAESFAoQUEFHRV9USEVNRV9MSUdIVBACEhMKD1BBR0VfVEhFTUVfREFSSxADKuwBCg1PdmVyYWxsU3RhdHVzEh4KGk9WRVJBTExfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaT1ZFUkFMTF9TVEFUVVNfT1BFUkFUSU9OQUwQARIbChdPVkVSQUxMX1NUQVRVU19ERUdSQURFRBACEiEKHU9WRVJBTExfU1RBVFVTX1BBUlRJQUxfT1VUQUdFEAMSHwobT1ZFUkFMTF9TVEFUVVNfTUFKT1JfT1VUQUdFEAQSHgoaT1ZFUkFMTF9TVEFUVVNfTUFJTlRFTkFOQ0UQBRIaChZPVkVSQUxMX1NUQVRVU19VTktOT1dOEAZCWlpYZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxO3N0YXR1c3BhZ2V2MWIGcHJvdG8z", 19 + "CitvcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxL3N0YXR1c19wYWdlLnByb3RvEhlvcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxIv4ECgpTdGF0dXNQYWdlEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEh4KBHNsdWcYBCABKAlCELpHDToLEglhY21lLWNvcnASMAoNY3VzdG9tX2RvbWFpbhgFIAEoCUIZukcWOhQSEnN0YXR1cy5leGFtcGxlLmNvbRIRCglwdWJsaXNoZWQYBiABKAgSPgoLYWNjZXNzX3R5cGUYByABKA4yKS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLlBhZ2VBY2Nlc3NUeXBlEjMKBXRoZW1lGAggASgOMiQub3BlbnN0YXR1cy5zdGF0dXNfcGFnZS52MS5QYWdlVGhlbWUSFAoMaG9tZXBhZ2VfdXJsGAkgASgJEhMKC2NvbnRhY3RfdXJsGAogASgJEgwKBGljb24YCyABKAkSLwoKY3JlYXRlZF9hdBgMIAEoCUIbukcYOhYSFDIwMjQtMDEtMTVUMDk6MDA6MDBaEi8KCnVwZGF0ZWRfYXQYDSABKAlCG7pHGDoWEhQyMDI0LTA2LTIwVDE0OjMwOjAwWhI5Cg5kZWZhdWx0X2xvY2FsZRgOIAEoDjIhLm9wZW5zdGF0dXMuc3RhdHVzX3BhZ2UudjEuTG9jYWxlEjIKB2xvY2FsZXMYDyADKA4yIS5vcGVuc3RhdHVzLnN0YXR1c19wYWdlLnYxLkxvY2FsZRIQCghwYXNzd29yZBgQIAEoCRIaChJhdXRoX2VtYWlsX2RvbWFpbnMYESADKAkSEwoLYWxsb3dfaW5kZXgYEiABKAgSGQoRYWxsb3dlZF9pcF9yYW5nZXMYEyABKAkiqQEKEVN0YXR1c1BhZ2VTdW1tYXJ5EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBHNsdWcYAyABKAkSEQoJcHVibGlzaGVkGAQgASgIEhIKCmNyZWF0ZWRfYXQYBSABKAkSEgoKdXBkYXRlZF9hdBgGIAEoCRIwCg1jdXN0b21fZG9tYWluGAcgASgJQhm6RxY6FBISc3RhdHVzLmV4YW1wbGUuY29tKsABCg5QYWdlQWNjZXNzVHlwZRIgChxQQUdFX0FDQ0VTU19UWVBFX1VOU1BFQ0lGSUVEEAASGwoXUEFHRV9BQ0NFU1NfVFlQRV9QVUJMSUMQARInCiNQQUdFX0FDQ0VTU19UWVBFX1BBU1NXT1JEX1BST1RFQ1RFRBACEiIKHlBBR0VfQUNDRVNTX1RZUEVfQVVUSEVOVElDQVRFRBADEiIKHlBBR0VfQUNDRVNTX1RZUEVfSVBfUkVTVFJJQ1RFRBAEKmkKCVBhZ2VUaGVtZRIaChZQQUdFX1RIRU1FX1VOU1BFQ0lGSUVEEAASFQoRUEFHRV9USEVNRV9TWVNURU0QARIUChBQQUdFX1RIRU1FX0xJR0hUEAISEwoPUEFHRV9USEVNRV9EQVJLEAMqTQoGTG9jYWxlEhYKEkxPQ0FMRV9VTlNQRUNJRklFRBAAEg0KCUxPQ0FMRV9FThABEg0KCUxPQ0FMRV9GUhACEg0KCUxPQ0FMRV9ERRADKuwBCg1PdmVyYWxsU3RhdHVzEh4KGk9WRVJBTExfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHgoaT1ZFUkFMTF9TVEFUVVNfT1BFUkFUSU9OQUwQARIbChdPVkVSQUxMX1NUQVRVU19ERUdSQURFRBACEiEKHU9WRVJBTExfU1RBVFVTX1BBUlRJQUxfT1VUQUdFEAMSHwobT1ZFUkFMTF9TVEFUVVNfTUFKT1JfT1VUQUdFEAQSHgoaT1ZFUkFMTF9TVEFUVVNfTUFJTlRFTkFOQ0UQBRIaChZPVkVSQUxMX1NUQVRVU19VTktOT1dOEAZCWlpYZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19wYWdlL3YxO3N0YXR1c3BhZ2V2MWIGcHJvdG8z", 20 + [file_gnostic_openapi_v3_annotations], 19 21 ); 20 22 21 23 /** ··· 114 116 * @generated from field: string updated_at = 13; 115 117 */ 116 118 updatedAt: string; 119 + 120 + /** 121 + * Default locale for the status page. 122 + * 123 + * @generated from field: openstatus.status_page.v1.Locale default_locale = 14; 124 + */ 125 + defaultLocale: Locale; 126 + 127 + /** 128 + * Enabled locales for the status page. 129 + * 130 + * @generated from field: repeated openstatus.status_page.v1.Locale locales = 15; 131 + */ 132 + locales: Locale[]; 133 + 134 + /** 135 + * Password for the status page (only set when access_type is PASSWORD_PROTECTED). 136 + * 137 + * @generated from field: string password = 16; 138 + */ 139 + password: string; 140 + 141 + /** 142 + * Email domains allowed to access the page (only set when access_type is AUTHENTICATED). 143 + * 144 + * @generated from field: repeated string auth_email_domains = 17; 145 + */ 146 + authEmailDomains: string[]; 147 + 148 + /** 149 + * Whether search engines are allowed to index this status page. 150 + * 151 + * @generated from field: bool allow_index = 18; 152 + */ 153 + allowIndex: boolean; 154 + 155 + /** 156 + * Comma-separated IPv4 CIDR ranges (only set when access_type is IP_RESTRICTED). 157 + * 158 + * @generated from field: string allowed_ip_ranges = 19; 159 + */ 160 + allowedIpRanges: string; 117 161 }; 118 162 119 163 /** ··· 172 216 * @generated from field: string updated_at = 6; 173 217 */ 174 218 updatedAt: string; 219 + 220 + /** 221 + * Custom domain for the status page (optional). 222 + * 223 + * @generated from field: string custom_domain = 7; 224 + */ 225 + customDomain: string; 175 226 }; 176 227 177 228 /** ··· 208 259 * @generated from enum value: PAGE_ACCESS_TYPE_AUTHENTICATED = 3; 209 260 */ 210 261 AUTHENTICATED = 3, 262 + 263 + /** 264 + * @generated from enum value: PAGE_ACCESS_TYPE_IP_RESTRICTED = 4; 265 + */ 266 + IP_RESTRICTED = 4, 211 267 } 212 268 213 269 /** ··· 250 306 enumDesc(file_openstatus_status_page_v1_status_page, 1); 251 307 252 308 /** 309 + * Locale defines the supported languages for a status page. 310 + * 311 + * @generated from enum openstatus.status_page.v1.Locale 312 + */ 313 + export enum Locale { 314 + /** 315 + * @generated from enum value: LOCALE_UNSPECIFIED = 0; 316 + */ 317 + UNSPECIFIED = 0, 318 + 319 + /** 320 + * @generated from enum value: LOCALE_EN = 1; 321 + */ 322 + EN = 1, 323 + 324 + /** 325 + * @generated from enum value: LOCALE_FR = 2; 326 + */ 327 + FR = 2, 328 + 329 + /** 330 + * @generated from enum value: LOCALE_DE = 3; 331 + */ 332 + DE = 3, 333 + } 334 + 335 + /** 336 + * Describes the enum openstatus.status_page.v1.Locale. 337 + */ 338 + export const LocaleSchema: GenEnum<Locale> = /*@__PURE__*/ 339 + enumDesc(file_openstatus_status_page_v1_status_page, 2); 340 + 341 + /** 253 342 * OverallStatus represents the aggregated status of all components on a page. 254 343 * 255 344 * @generated from enum openstatus.status_page.v1.OverallStatus ··· 295 384 * Describes the enum openstatus.status_page.v1.OverallStatus. 296 385 */ 297 386 export const OverallStatusSchema: GenEnum<OverallStatus> = /*@__PURE__*/ 298 - enumDesc(file_openstatus_status_page_v1_status_page, 2); 387 + enumDesc(file_openstatus_status_page_v1_status_page, 3);
+38 -3
src/gen/openstatus/status_report/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 { file_gnostic_openapi_v3_annotations } from "../../../gnostic/openapi/v3/annotations_pb.ts"; 16 17 import type { 17 18 StatusReport, 18 19 StatusReportStatus, ··· 26 27 */ 27 28 export const file_openstatus_status_report_v1_service: GenFile = /*@__PURE__*/ 28 29 fileDesc( 29 - "CilvcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjEvc2VydmljZS5wcm90bxIbb3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxIskCChlDcmVhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0EhYKBXRpdGxlGAEgASgJQge6SARyAhABEkkKBnN0YXR1cxgCIAEoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCLpIBYIBAhABEhgKB21lc3NhZ2UYAyABKAlCB7pIBHICEAESWQoEZGF0ZRgEIAEoCUJLukhIckYyRF5cZHs0fS1cZHsyfS1cZHsyfVRcZHsyfTpcZHsyfTpcZHsyfShcLlxkezEsOX0pPyhafFsrLV1cZHsyfTpcZHsyfSkkEhgKB3BhZ2VfaWQYBSABKAlCB7pIBHICEAESGgoScGFnZV9jb21wb25lbnRfaWRzGAYgAygJEhMKBm5vdGlmeRgHIAEoCEgAiAEBQgkKB19ub3RpZnkiXgoaQ3JlYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQiLQoWR2V0U3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASJbChdHZXRTdGF0dXNSZXBvcnRSZXNwb25zZRJACg1zdGF0dXNfcmVwb3J0GAEgASgLMikub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlN0YXR1c1JlcG9ydCKvAQoYTGlzdFN0YXR1c1JlcG9ydHNSZXF1ZXN0Eh0KBWxpbWl0GAEgASgFQgm6SAYaBBhkKAFIAIgBARIcCgZvZmZzZXQYAiABKAVCB7pIBBoCKABIAYgBARJBCghzdGF0dXNlcxgDIAMoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCAoGX2xpbWl0QgkKB19vZmZzZXQieQoZTGlzdFN0YXR1c1JlcG9ydHNSZXNwb25zZRJICg5zdGF0dXNfcmVwb3J0cxgBIAMoCzIwLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdW1tYXJ5EhIKCnRvdGFsX3NpemUYAiABKAUiagoZVXBkYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQARISCgV0aXRsZRgCIAEoCUgAiAEBEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgDIAMoCUIICgZfdGl0bGUiXgoaVXBkYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQiMAoZRGVsZXRlU3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASItChpEZWxldGVTdGF0dXNSZXBvcnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIq8CChxBZGRTdGF0dXNSZXBvcnRVcGRhdGVSZXF1ZXN0EiEKEHN0YXR1c19yZXBvcnRfaWQYASABKAlCB7pIBHICEAESSQoGc3RhdHVzGAIgASgOMi8ub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlN0YXR1c1JlcG9ydFN0YXR1c0IIukgFggECEAESGAoHbWVzc2FnZRgDIAEoCUIHukgEcgIQARJeCgRkYXRlGAQgASgJQku6SEhyRjJEXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGR7MSw5fSk/KFp8WystXVxkezJ9OlxkezJ9KSRIAIgBARITCgZub3RpZnkYBSABKAhIAYgBAUIHCgVfZGF0ZUIJCgdfbm90aWZ5ImEKHUFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0MsEGChNTdGF0dXNSZXBvcnRTZXJ2aWNlEoUBChJDcmVhdGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQ3JlYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5DcmVhdGVTdGF0dXNSZXBvcnRSZXNwb25zZRJ8Cg9HZXRTdGF0dXNSZXBvcnQSMy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuR2V0U3RhdHVzUmVwb3J0UmVxdWVzdBo0Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5HZXRTdGF0dXNSZXBvcnRSZXNwb25zZRKCAQoRTGlzdFN0YXR1c1JlcG9ydHMSNS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuTGlzdFN0YXR1c1JlcG9ydHNSZXF1ZXN0GjYub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkxpc3RTdGF0dXNSZXBvcnRzUmVzcG9uc2UShQEKElVwZGF0ZVN0YXR1c1JlcG9ydBI2Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5VcGRhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0Gjcub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlVwZGF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEoUBChJEZWxldGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuRGVsZXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5EZWxldGVTdGF0dXNSZXBvcnRSZXNwb25zZRKOAQoVQWRkU3RhdHVzUmVwb3J0VXBkYXRlEjkub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlcXVlc3QaOi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQWRkU3RhdHVzUmVwb3J0VXBkYXRlUmVzcG9uc2VCXlpcZ2l0aHViLmNvbS9vcGVuc3RhdHVzaHEvb3BlbnN0YXR1cy9wYWNrYWdlcy9wcm90by9vcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjE7c3RhdHVzcmVwb3J0djFiBnByb3RvMw", 30 + "CilvcGVuc3RhdHVzL3N0YXR1c19yZXBvcnQvdjEvc2VydmljZS5wcm90bxIbb3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxIsUDChlDcmVhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0EjoKBXRpdGxlGAEgASgJQiu6RyE6HxIdQVBJIERlZ3JhZGF0aW9uIEludmVzdGlnYXRpb266SARyAhABEkkKBnN0YXR1cxgCIAEoDjIvLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnRTdGF0dXNCCLpIBYIBAhABElUKB21lc3NhZ2UYAyABKAlCRLpHOjo4EjZXZSBhcmUgaW52ZXN0aWdhdGluZyByZXBvcnRzIG9mIGluY3JlYXNlZCBBUEkgbGF0ZW5jeS66SARyAhABEnQKBGRhdGUYBCABKAlCZrpHGDoWEhQyMDI0LTAzLTE1VDEwOjMwOjAwWrpISHJGMkReXGR7NH0tXGR7Mn0tXGR7Mn1UXGR7Mn06XGR7Mn06XGR7Mn0oXC5cZHsxLDl9KT8oWnxbKy1dXGR7Mn06XGR7Mn0pJBIYCgdwYWdlX2lkGAUgASgJQge6SARyAhABEhoKEnBhZ2VfY29tcG9uZW50X2lkcxgGIAMoCRITCgZub3RpZnkYByABKAhIAIgBAUIJCgdfbm90aWZ5Il4KGkNyZWF0ZVN0YXR1c1JlcG9ydFJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0Ii0KFkdldFN0YXR1c1JlcG9ydFJlcXVlc3QSEwoCaWQYASABKAlCB7pIBHICEAEiWwoXR2V0U3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQirwEKGExpc3RTdGF0dXNSZXBvcnRzUmVxdWVzdBIdCgVsaW1pdBgBIAEoBUIJukgGGgQYZCgBSACIAQESHAoGb2Zmc2V0GAIgASgFQge6SAQaAigASAGIAQESQQoIc3RhdHVzZXMYAyADKA4yLy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0U3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0InkKGUxpc3RTdGF0dXNSZXBvcnRzUmVzcG9uc2USSAoOc3RhdHVzX3JlcG9ydHMYASADKAsyMC5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0U3VtbWFyeRISCgp0b3RhbF9zaXplGAIgASgFIrABChlVcGRhdGVTdGF0dXNSZXBvcnRSZXF1ZXN0EhMKAmlkGAEgASgJQge6SARyAhABEhIKBXRpdGxlGAIgASgJSACIAQESGgoScGFnZV9jb21wb25lbnRfaWRzGAMgAygJEiYKGXVwZGF0ZV9wYWdlX2NvbXBvbmVudF9pZHMYBCABKAhIAYgBAUIICgZfdGl0bGVCHAoaX3VwZGF0ZV9wYWdlX2NvbXBvbmVudF9pZHMiXgoaVXBkYXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USQAoNc3RhdHVzX3JlcG9ydBgBIAEoCzIpLm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5TdGF0dXNSZXBvcnQiMAoZRGVsZXRlU3RhdHVzUmVwb3J0UmVxdWVzdBITCgJpZBgBIAEoCUIHukgEcgIQASItChpEZWxldGVTdGF0dXNSZXBvcnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIq8CChxBZGRTdGF0dXNSZXBvcnRVcGRhdGVSZXF1ZXN0EiEKEHN0YXR1c19yZXBvcnRfaWQYASABKAlCB7pIBHICEAESSQoGc3RhdHVzGAIgASgOMi8ub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLlN0YXR1c1JlcG9ydFN0YXR1c0IIukgFggECEAESGAoHbWVzc2FnZRgDIAEoCUIHukgEcgIQARJeCgRkYXRlGAQgASgJQku6SEhyRjJEXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGR7MSw5fSk/KFp8WystXVxkezJ9OlxkezJ9KSRIAIgBARITCgZub3RpZnkYBSABKAhIAYgBAUIHCgVfZGF0ZUIJCgdfbm90aWZ5ImEKHUFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlc3BvbnNlEkAKDXN0YXR1c19yZXBvcnQYASABKAsyKS5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuU3RhdHVzUmVwb3J0Mr8LChNTdGF0dXNSZXBvcnRTZXJ2aWNlEs4DChJDcmVhdGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuQ3JlYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5DcmVhdGVTdGF0dXNSZXBvcnRSZXNwb25zZSLGArpHwgIavwJDcmVhdGVzIGEgbmV3IHN0YXR1cyByZXBvcnQgd2l0aCBhbiBpbml0aWFsIHVwZGF0ZSBlbnRyeS4gVGhlIHJlcG9ydCBpcyBhc3NvY2lhdGVkIHdpdGggYSBzdGF0dXMgcGFnZSBhbmQgb3B0aW9uYWxseSBzcGVjaWZpYyBwYWdlIGNvbXBvbmVudHMuIEFuIGluaXRpYWwgU3RhdHVzUmVwb3J0VXBkYXRlIGlzIGNyZWF0ZWQgYXV0b21hdGljYWxseSB3aXRoIHRoZSBwcm92aWRlZCBzdGF0dXMsIG1lc3NhZ2UsIGFuZCBkYXRlLiBJZiBub3RpZnkgaXMgdHJ1ZSwgc3Vic2NyaWJlcnMgb2YgdGhlIGFzc29jaWF0ZWQgcGFnZSBhcmUgbm90aWZpZWQgYnkgZW1haWwuEoEBCg9HZXRTdGF0dXNSZXBvcnQSMy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuR2V0U3RhdHVzUmVwb3J0UmVxdWVzdBo0Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5HZXRTdGF0dXNSZXBvcnRSZXNwb25zZSIDkAIBEocBChFMaXN0U3RhdHVzUmVwb3J0cxI1Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5MaXN0U3RhdHVzUmVwb3J0c1JlcXVlc3QaNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuTGlzdFN0YXR1c1JlcG9ydHNSZXNwb25zZSIDkAIBEoUBChJVcGRhdGVTdGF0dXNSZXBvcnQSNi5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuVXBkYXRlU3RhdHVzUmVwb3J0UmVxdWVzdBo3Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5VcGRhdGVTdGF0dXNSZXBvcnRSZXNwb25zZRKFAQoSRGVsZXRlU3RhdHVzUmVwb3J0EjYub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkRlbGV0ZVN0YXR1c1JlcG9ydFJlcXVlc3QaNy5vcGVuc3RhdHVzLnN0YXR1c19yZXBvcnQudjEuRGVsZXRlU3RhdHVzUmVwb3J0UmVzcG9uc2USuAMKFUFkZFN0YXR1c1JlcG9ydFVwZGF0ZRI5Lm9wZW5zdGF0dXMuc3RhdHVzX3JlcG9ydC52MS5BZGRTdGF0dXNSZXBvcnRVcGRhdGVSZXF1ZXN0Gjoub3BlbnN0YXR1cy5zdGF0dXNfcmVwb3J0LnYxLkFkZFN0YXR1c1JlcG9ydFVwZGF0ZVJlc3BvbnNlIqcCukejAhqgAkFkZHMgYSBuZXcgdXBkYXRlIGVudHJ5IHRvIGFuIGV4aXN0aW5nIHN0YXR1cyByZXBvcnQgYW5kIHRyYW5zaXRpb25zIHRoZSByZXBvcnQgdG8gdGhlIHNwZWNpZmllZCBzdGF0dXMuIFN0YXR1cyByZXBvcnRzIGZvbGxvdyBhIGxpZmVjeWNsZTogaW52ZXN0aWdhdGluZyAtPiBpZGVudGlmaWVkIC0+IG1vbml0b3JpbmcgLT4gcmVzb2x2ZWQuIElmIG5vdGlmeSBpcyB0cnVlLCBzdWJzY3JpYmVycyBvZiB0aGUgYXNzb2NpYXRlZCBwYWdlIGFyZSBub3RpZmllZCBieSBlbWFpbCBhYm91dCB0aGUgdXBkYXRlLkJeWlxnaXRodWIuY29tL29wZW5zdGF0dXNocS9vcGVuc3RhdHVzL3BhY2thZ2VzL3Byb3RvL29wZW5zdGF0dXMvc3RhdHVzX3JlcG9ydC92MTtzdGF0dXNyZXBvcnR2MWIGcHJvdG8z", 30 31 [ 31 32 file_buf_validate_validate, 33 + file_gnostic_openapi_v3_annotations, 32 34 file_openstatus_status_report_v1_status_report, 33 35 ], 34 36 ); 35 37 36 38 /** 39 + * CreateStatusReportRequest is the request to create a new status report. 40 + * 37 41 * @generated from message openstatus.status_report.v1.CreateStatusReportRequest 38 42 */ 39 43 export type CreateStatusReportRequest = ··· 99 103 messageDesc(file_openstatus_status_report_v1_service, 0); 100 104 101 105 /** 106 + * CreateStatusReportResponse is the response after creating a status report. 107 + * 102 108 * @generated from message openstatus.status_report.v1.CreateStatusReportResponse 103 109 */ 104 110 export type CreateStatusReportResponse = ··· 122 128 messageDesc(file_openstatus_status_report_v1_service, 1); 123 129 124 130 /** 131 + * GetStatusReportRequest is the request to get a status report by ID. 132 + * 125 133 * @generated from message openstatus.status_report.v1.GetStatusReportRequest 126 134 */ 127 135 export type GetStatusReportRequest = ··· 145 153 messageDesc(file_openstatus_status_report_v1_service, 2); 146 154 147 155 /** 156 + * GetStatusReportResponse is the response containing the status report with its full update timeline. 157 + * 148 158 * @generated from message openstatus.status_report.v1.GetStatusReportResponse 149 159 */ 150 160 export type GetStatusReportResponse = ··· 168 178 messageDesc(file_openstatus_status_report_v1_service, 3); 169 179 170 180 /** 181 + * ListStatusReportsRequest is the request to list status reports. 182 + * 171 183 * @generated from message openstatus.status_report.v1.ListStatusReportsRequest 172 184 */ 173 185 export type ListStatusReportsRequest = ··· 205 217 messageDesc(file_openstatus_status_report_v1_service, 4); 206 218 207 219 /** 220 + * ListStatusReportsResponse is the response containing status report summaries. 221 + * 208 222 * @generated from message openstatus.status_report.v1.ListStatusReportsResponse 209 223 */ 210 224 export type ListStatusReportsResponse = ··· 235 249 messageDesc(file_openstatus_status_report_v1_service, 5); 236 250 237 251 /** 252 + * UpdateStatusReportRequest is the request to update a status report's metadata. 253 + * 238 254 * @generated from message openstatus.status_report.v1.UpdateStatusReportRequest 239 255 */ 240 256 export type UpdateStatusReportRequest = ··· 260 276 * @generated from field: repeated string page_component_ids = 3; 261 277 */ 262 278 pageComponentIds: string[]; 279 + 280 + /** 281 + * Set to true to update page component associations. 282 + * When true, page_component_ids replaces the existing list (empty clears all). 283 + * When false or unset, page_component_ids is ignored and existing associations are preserved. 284 + * 285 + * @generated from field: optional bool update_page_component_ids = 4; 286 + */ 287 + updatePageComponentIds?: boolean; 263 288 }; 264 289 265 290 /** ··· 272 297 messageDesc(file_openstatus_status_report_v1_service, 6); 273 298 274 299 /** 300 + * UpdateStatusReportResponse is the response after updating a status report. 301 + * 275 302 * @generated from message openstatus.status_report.v1.UpdateStatusReportResponse 276 303 */ 277 304 export type UpdateStatusReportResponse = ··· 295 322 messageDesc(file_openstatus_status_report_v1_service, 7); 296 323 297 324 /** 325 + * DeleteStatusReportRequest is the request to delete a status report. 326 + * 298 327 * @generated from message openstatus.status_report.v1.DeleteStatusReportRequest 299 328 */ 300 329 export type DeleteStatusReportRequest = ··· 318 347 messageDesc(file_openstatus_status_report_v1_service, 8); 319 348 320 349 /** 350 + * DeleteStatusReportResponse is the response after deleting a status report. 351 + * 321 352 * @generated from message openstatus.status_report.v1.DeleteStatusReportResponse 322 353 */ 323 354 export type DeleteStatusReportResponse = ··· 341 372 messageDesc(file_openstatus_status_report_v1_service, 9); 342 373 343 374 /** 375 + * AddStatusReportUpdateRequest is the request to add a new update to a status report. 376 + * 344 377 * @generated from message openstatus.status_report.v1.AddStatusReportUpdateRequest 345 378 */ 346 379 export type AddStatusReportUpdateRequest = ··· 392 425 messageDesc(file_openstatus_status_report_v1_service, 10); 393 426 394 427 /** 428 + * AddStatusReportUpdateResponse is the response after adding an update to a status report. 429 + * 395 430 * @generated from message openstatus.status_report.v1.AddStatusReportUpdateResponse 396 431 */ 397 432 export type AddStatusReportUpdateResponse = ··· 421 456 */ 422 457 export const StatusReportService: GenService<{ 423 458 /** 424 - * CreateStatusReport creates a new status report. 459 + * CreateStatusReport creates a new status report with an initial update entry and optionally notifies subscribers. 425 460 * 426 461 * @generated from rpc openstatus.status_report.v1.StatusReportService.CreateStatusReport 427 462 */ ··· 471 506 output: typeof DeleteStatusReportResponseSchema; 472 507 }; 473 508 /** 474 - * AddStatusReportUpdate adds a new update to an existing status report timeline. 509 + * AddStatusReportUpdate adds a new update to an existing status report timeline and transitions the report status. 475 510 * 476 511 * @generated from rpc openstatus.status_report.v1.StatusReportService.AddStatusReportUpdate 477 512 */