@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.
@@ -501,11 +501,11 @@ export interface paths {
501
501
  get?: never;
502
502
  /**
503
503
  * Replace an instance's labels
504
- * @description Records what this instance is for, as key-value pairs, so that a person or an assistant can tell later. Nothing on the platform reads them: no scheduling, quota or billing decision keys off a label, which is what makes editing one safe.
504
+ * @description Records what this instance is for, as key-value pairs. Nothing on the platform reads them.
505
505
  *
506
- * **The whole set is replaced.** Whatever is absent from the request is removed — a merge could not express deleting a key, and it makes retrying the same request produce a different result each time.
506
+ * **The whole set is replaced**: whatever is absent from the request is removed.
507
507
  *
508
- * Do not put credentials here. Labels appear in listings, in support tickets and in the operator console.
508
+ * Do not put credentials here. Labels are visible to platform operators.
509
509
  */
510
510
  put: operations["set-instance-labels"];
511
511
  post?: never;
@@ -525,11 +525,11 @@ export interface paths {
525
525
  get?: never;
526
526
  /**
527
527
  * Replace an instance's note
528
- * @description A free-text note: what this instance runs, and what to be careful about before touching it — "primary database, fail over before rebooting". It is read by whoever opens the instance next, including an assistant acting on your behalf.
528
+ * @description A free-text note about this instance — what it runs, and what to be careful about before touching it.
529
529
  *
530
530
  * **The whole note is replaced**; send an empty string to clear it.
531
531
  *
532
- * Do not put credentials here. The note appears in the operator console.
532
+ * Do not put credentials here. The note is visible to platform operators.
533
533
  */
534
534
  put: operations["set-instance-notes"];
535
535
  post?: never;
@@ -1363,6 +1363,8 @@ export interface components {
1363
1363
  architecture: string;
1364
1364
  /** Format: uuid */
1365
1365
  id: string;
1366
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
1367
+ login_username: string;
1366
1368
  /** Format: int64 */
1367
1369
  min_disk_gb: number;
1368
1370
  /** Format: int64 */
@@ -1504,12 +1506,14 @@ export interface components {
1504
1506
  instance_type_id: string;
1505
1507
  /** @description IPv6 address of the primary network interface. Assigned automatically once IPv6 is enabled on the private network */
1506
1508
  ipv6_address: string | null;
1507
- /** @description Your own classification of this instance, as key-value pairs. Nothing on the platform reads these — they are recorded so that a person, or an assistant acting on your behalf, can tell what an instance is for. Empty when never set */
1509
+ /** @description Your own classification of this instance, as key-value pairs. Empty when never set */
1508
1510
  labels: {
1509
1511
  [key: string]: string;
1510
1512
  };
1513
+ /** @description The account to log in as over SSH. The password set at creation belongs to this account */
1514
+ login_username: string;
1511
1515
  name: string;
1512
- /** @description A free-text note about this instance — what it runs, and what to be careful about before touching it. Empty when never set */
1516
+ /** @description A free-text note about this instance. Empty when never set */
1513
1517
  notes: string;
1514
1518
  /**
1515
1519
  * Format: uuid
@@ -1600,7 +1604,7 @@ export interface components {
1600
1604
  password: string;
1601
1605
  };
1602
1606
  SetInstanceLabelsRequestBody: {
1603
- /** @description The complete set of labels. Whatever is absent here is removed, so this is also how one is deleted; send an empty object to clear them all. A key may not contain a colon, whitespace or control characters — the colon because it separates key from value in the `label` filter */
1607
+ /** @description The complete set of labels. Whatever is absent here is removed; send an empty object to clear them all. A key may not contain a colon, whitespace or control characters */
1604
1608
  labels: {
1605
1609
  [key: string]: string;
1606
1610
  };
@@ -1624,11 +1628,6 @@ export interface components {
1624
1628
  * @description Kill the command after this long. 60 when omitted
1625
1629
  */
1626
1630
  timeout_seconds?: number;
1627
- /**
1628
- * @description The SSH user to log in as. It is the account the platform sets a password for at creation
1629
- * @default root
1630
- */
1631
- username?: string;
1632
1631
  };
1633
1632
  CommandResultResponseBody: {
1634
1633
  /**
@@ -1764,6 +1763,8 @@ export interface components {
1764
1763
  failure: string | null;
1765
1764
  /** Format: uuid */
1766
1765
  id: string;
1766
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
1767
+ login_username: string;
1767
1768
  /**
1768
1769
  * Format: int64
1769
1770
  * @description The system disk of an instance created from this image cannot be smaller than this
@@ -2804,7 +2805,7 @@ export interface operations {
2804
2805
  "list-instances": {
2805
2806
  parameters: {
2806
2807
  query?: {
2807
- /** @description Only instances carrying this label, written as `key:value` — for example `env:prod`. Matched exactly on both halves. A key never contains a colon, so the split is at the first one; anything after it is the value, and `env:` means the key `env` with an empty value rather than "any value" */
2808
+ /** @description Only instances carrying this label, written as `key:value` — for example `env:prod`. Both halves are matched exactly */
2808
2809
  label?: string;
2809
2810
  };
2810
2811
  header?: never;
@@ -24,14 +24,14 @@ export type ListZonesQuery = operations["list-zones"]["parameters"]["query"];
24
24
  export type ListRecordsResult = operations["list-records"]["responses"][200]["content"]["application/json"];
25
25
  /** `GET /api/v1/zones/{zone}/records` 的查询参数。 */
26
26
  export type ListRecordsQuery = operations["list-records"]["parameters"]["query"];
27
- /** `POST /api/v1/zones/{zone}/records` 成功时的响应体。 */
28
- export type AppendRecordsResult = operations["append-records"]["responses"][201]["content"]["application/json"];
29
- /** `POST /api/v1/zones/{zone}/records` 的查询参数。 */
30
- export type AppendRecordsQuery = operations["append-records"]["parameters"]["query"];
31
- /** `POST /api/v1/zones/{zone}/records` 的请求体。 */
32
- export type AppendRecordsBody = NonNullable<operations["append-records"]["requestBody"]>["content"]["application/json"];
33
27
  /** `GET /api/v1/zones/{zone}/records/{name}/{type}` 成功时的响应体。 */
34
28
  export type GetRecordSetResult = operations["get-record-set"]["responses"][200]["content"]["application/json"];
29
+ /** `PATCH /api/v1/zones/{zone}/records/{name}/{type}` 成功时的响应体。 */
30
+ export type ModifyRecordSetResult = operations["modify-record-set"]["responses"][200]["content"]["application/json"];
31
+ /** `PATCH /api/v1/zones/{zone}/records/{name}/{type}` 的查询参数。 */
32
+ export type ModifyRecordSetQuery = operations["modify-record-set"]["parameters"]["query"];
33
+ /** `PATCH /api/v1/zones/{zone}/records/{name}/{type}` 的请求体。 */
34
+ export type ModifyRecordSetBody = NonNullable<operations["modify-record-set"]["requestBody"]>["content"]["application/json"];
35
35
  /** `PUT /api/v1/zones/{zone}/records/{name}/{type}` 成功时的响应体。 */
36
36
  export type SetRecordSetResult = operations["set-record-set"]["responses"][200]["content"]["application/json"];
37
37
  /** `PUT /api/v1/zones/{zone}/records/{name}/{type}` 的查询参数。 */
@@ -150,21 +150,7 @@ export interface paths {
150
150
  */
151
151
  get: operations["list-records"];
152
152
  put?: never;
153
- /**
154
- * Add records to a record set
155
- * @description **Adds values only.** Records already present under the same name and type are left in
156
- * place, and the submitted values are added alongside them.
157
- *
158
- * `PUT` states the final contents of a record set, so two concurrent `PUT` requests against
159
- * the same set can discard one another's changes. This operation only adds, and is therefore
160
- * safe to issue concurrently. **Certificate issuance, which places several TXT records under
161
- * `_acme-challenge` at once, must use this operation**: issuing two certificates concurrently
162
- * with `PUT` causes one challenge record to displace the other.
163
- *
164
- * The cost is that duplicate values can be created. Use `PUT` to state what a record set
165
- * should contain.
166
- */
167
- post: operations["append-records"];
153
+ post?: never;
168
154
  delete?: never;
169
155
  options?: never;
170
156
  head?: never;
@@ -189,21 +175,22 @@ export interface paths {
189
175
  * name and type are the ones listed in `values`; any value present beforehand and absent here
190
176
  * is removed.
191
177
  *
192
- * To add a value, retrieve the set with `GET`, append to the values it returns, and submit the
193
- * complete list. Submitting only the new value removes the others; both forms return 200.
194
- *
195
- * The record set is created if it does not yet exist, so this operation both creates and
196
- * replaces, and is idempotent.
178
+ * The record set is created if it does not exist, so this operation both creates and replaces,
179
+ * and is idempotent.
197
180
  *
198
181
  * Two concurrent requests against the same domain conflict; the second receives `ZONE_BUSY`
199
- * and may be retried. To add values concurrently, use `POST /records`.
182
+ * and may be retried.
183
+ *
184
+ * **Use `PATCH` to add or remove individual values.** Reading the set and submitting a
185
+ * modified list is a read-modify-write: values added by anything else between those two steps
186
+ * are stated to be absent, and are therefore removed, with both requests returning 200.
200
187
  */
201
188
  put: operations["set-record-set"];
202
189
  post?: never;
203
190
  /**
204
191
  * Delete a record set
205
- * @description Removes every record under this name and type. To remove one value from a set, `PUT` the
206
- * values that should remain.
192
+ * @description Removes every record under this name and type. **To remove part of a set, use `PATCH`**,
193
+ * which is safe to issue concurrently; this operation and `PUT` are not.
207
194
  *
208
195
  * Providers reject removal of the last NS record set at the apex of a domain, which would
209
196
  * withdraw the domain from DNS entirely.
@@ -211,7 +198,33 @@ export interface paths {
211
198
  delete: operations["delete-record-set"];
212
199
  options?: never;
213
200
  head?: never;
214
- patch?: never;
201
+ /**
202
+ * Add or remove values in a record set
203
+ * @description **Names values to add and remove; anything not named is left in place.** Nothing is read
204
+ * first, so this is the only operation on a record set safe to issue concurrently. The set is
205
+ * created if it does not exist.
206
+ *
207
+ * Certificate issuance must use this operation for both the challenge record and its cleanup.
208
+ * `PUT` and `DELETE` state or remove the whole set, so a concurrent issuance's challenge
209
+ * record is discarded — with every request returning 2xx, and the failure surfacing as the
210
+ * second certificate failing validation.
211
+ *
212
+ * `add` is applied before `remove`, so a request carrying both changes a value without the
213
+ * name ever resolving without it: the set briefly holds one value too many rather than one too
214
+ * few. The reverse order, as two requests, leaves a window in which the value is absent — for
215
+ * a single-valued set, the name does not resolve at all — and an addition that then fails
216
+ * leaves it gone.
217
+ *
218
+ * A value appearing in both `add` and `remove` is rejected rather than resolved in one
219
+ * direction.
220
+ *
221
+ * Values in `remove` that are absent are skipped, so a retried cleanup reaches the same
222
+ * result. Values in `add` that are already present are rejected by the provider: a record set
223
+ * cannot hold the same value twice.
224
+ *
225
+ * Removing every value leaves an empty set, reported as `values: []`, not `RECORD_SET_NOT_FOUND`.
226
+ */
227
+ patch: operations["modify-record-set"];
215
228
  trace?: never;
216
229
  };
217
230
  }
@@ -418,18 +431,18 @@ export interface components {
418
431
  /** @description The final contents of the record set. Syntax as described on RecordSetResource.values */
419
432
  values: string[];
420
433
  };
421
- AppendRecordsRequestBody: {
422
- /** @description The name relative to the domain. `@` denotes the domain itself */
423
- name: string;
434
+ /** @description Names the values to add and to remove. Anything not named is left in place. At least one of `add` and `remove` is required, and no value may appear in both. */
435
+ ModifyRecordSetRequestBody: {
436
+ /** @description The values to add. Values already present are rejected by the provider. Syntax as described on RecordSetResource.values */
437
+ add?: string[];
438
+ /** @description The values to remove. Values that are not present are skipped. Syntax as described on RecordSetResource.values */
439
+ remove?: string[];
424
440
  /**
425
441
  * Format: int64
426
- * @description Time to live, in seconds. 0 leaves the choice to the provider
442
+ * @description Time to live, in seconds, applied to the values in `add`. 0 leaves the choice to the provider. The time to live of values already in the set is not changed; use `PUT` for that
427
443
  * @default 300
428
444
  */
429
445
  ttl?: number;
430
- type: components["schemas"]["RecordType"];
431
- /** @description The values to add. Syntax as described on RecordSetResource.values */
432
- values: string[];
433
446
  };
434
447
  };
435
448
  responses: never;
@@ -712,27 +725,23 @@ export interface operations {
712
725
  };
713
726
  };
714
727
  };
715
- "append-records": {
728
+ "get-record-set": {
716
729
  parameters: {
717
- query?: {
718
- /** @description Which credential to use. When omitted, the credential is determined from the domain; see ZONE_AMBIGUOUS */
719
- credential_id?: string;
720
- };
730
+ query?: never;
721
731
  header?: never;
722
732
  path: {
723
733
  /** @description The domain. A trailing dot is optional */
724
734
  zone: string;
735
+ /** @description The name, given relative to the domain. `@` denotes the domain itself and `*` a wildcard */
736
+ name: string;
737
+ type: components["schemas"]["RecordType"];
725
738
  };
726
739
  cookie?: never;
727
740
  };
728
- requestBody: {
729
- content: {
730
- "application/json": components["schemas"]["AppendRecordsRequestBody"];
731
- };
732
- };
741
+ requestBody?: never;
733
742
  responses: {
734
- /** @description Created */
735
- 201: {
743
+ /** @description OK */
744
+ 200: {
736
745
  headers: {
737
746
  [name: string]: unknown;
738
747
  };
@@ -751,9 +760,12 @@ export interface operations {
751
760
  };
752
761
  };
753
762
  };
754
- "get-record-set": {
763
+ "set-record-set": {
755
764
  parameters: {
756
- query?: never;
765
+ query?: {
766
+ /** @description Which credential to use. When omitted, the credential is determined from the domain; see ZONE_AMBIGUOUS */
767
+ credential_id?: string;
768
+ };
757
769
  header?: never;
758
770
  path: {
759
771
  /** @description The domain. A trailing dot is optional */
@@ -764,7 +776,11 @@ export interface operations {
764
776
  };
765
777
  cookie?: never;
766
778
  };
767
- requestBody?: never;
779
+ requestBody: {
780
+ content: {
781
+ "application/json": components["schemas"]["SetRecordSetRequestBody"];
782
+ };
783
+ };
768
784
  responses: {
769
785
  /** @description OK */
770
786
  200: {
@@ -786,7 +802,7 @@ export interface operations {
786
802
  };
787
803
  };
788
804
  };
789
- "set-record-set": {
805
+ "delete-record-set": {
790
806
  parameters: {
791
807
  query?: {
792
808
  /** @description Which credential to use. When omitted, the credential is determined from the domain; see ZONE_AMBIGUOUS */
@@ -802,20 +818,14 @@ export interface operations {
802
818
  };
803
819
  cookie?: never;
804
820
  };
805
- requestBody: {
806
- content: {
807
- "application/json": components["schemas"]["SetRecordSetRequestBody"];
808
- };
809
- };
821
+ requestBody?: never;
810
822
  responses: {
811
- /** @description OK */
812
- 200: {
823
+ /** @description No Content */
824
+ 204: {
813
825
  headers: {
814
826
  [name: string]: unknown;
815
827
  };
816
- content: {
817
- "application/json": components["schemas"]["RecordSetResource"];
818
- };
828
+ content?: never;
819
829
  };
820
830
  /** @description Error */
821
831
  default: {
@@ -828,7 +838,7 @@ export interface operations {
828
838
  };
829
839
  };
830
840
  };
831
- "delete-record-set": {
841
+ "modify-record-set": {
832
842
  parameters: {
833
843
  query?: {
834
844
  /** @description Which credential to use. When omitted, the credential is determined from the domain; see ZONE_AMBIGUOUS */
@@ -844,14 +854,20 @@ export interface operations {
844
854
  };
845
855
  cookie?: never;
846
856
  };
847
- requestBody?: never;
857
+ requestBody: {
858
+ content: {
859
+ "application/json": components["schemas"]["ModifyRecordSetRequestBody"];
860
+ };
861
+ };
848
862
  responses: {
849
- /** @description No Content */
850
- 204: {
863
+ /** @description OK */
864
+ 200: {
851
865
  headers: {
852
866
  [name: string]: unknown;
853
867
  };
854
- content?: never;
868
+ content: {
869
+ "application/json": components["schemas"]["RecordSetResource"];
870
+ };
855
871
  };
856
872
  /** @description Error */
857
873
  default: {
package/dist/index.d.ts CHANGED
@@ -5,4 +5,6 @@ export type * as compute from "./compute/v1/index.js";
5
5
  export type * as dns from "./dns/v1/index.js";
6
6
  export type * as iam from "./iam/v1/index.js";
7
7
  export type * as monitoring from "./monitoring/v1/index.js";
8
+ export type * as notification from "./notification/v1/index.js";
9
+ export type * as support from "./support/v1/index.js";
8
10
  export type * as tunnel from "./tunnel/v1/index.js";
@@ -160,3 +160,15 @@ export type GetStatusPageMaintenanceResult = operations["get-status-page-mainten
160
160
  export type CancelStatusPageMaintenanceResult = operations["cancel-status-page-maintenance"]["responses"][200]["content"]["application/json"];
161
161
  /** `POST /api/v1/status-page/maintenances/{maintenanceId}/complete` 成功时的响应体。 */
162
162
  export type CompleteStatusPageMaintenanceResult = operations["complete-status-page-maintenance"]["responses"][200]["content"]["application/json"];
163
+ /** `GET /api/v1/web-checks/{checkId}` 成功时的响应体。 */
164
+ export type GetProjectWebCheckResult = operations["get-project-web-check"]["responses"][200]["content"]["application/json"];
165
+ /** `PUT /api/v1/web-checks/{checkId}` 成功时的响应体。 */
166
+ export type PutProjectWebCheckResult = operations["put-project-web-check"]["responses"][200]["content"]["application/json"];
167
+ /** `PUT /api/v1/web-checks/{checkId}` 的请求体。 */
168
+ export type PutProjectWebCheckBody = NonNullable<operations["put-project-web-check"]["requestBody"]>["content"]["application/json"];
169
+ /** `GET /api/v1/status-page/domain` 成功时的响应体。 */
170
+ export type GetStatusPageDomainResult = operations["get-status-page-domain"]["responses"][200]["content"]["application/json"];
171
+ /** `PUT /api/v1/status-page/domain` 成功时的响应体。 */
172
+ export type PutStatusPageDomainResult = operations["put-status-page-domain"]["responses"][200]["content"]["application/json"];
173
+ /** `PUT /api/v1/status-page/domain` 的请求体。 */
174
+ export type PutStatusPageDomainBody = NonNullable<operations["put-status-page-domain"]["requestBody"]>["content"]["application/json"];