@leaflow/sdk 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -862,6 +862,71 @@ export interface paths {
862
862
  patch?: never;
863
863
  trace?: never;
864
864
  };
865
+ "/api/v1/web-checks/{checkId}": {
866
+ parameters: {
867
+ query?: never;
868
+ header?: never;
869
+ path: {
870
+ checkId: string;
871
+ };
872
+ cookie?: never;
873
+ };
874
+ /** Get a project-level web check */
875
+ get: operations["get-project-web-check"];
876
+ /**
877
+ * Create a web check that is not tied to a machine, or replace it by the same id
878
+ * @description **Create or replace**: to modify a check, call this endpoint again with the same id.
879
+ *
880
+ * Unlike `/servers/{serverId}/web-checks/{checkId}`, this check does not belong to any machine — use it when the target is simply a URL. Nothing needs to be enrolled first.
881
+ *
882
+ * A check bound to a machine is removed together with that machine; a project-level check is not. Where a check belongs cannot be changed afterwards: move it by deleting and recreating it.
883
+ */
884
+ put: operations["put-project-web-check"];
885
+ post?: never;
886
+ /**
887
+ * Delete a project-level web check
888
+ * @description The corresponding check task and trigger are removed from the monitoring system as well.
889
+ */
890
+ delete: operations["delete-project-web-check"];
891
+ options?: never;
892
+ head?: never;
893
+ patch?: never;
894
+ trace?: never;
895
+ };
896
+ "/api/v1/status-page/domain": {
897
+ parameters: {
898
+ query?: never;
899
+ header?: never;
900
+ path?: never;
901
+ cookie?: never;
902
+ };
903
+ /**
904
+ * Get the custom domain and its certificate state
905
+ * @description Reports whether the domain currently resolves to the status page and where its certificate stands.
906
+ *
907
+ * `expected_cname` is the value the domain must point at. `observed_cname` is what it currently resolves to, which is what to show the user when verification fails — "verification failed" on its own tells them nothing about what to fix.
908
+ */
909
+ get: operations["get-status-page-domain"];
910
+ /**
911
+ * Bind a custom domain to this status page
912
+ * @description The domain must already point at the status page by CNAME. Binding is rejected until it does, and the error carries both the expected and the observed target.
913
+ *
914
+ * Ownership is verified before the domain is stored, and it is verified again before each certificate is issued: a domain whose CNAME is later removed stops being served.
915
+ *
916
+ * A certificate is requested in the background — this call does not wait for it. Poll GET on this endpoint to follow its progress; until a certificate is active, the domain does not serve HTTPS while the page remains reachable at its shared address.
917
+ */
918
+ put: operations["put-status-page-domain"];
919
+ post?: never;
920
+ /**
921
+ * Unbind the custom domain
922
+ * @description The page stays reachable at its shared address. Certificate renewal for the domain stops; the certificate already issued is left to expire.
923
+ */
924
+ delete: operations["delete-status-page-domain"];
925
+ options?: never;
926
+ head?: never;
927
+ patch?: never;
928
+ trace?: never;
929
+ };
865
930
  }
866
931
  export type webhooks = Record<string, never>;
867
932
  export interface components {
@@ -1365,7 +1430,10 @@ export interface components {
1365
1430
  result: components["schemas"]["WebCheckResultResource"] | null;
1366
1431
  /** Format: int64 */
1367
1432
  retries: number;
1368
- /** Format: uuid */
1433
+ /**
1434
+ * Format: uuid
1435
+ * @description The machine this check is attached to. Empty for a project-level check, which is not tied to any machine
1436
+ */
1369
1437
  server_id: string;
1370
1438
  steps: components["schemas"]["WebCheckStepResource"][] | null;
1371
1439
  /** @enum {string} */
@@ -1508,11 +1576,12 @@ export interface components {
1508
1576
  headline: string;
1509
1577
  logo_url: string;
1510
1578
  name: string;
1511
- /** @description The current public address of this page. It is returned even while unpublished, in which case opening it returns 404 */
1579
+ /** @description The address this page is served at: the custom domain if one is bound, otherwise the shared domain with the slug, otherwise the shared domain with the project id */
1512
1580
  public_url: string;
1513
1581
  published: boolean;
1514
1582
  /** @description Whether search engines may index the page */
1515
1583
  search_engine_index: boolean;
1584
+ /** @description The readable address segment, empty when none is set. The page is always reachable at /<project id> regardless */
1516
1585
  slug: string;
1517
1586
  /** Format: uuid */
1518
1587
  status_page_id: string;
@@ -1528,11 +1597,13 @@ export interface components {
1528
1597
  * @description Number of days covered by the availability bar
1529
1598
  */
1530
1599
  uptime_days: number;
1600
+ /** @description The text shown on the support link. Empty means the page default is used */
1601
+ support_label: string;
1531
1602
  };
1532
1603
  PutStatusPageRequestBody: {
1533
1604
  /** @description #RRGGBB. Applied to the page styling; only a strict six-digit hexadecimal value is accepted */
1534
1605
  brand_color?: string;
1535
- /** @description Your own domain, such as status.acme.com. Empty binds none. Globally unique */
1606
+ /** @description Read-only here. Bind a custom domain through PUT /status-page/domain, which verifies ownership first; a value sent here is ignored */
1536
1607
  custom_domain?: string;
1537
1608
  /** @description The line of free-form text in the page footer. Plain text */
1538
1609
  footer_text?: string;
@@ -1551,8 +1622,8 @@ export interface components {
1551
1622
  * @default false
1552
1623
  */
1553
1624
  search_engine_index?: boolean;
1554
- /** @description The address segment under the shared domain. Lowercase letters, digits and hyphens. Globally unique */
1555
- slug: string;
1625
+ /** @description An optional readable address segment under the shared domain. Lowercase letters, digits and hyphens; globally unique. Leave it empty and the page is served at /<project id>, which needs no configuration and cannot be taken by anyone else */
1626
+ slug?: string;
1556
1627
  support_url?: string;
1557
1628
  /**
1558
1629
  * @default AUTO
@@ -1566,6 +1637,8 @@ export interface components {
1566
1637
  * @default 90
1567
1638
  */
1568
1639
  uptime_days?: number;
1640
+ /** @description The text shown on the support link. Empty uses the page default. Different products call this different things — help centre, submit a ticket, support */
1641
+ support_label?: string;
1569
1642
  };
1570
1643
  PutStatusPageOrderRequestBody: {
1571
1644
  items: components["schemas"]["StatusPageOrderItem"][];
@@ -1847,6 +1920,39 @@ export interface components {
1847
1920
  */
1848
1921
  scheduled_until: string;
1849
1922
  };
1923
+ StatusPageDomainResource: {
1924
+ /**
1925
+ * Format: date-time
1926
+ * @description When the current certificate expires
1927
+ */
1928
+ certificate_not_after: string | null;
1929
+ /**
1930
+ * @description NONE means no certificate has been requested for this domain yet
1931
+ * @enum {string}
1932
+ */
1933
+ certificate_status: "NONE" | "PENDING" | "ACTIVE" | "FAILED";
1934
+ /** @description The bound custom domain. Empty means none is bound */
1935
+ domain: string;
1936
+ /** @description The value the domain must point at */
1937
+ expected_cname: string;
1938
+ /** @description Why the most recent issuance attempt failed. Empty when it did not */
1939
+ last_error: string;
1940
+ /** @description What the domain currently resolves to. Empty when it resolves to nothing */
1941
+ observed_cname: string;
1942
+ /** @description The address this page is served at, taking the custom domain into account */
1943
+ public_url: string;
1944
+ /** @description Whether the domain currently points at the status page */
1945
+ verified: boolean;
1946
+ /**
1947
+ * Format: date-time
1948
+ * @description When ownership was last confirmed
1949
+ */
1950
+ verified_at: string | null;
1951
+ };
1952
+ PutStatusPageDomainRequestBody: {
1953
+ /** @description Your own domain, such as status.acme.com. It must already point at the status page by CNAME */
1954
+ domain: string;
1955
+ };
1850
1956
  };
1851
1957
  responses: never;
1852
1958
  parameters: never;
@@ -3779,4 +3885,188 @@ export interface operations {
3779
3885
  };
3780
3886
  };
3781
3887
  };
3888
+ "get-project-web-check": {
3889
+ parameters: {
3890
+ query?: never;
3891
+ header?: never;
3892
+ path: {
3893
+ checkId: string;
3894
+ };
3895
+ cookie?: never;
3896
+ };
3897
+ requestBody?: never;
3898
+ responses: {
3899
+ /** @description OK */
3900
+ 200: {
3901
+ headers: {
3902
+ [name: string]: unknown;
3903
+ };
3904
+ content: {
3905
+ "application/json": components["schemas"]["WebCheckResource"];
3906
+ };
3907
+ };
3908
+ /** @description Error */
3909
+ default: {
3910
+ headers: {
3911
+ [name: string]: unknown;
3912
+ };
3913
+ content: {
3914
+ "application/json": components["schemas"]["Error"];
3915
+ };
3916
+ };
3917
+ };
3918
+ };
3919
+ "put-project-web-check": {
3920
+ parameters: {
3921
+ query?: never;
3922
+ header?: never;
3923
+ path: {
3924
+ checkId: string;
3925
+ };
3926
+ cookie?: never;
3927
+ };
3928
+ requestBody: {
3929
+ content: {
3930
+ "application/json": components["schemas"]["PutWebCheckRequestBody"];
3931
+ };
3932
+ };
3933
+ responses: {
3934
+ /** @description OK */
3935
+ 200: {
3936
+ headers: {
3937
+ [name: string]: unknown;
3938
+ };
3939
+ content: {
3940
+ "application/json": components["schemas"]["WebCheckResource"];
3941
+ };
3942
+ };
3943
+ /** @description Error */
3944
+ default: {
3945
+ headers: {
3946
+ [name: string]: unknown;
3947
+ };
3948
+ content: {
3949
+ "application/json": components["schemas"]["Error"];
3950
+ };
3951
+ };
3952
+ };
3953
+ };
3954
+ "delete-project-web-check": {
3955
+ parameters: {
3956
+ query?: never;
3957
+ header?: never;
3958
+ path: {
3959
+ checkId: string;
3960
+ };
3961
+ cookie?: never;
3962
+ };
3963
+ requestBody?: never;
3964
+ responses: {
3965
+ /** @description No Content */
3966
+ 204: {
3967
+ headers: {
3968
+ [name: string]: unknown;
3969
+ };
3970
+ content?: never;
3971
+ };
3972
+ /** @description Error */
3973
+ default: {
3974
+ headers: {
3975
+ [name: string]: unknown;
3976
+ };
3977
+ content: {
3978
+ "application/json": components["schemas"]["Error"];
3979
+ };
3980
+ };
3981
+ };
3982
+ };
3983
+ "get-status-page-domain": {
3984
+ parameters: {
3985
+ query?: never;
3986
+ header?: never;
3987
+ path?: never;
3988
+ cookie?: never;
3989
+ };
3990
+ requestBody?: never;
3991
+ responses: {
3992
+ /** @description OK */
3993
+ 200: {
3994
+ headers: {
3995
+ [name: string]: unknown;
3996
+ };
3997
+ content: {
3998
+ "application/json": components["schemas"]["StatusPageDomainResource"];
3999
+ };
4000
+ };
4001
+ /** @description Error */
4002
+ default: {
4003
+ headers: {
4004
+ [name: string]: unknown;
4005
+ };
4006
+ content: {
4007
+ "application/json": components["schemas"]["Error"];
4008
+ };
4009
+ };
4010
+ };
4011
+ };
4012
+ "put-status-page-domain": {
4013
+ parameters: {
4014
+ query?: never;
4015
+ header?: never;
4016
+ path?: never;
4017
+ cookie?: never;
4018
+ };
4019
+ requestBody: {
4020
+ content: {
4021
+ "application/json": components["schemas"]["PutStatusPageDomainRequestBody"];
4022
+ };
4023
+ };
4024
+ responses: {
4025
+ /** @description OK */
4026
+ 200: {
4027
+ headers: {
4028
+ [name: string]: unknown;
4029
+ };
4030
+ content: {
4031
+ "application/json": components["schemas"]["StatusPageDomainResource"];
4032
+ };
4033
+ };
4034
+ /** @description Error */
4035
+ default: {
4036
+ headers: {
4037
+ [name: string]: unknown;
4038
+ };
4039
+ content: {
4040
+ "application/json": components["schemas"]["Error"];
4041
+ };
4042
+ };
4043
+ };
4044
+ };
4045
+ "delete-status-page-domain": {
4046
+ parameters: {
4047
+ query?: never;
4048
+ header?: never;
4049
+ path?: never;
4050
+ cookie?: never;
4051
+ };
4052
+ requestBody?: never;
4053
+ responses: {
4054
+ /** @description No Content */
4055
+ 204: {
4056
+ headers: {
4057
+ [name: string]: unknown;
4058
+ };
4059
+ content?: never;
4060
+ };
4061
+ /** @description Error */
4062
+ default: {
4063
+ headers: {
4064
+ [name: string]: unknown;
4065
+ };
4066
+ content: {
4067
+ "application/json": components["schemas"]["Error"];
4068
+ };
4069
+ };
4070
+ };
4071
+ };
3782
4072
  }
@@ -0,0 +1,60 @@
1
+ export type { paths, components, operations, webhooks } from "./schema.js";
2
+ import type { operations } from "./schema.js";
3
+ /** `GET /api/v1/notifications` 成功时的响应体。 */
4
+ export type ListNotificationsResult = operations["list-notifications"]["responses"][200]["content"]["application/json"];
5
+ /** `GET /api/v1/notifications` 的查询参数。 */
6
+ export type ListNotificationsQuery = operations["list-notifications"]["parameters"]["query"];
7
+ /** `POST /api/v1/notifications/read` 成功时的响应体。 */
8
+ export type MarkNotificationsReadResult = operations["mark-notifications-read"]["responses"][200]["content"]["application/json"];
9
+ /** `POST /api/v1/notifications/read` 的请求体。 */
10
+ export type MarkNotificationsReadBody = NonNullable<operations["mark-notifications-read"]["requestBody"]>["content"]["application/json"];
11
+ /** `GET /api/v1/notifications/unread-count` 成功时的响应体。 */
12
+ export type CountUnreadNotificationsResult = operations["count-unread-notifications"]["responses"][200]["content"]["application/json"];
13
+ /** `GET /api/v1/notifications/unread-count` 的查询参数。 */
14
+ export type CountUnreadNotificationsQuery = operations["count-unread-notifications"]["parameters"]["query"];
15
+ /** `GET /api/v1/notifications/{notificationId}` 成功时的响应体。 */
16
+ export type GetNotificationResult = operations["get-notification"]["responses"][200]["content"]["application/json"];
17
+ /** `POST /api/v1/notifications/{notificationId}/read` 成功时的响应体。 */
18
+ export type MarkNotificationReadResult = operations["mark-notification-read"]["responses"][200]["content"]["application/json"];
19
+ /** `POST /api/v1/notifications/{notificationId}/archive` 成功时的响应体。 */
20
+ export type ArchiveNotificationResult = operations["archive-notification"]["responses"][200]["content"]["application/json"];
21
+ /** `GET /api/v1/notification-types` 成功时的响应体。 */
22
+ export type ListNotificationTypesResult = operations["list-notification-types"]["responses"][200]["content"]["application/json"];
23
+ /** `GET /api/v1/preferences` 成功时的响应体。 */
24
+ export type GetNotificationPreferencesResult = operations["get-notification-preferences"]["responses"][200]["content"]["application/json"];
25
+ /** `PATCH /api/v1/preferences` 成功时的响应体。 */
26
+ export type UpdateNotificationPreferencesResult = operations["update-notification-preferences"]["responses"][200]["content"]["application/json"];
27
+ /** `PATCH /api/v1/preferences` 的请求体。 */
28
+ export type UpdateNotificationPreferencesBody = NonNullable<operations["update-notification-preferences"]["requestBody"]>["content"]["application/json"];
29
+ /** `GET /api/v1/preferences/types` 成功时的响应体。 */
30
+ export type ListTypePreferencesResult = operations["list-type-preferences"]["responses"][200]["content"]["application/json"];
31
+ /** `GET /api/v1/preferences/types` 的查询参数。 */
32
+ export type ListTypePreferencesQuery = operations["list-type-preferences"]["parameters"]["query"];
33
+ /** `PUT /api/v1/preferences/types/{type}` 成功时的响应体。 */
34
+ export type UpdateTypePreferenceResult = operations["update-type-preference"]["responses"][200]["content"]["application/json"];
35
+ /** `PUT /api/v1/preferences/types/{type}` 的请求体。 */
36
+ export type UpdateTypePreferenceBody = NonNullable<operations["update-type-preference"]["requestBody"]>["content"]["application/json"];
37
+ /** `GET /api/v1/channels` 成功时的响应体。 */
38
+ export type ListUserChannelsResult = operations["list-user-channels"]["responses"][200]["content"]["application/json"];
39
+ /** `GET /api/v1/channels` 的查询参数。 */
40
+ export type ListUserChannelsQuery = operations["list-user-channels"]["parameters"]["query"];
41
+ /** `POST /api/v1/channels` 成功时的响应体。 */
42
+ export type CreateUserChannelResult = operations["create-user-channel"]["responses"][201]["content"]["application/json"];
43
+ /** `POST /api/v1/channels` 的请求体。 */
44
+ export type CreateUserChannelBody = NonNullable<operations["create-user-channel"]["requestBody"]>["content"]["application/json"];
45
+ /** `PATCH /api/v1/channels/{channelId}` 成功时的响应体。 */
46
+ export type UpdateUserChannelResult = operations["update-user-channel"]["responses"][200]["content"]["application/json"];
47
+ /** `PATCH /api/v1/channels/{channelId}` 的请求体。 */
48
+ export type UpdateUserChannelBody = NonNullable<operations["update-user-channel"]["requestBody"]>["content"]["application/json"];
49
+ /** `POST /api/v1/channels/{channelId}/verify` 成功时的响应体。 */
50
+ export type VerifyUserChannelResult = operations["verify-user-channel"]["responses"][200]["content"]["application/json"];
51
+ /** `GET /api/v1/credentials/{ticketId}` 成功时的响应体。 */
52
+ export type DescribeCredentialTicketResult = operations["describe-credential-ticket"]["responses"][200]["content"]["application/json"];
53
+ /** `POST /api/v1/credentials/{ticketId}/reveal` 成功时的响应体。 */
54
+ export type RevealCredentialResult = operations["reveal-credential"]["responses"][200]["content"]["application/json"];
55
+ /** `GET /api/v1/realtime` 成功时的响应体。 */
56
+ export type DescribeRealtimeConnectionResult = operations["describe-realtime-connection"]["responses"][200]["content"]["application/json"];
57
+ /** `POST /api/v1/realtime/auth` 成功时的响应体。 */
58
+ export type AuthorizeRealtimeChannelResult = operations["authorize-realtime-channel"]["responses"][200]["content"]["application/json"];
59
+ /** `POST /api/v1/realtime/auth` 的请求体。 */
60
+ export type AuthorizeRealtimeChannelBody = NonNullable<operations["authorize-realtime-channel"]["requestBody"]>["content"]["application/json"];
@@ -0,0 +1,5 @@
1
+ // 由 scripts/generate-ts.mjs 生成,不要手改。
2
+ //
3
+ // 别名把 operations[...] 那串下标换成一个名字。原始的 paths / components / operations 也
4
+ // 一并导出:paths 是给 openapi-fetch 的 createClient<paths>() 用的。
5
+ export {};