@tailglow/cli 0.5.0 → 0.6.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.
@@ -463,6 +463,97 @@ export const CLI_COMMANDS = [
463
463
  "query_params": [],
464
464
  "body_fields": []
465
465
  },
466
+ {
467
+ "resource": "projects",
468
+ "command": "usage",
469
+ "operation_id": "getProjectUsage",
470
+ "summary": "Retrieve Project Usage",
471
+ "description": "Retrieve how much the project stored over a time range.",
472
+ "method": "GET",
473
+ "path": "/v1/projects/:project_id/usage",
474
+ "alternate_paths": [],
475
+ "scopes": [
476
+ "projects:read"
477
+ ],
478
+ "notes": [
479
+ "Readings are taken hourly and are the same measurements the project is billed on. Gigabytes are logical (uncompressed) bytes.",
480
+ "`interval=day` returns the last reading of each UTC day rather than an average, so a row is what the project held when the day closed. Its `sampled_at` is that reading's own hour.",
481
+ "Readings start when Tailglow began recording them, so a range reaching further back returns nothing for the hours before that.",
482
+ "`start_at` must be earlier than `end_at`, and the range cannot be longer than 400 days."
483
+ ],
484
+ "path_params": [
485
+ {
486
+ "name": "project_id",
487
+ "type": "string",
488
+ "required": true,
489
+ "description": "Unique identifier of the project.",
490
+ "allowed_values": [],
491
+ "deprecated": null
492
+ }
493
+ ],
494
+ "query_params": [
495
+ {
496
+ "name": "start_at",
497
+ "type": "ISODateString",
498
+ "required": true,
499
+ "description": "Start of the range, inclusive (ISO format).",
500
+ "allowed_values": [],
501
+ "deprecated": null
502
+ },
503
+ {
504
+ "name": "end_at",
505
+ "type": "ISODateString",
506
+ "required": false,
507
+ "description": "End of the range, inclusive (ISO format, default: now). Optional.",
508
+ "allowed_values": [],
509
+ "deprecated": null
510
+ },
511
+ {
512
+ "name": "interval",
513
+ "type": "string",
514
+ "required": false,
515
+ "description": "Reading cadence returned: every hourly reading, or one reading per UTC day. Optional. Defaults to `\"hour\"`.",
516
+ "allowed_values": [
517
+ "hour",
518
+ "day"
519
+ ],
520
+ "deprecated": null
521
+ }
522
+ ],
523
+ "body_fields": []
524
+ },
525
+ {
526
+ "resource": "projects",
527
+ "command": "attention",
528
+ "operation_id": "getProjectAttention",
529
+ "summary": "Retrieve Project Attention",
530
+ "description": "Retrieve everything in the project that is asking for a human right now.",
531
+ "method": "GET",
532
+ "path": "/v1/projects/:project_id/attention",
533
+ "alternate_paths": [],
534
+ "scopes": [
535
+ "projects:read"
536
+ ],
537
+ "notes": [
538
+ "An item appears only when Tailglow entered a state on its own. Anything a project chose, such as a paused pull, a paused drain, or a paused monitor, is never reported here.",
539
+ "`tier` orders the list. `losing_data` means requests are being refused right now, within the last 5 minutes: for a reason a retry cannot fix, or for capacity after at least 5 minutes of unbroken refusals. `firing` means a monitor or check the project set up is currently triggered, or a server has run under sustained heavy load. `stalled` means a pipeline stopped making progress and its data is going stale. `suspended` means Tailglow switched something off and it stays off until it is fixed. `resolved` means refusals that lost data have stopped; `ended_at` says when.",
540
+ "Items disappear the moment their condition clears, with one exception so a loss is not missed: refusals that stop stay as `resolved`, for up to 24 hours for a key or payload refusal and up to an hour for capacity. A refusal item's `count` covers that whole window, not only the current spell. Refusals only count as stopped once every running server that was refusing has reported since; until then the item stays `losing_data`. Readings from the project's servers are cached briefly, so a condition that just started can take up to a minute to appear.",
541
+ "Items cover only resources the caller's key or role can read: without a resource's read permission, its conditions are left out. Refusal and server load items need `servers:read`, and firing monitors need `alerts:read`.",
542
+ "Items are already ranked, most urgent first. One item covers each firing monitor, and each view's failing transforms, joins, or shape waits. The response is capped per condition so a project in a bad state returns a readable list rather than every affected resource."
543
+ ],
544
+ "path_params": [
545
+ {
546
+ "name": "project_id",
547
+ "type": "string",
548
+ "required": true,
549
+ "description": "Unique identifier of the project.",
550
+ "allowed_values": [],
551
+ "deprecated": null
552
+ }
553
+ ],
554
+ "query_params": [],
555
+ "body_fields": []
556
+ },
466
557
  {
467
558
  "resource": "sources",
468
559
  "command": "list",
@@ -1703,6 +1794,7 @@ export const CLI_COMMANDS = [
1703
1794
  ],
1704
1795
  "notes": [
1705
1796
  "Documents are returned exactly as they were sent, minus Tailglow's own reserved envelope.",
1797
+ "Paging is forward-only. Pass `pagination.next_cursor` back as `after` to get the next page; no `prev_cursor` is issued, and `before` returns the first page.",
1706
1798
  "`after` and `before` are mutually exclusive."
1707
1799
  ],
1708
1800
  "path_params": [
@@ -1723,7 +1815,43 @@ export const CLI_COMMANDS = [
1723
1815
  "deprecated": null
1724
1816
  }
1725
1817
  ],
1726
- "query_params": [],
1818
+ "query_params": [
1819
+ {
1820
+ "name": "limit",
1821
+ "type": "number",
1822
+ "required": false,
1823
+ "description": "Maximum number of items to return. Optional. Defaults to `25`. Minimum: `1`. Maximum: `200`.",
1824
+ "allowed_values": [],
1825
+ "deprecated": null
1826
+ },
1827
+ {
1828
+ "name": "after",
1829
+ "type": "string",
1830
+ "required": false,
1831
+ "description": "Cursor from `pagination.next_cursor` of a previous response. Returns the resources after that page. Optional.",
1832
+ "allowed_values": [],
1833
+ "deprecated": null
1834
+ },
1835
+ {
1836
+ "name": "before",
1837
+ "type": "string",
1838
+ "required": false,
1839
+ "description": "Cursor from `pagination.prev_cursor` of a previous response. Returns the resources before that page. Optional.",
1840
+ "allowed_values": [],
1841
+ "deprecated": null
1842
+ },
1843
+ {
1844
+ "name": "sort",
1845
+ "type": "string",
1846
+ "required": false,
1847
+ "description": "Sort direction for the result set. Optional. Defaults to `\"desc\"`.",
1848
+ "allowed_values": [
1849
+ "asc",
1850
+ "desc"
1851
+ ],
1852
+ "deprecated": null
1853
+ }
1854
+ ],
1727
1855
  "body_fields": []
1728
1856
  },
1729
1857
  {
@@ -1917,7 +2045,40 @@ export const CLI_COMMANDS = [
1917
2045
  "required": false,
1918
2046
  "description": "The fields this view produces. Can be left until transforms define it. Optional.",
1919
2047
  "allowed_values": [],
1920
- "deprecated": null
2048
+ "deprecated": null,
2049
+ "fields": [
2050
+ {
2051
+ "name": "name",
2052
+ "type": "string",
2053
+ "required": true,
2054
+ "description": "Field name as it appears on the view's records. Minimum length: `1`. Maximum length: `128`.",
2055
+ "allowed_values": [],
2056
+ "deprecated": null
2057
+ },
2058
+ {
2059
+ "name": "type",
2060
+ "type": "string",
2061
+ "required": true,
2062
+ "description": "Value type the field holds.",
2063
+ "allowed_values": [
2064
+ "string",
2065
+ "number",
2066
+ "boolean",
2067
+ "date",
2068
+ "array",
2069
+ "null"
2070
+ ],
2071
+ "deprecated": null
2072
+ },
2073
+ {
2074
+ "name": "description",
2075
+ "type": "string",
2076
+ "required": false,
2077
+ "description": "What the field means. Used as guidance when a transform script is generated. Optional. Maximum length: `512`.",
2078
+ "allowed_values": [],
2079
+ "deprecated": null
2080
+ }
2081
+ ]
1921
2082
  },
1922
2083
  {
1923
2084
  "name": "hint",
@@ -1933,7 +2094,41 @@ export const CLI_COMMANDS = [
1933
2094
  "required": false,
1934
2095
  "description": "Optional.",
1935
2096
  "allowed_values": [],
1936
- "deprecated": null
2097
+ "deprecated": null,
2098
+ "fields": [
2099
+ {
2100
+ "name": "nullable_inputs",
2101
+ "type": "string[]",
2102
+ "required": false,
2103
+ "description": "Read paths explicitly permitted to be null. Optional.",
2104
+ "allowed_values": [],
2105
+ "deprecated": null
2106
+ },
2107
+ {
2108
+ "name": "fallback_groups",
2109
+ "type": "string[][]",
2110
+ "required": false,
2111
+ "description": "Approved ordered fallback read paths. Optional.",
2112
+ "allowed_values": [],
2113
+ "deprecated": null
2114
+ },
2115
+ {
2116
+ "name": "output_bindings",
2117
+ "type": "object",
2118
+ "required": false,
2119
+ "description": "Required source path segments for each output binding. Optional.",
2120
+ "allowed_values": [],
2121
+ "deprecated": null
2122
+ },
2123
+ {
2124
+ "name": "allow_drops",
2125
+ "type": "boolean",
2126
+ "required": false,
2127
+ "description": "Allow a validated mapping to emit no output for a record. Optional.",
2128
+ "allowed_values": [],
2129
+ "deprecated": null
2130
+ }
2131
+ ]
1937
2132
  },
1938
2133
  {
1939
2134
  "name": "project_id",
@@ -2043,7 +2238,70 @@ export const CLI_COMMANDS = [
2043
2238
  "required": true,
2044
2239
  "description": "Views joined onto the base view, each with its own match fields.",
2045
2240
  "allowed_values": [],
2046
- "deprecated": null
2241
+ "deprecated": null,
2242
+ "fields": [
2243
+ {
2244
+ "name": "lookup_view_id",
2245
+ "type": "string",
2246
+ "required": true,
2247
+ "description": "View this clause looks values up in. Minimum length: `1`.",
2248
+ "allowed_values": [],
2249
+ "deprecated": null
2250
+ },
2251
+ {
2252
+ "name": "alias",
2253
+ "type": "string",
2254
+ "required": true,
2255
+ "description": "Name this clause's fields are addressed by in the transform script. Minimum length: `1`. Maximum length: `64`.",
2256
+ "allowed_values": [],
2257
+ "deprecated": null
2258
+ },
2259
+ {
2260
+ "name": "join_type",
2261
+ "type": "string",
2262
+ "required": false,
2263
+ "description": "How unmatched base records are handled. `left` keeps them with empty lookup fields, `inner` drops them. Optional. Defaults to `\"left\"`.",
2264
+ "allowed_values": [
2265
+ "left",
2266
+ "inner"
2267
+ ],
2268
+ "deprecated": null
2269
+ },
2270
+ {
2271
+ "name": "base_field",
2272
+ "type": "string",
2273
+ "required": true,
2274
+ "description": "Field on the base view to match on. Minimum length: `1`. Maximum length: `256`.",
2275
+ "allowed_values": [],
2276
+ "deprecated": null
2277
+ },
2278
+ {
2279
+ "name": "lookup_field",
2280
+ "type": "string",
2281
+ "required": true,
2282
+ "description": "Field on the lookup view to match against. Minimum length: `1`. Maximum length: `256`.",
2283
+ "allowed_values": [],
2284
+ "deprecated": null
2285
+ },
2286
+ {
2287
+ "name": "match_strategy",
2288
+ "type": "string",
2289
+ "required": false,
2290
+ "description": "Which lookup record wins when several match. `latest` keeps the newest record timestamp and is the only supported value today. Optional. Defaults to `\"latest\"`.",
2291
+ "allowed_values": [
2292
+ "latest"
2293
+ ],
2294
+ "deprecated": null
2295
+ },
2296
+ {
2297
+ "name": "priority",
2298
+ "type": "integer",
2299
+ "required": false,
2300
+ "description": "Order this clause is applied in. Lower runs first. Optional. Defaults to `0`. Minimum: `0`.",
2301
+ "allowed_values": [],
2302
+ "deprecated": null
2303
+ }
2304
+ ]
2047
2305
  },
2048
2306
  {
2049
2307
  "name": "output_schema",
@@ -2051,7 +2309,40 @@ export const CLI_COMMANDS = [
2051
2309
  "required": false,
2052
2310
  "description": "Fields the join produces. Leave empty to have one inferred. Optional. Defaults to `[]`.",
2053
2311
  "allowed_values": [],
2054
- "deprecated": null
2312
+ "deprecated": null,
2313
+ "fields": [
2314
+ {
2315
+ "name": "name",
2316
+ "type": "string",
2317
+ "required": true,
2318
+ "description": "Field name as it appears on the view's records. Minimum length: `1`. Maximum length: `128`.",
2319
+ "allowed_values": [],
2320
+ "deprecated": null
2321
+ },
2322
+ {
2323
+ "name": "type",
2324
+ "type": "string",
2325
+ "required": true,
2326
+ "description": "Value type the field holds.",
2327
+ "allowed_values": [
2328
+ "string",
2329
+ "number",
2330
+ "boolean",
2331
+ "date",
2332
+ "array",
2333
+ "null"
2334
+ ],
2335
+ "deprecated": null
2336
+ },
2337
+ {
2338
+ "name": "description",
2339
+ "type": "string",
2340
+ "required": false,
2341
+ "description": "What the field means. Used as guidance when a transform script is generated. Optional. Maximum length: `512`.",
2342
+ "allowed_values": [],
2343
+ "deprecated": null
2344
+ }
2345
+ ]
2055
2346
  },
2056
2347
  {
2057
2348
  "name": "transform_script",
@@ -2116,7 +2407,41 @@ export const CLI_COMMANDS = [
2116
2407
  "required": false,
2117
2408
  "description": "Optional.",
2118
2409
  "allowed_values": [],
2119
- "deprecated": null
2410
+ "deprecated": null,
2411
+ "fields": [
2412
+ {
2413
+ "name": "nullable_inputs",
2414
+ "type": "string[]",
2415
+ "required": false,
2416
+ "description": "Read paths explicitly permitted to be null. Optional.",
2417
+ "allowed_values": [],
2418
+ "deprecated": null
2419
+ },
2420
+ {
2421
+ "name": "fallback_groups",
2422
+ "type": "string[][]",
2423
+ "required": false,
2424
+ "description": "Approved ordered fallback read paths. Optional.",
2425
+ "allowed_values": [],
2426
+ "deprecated": null
2427
+ },
2428
+ {
2429
+ "name": "output_bindings",
2430
+ "type": "object",
2431
+ "required": false,
2432
+ "description": "Required source path segments for each output binding. Optional.",
2433
+ "allowed_values": [],
2434
+ "deprecated": null
2435
+ },
2436
+ {
2437
+ "name": "allow_drops",
2438
+ "type": "boolean",
2439
+ "required": false,
2440
+ "description": "Allow a validated mapping to emit no output for a record. Optional.",
2441
+ "allowed_values": [],
2442
+ "deprecated": null
2443
+ }
2444
+ ]
2120
2445
  },
2121
2446
  {
2122
2447
  "name": "name",
@@ -2132,7 +2457,40 @@ export const CLI_COMMANDS = [
2132
2457
  "required": false,
2133
2458
  "description": "The fields this view produces. Can be left until transforms define it. Optional.",
2134
2459
  "allowed_values": [],
2135
- "deprecated": null
2460
+ "deprecated": null,
2461
+ "fields": [
2462
+ {
2463
+ "name": "name",
2464
+ "type": "string",
2465
+ "required": true,
2466
+ "description": "Field name as it appears on the view's records. Minimum length: `1`. Maximum length: `128`.",
2467
+ "allowed_values": [],
2468
+ "deprecated": null
2469
+ },
2470
+ {
2471
+ "name": "type",
2472
+ "type": "string",
2473
+ "required": true,
2474
+ "description": "Value type the field holds.",
2475
+ "allowed_values": [
2476
+ "string",
2477
+ "number",
2478
+ "boolean",
2479
+ "date",
2480
+ "array",
2481
+ "null"
2482
+ ],
2483
+ "deprecated": null
2484
+ },
2485
+ {
2486
+ "name": "description",
2487
+ "type": "string",
2488
+ "required": false,
2489
+ "description": "What the field means. Used as guidance when a transform script is generated. Optional. Maximum length: `512`.",
2490
+ "allowed_values": [],
2491
+ "deprecated": null
2492
+ }
2493
+ ]
2136
2494
  },
2137
2495
  {
2138
2496
  "name": "hint",
@@ -2259,10 +2617,8 @@ export const CLI_COMMANDS = [
2259
2617
  "views:read"
2260
2618
  ],
2261
2619
  "notes": [
2262
- "Records are only filterable on fields that have a facet. Filtering on any other field is rejected, so create a facet for a field before querying it.",
2263
2620
  "Paging is forward-only. Pass `pagination.next_cursor` back as `after` to get the next page; a null `next_cursor` means there is nothing more to read. No `prev_cursor` is issued, and `before` is ignored.",
2264
- "A cursor is only valid for the query that produced it. Changing the sort direction, the filter, or (on a filtered read) the time range and reusing an older cursor returns a 400 rather than a page of skipped or repeated records, so start again without a cursor after any of those change.",
2265
- "`start_at` and `end_at` narrow a filtered read only. An unfiltered read returns the view's records regardless of the window, so pass a facet filter when you need a time-bounded result.",
2621
+ "A cursor is only valid for the query that produced it. Reusing one after changing the sort direction returns a 400 rather than a page of skipped or repeated records, so start again without a cursor.",
2266
2622
  "A cursor stays valid while Tailglow reorganizes stored data in the background, so a paging client is never interrupted by storage maintenance. It is a position in this result set, not a snapshot: records that arrive while you page appear only if they sort after your position.",
2267
2623
  "`after` and `before` are mutually exclusive."
2268
2624
  ],
@@ -2284,7 +2640,43 @@ export const CLI_COMMANDS = [
2284
2640
  "deprecated": null
2285
2641
  }
2286
2642
  ],
2287
- "query_params": [],
2643
+ "query_params": [
2644
+ {
2645
+ "name": "limit",
2646
+ "type": "number",
2647
+ "required": false,
2648
+ "description": "Maximum number of items to return. Optional. Defaults to `25`. Minimum: `1`. Maximum: `200`.",
2649
+ "allowed_values": [],
2650
+ "deprecated": null
2651
+ },
2652
+ {
2653
+ "name": "after",
2654
+ "type": "string",
2655
+ "required": false,
2656
+ "description": "Cursor from `pagination.next_cursor` of a previous response. Returns the resources after that page. Optional.",
2657
+ "allowed_values": [],
2658
+ "deprecated": null
2659
+ },
2660
+ {
2661
+ "name": "before",
2662
+ "type": "string",
2663
+ "required": false,
2664
+ "description": "Cursor from `pagination.prev_cursor` of a previous response. Returns the resources before that page. Optional.",
2665
+ "allowed_values": [],
2666
+ "deprecated": null
2667
+ },
2668
+ {
2669
+ "name": "sort",
2670
+ "type": "string",
2671
+ "required": false,
2672
+ "description": "Sort direction for the result set. Optional. Defaults to `\"desc\"`.",
2673
+ "allowed_values": [
2674
+ "asc",
2675
+ "desc"
2676
+ ],
2677
+ "deprecated": null
2678
+ }
2679
+ ],
2288
2680
  "body_fields": []
2289
2681
  },
2290
2682
  {
@@ -2582,7 +2974,41 @@ export const CLI_COMMANDS = [
2582
2974
  "required": false,
2583
2975
  "description": "Explicit null, fallback, drop, and source-binding rules. Optional.",
2584
2976
  "allowed_values": [],
2585
- "deprecated": null
2977
+ "deprecated": null,
2978
+ "fields": [
2979
+ {
2980
+ "name": "nullable_inputs",
2981
+ "type": "string[]",
2982
+ "required": false,
2983
+ "description": "Read paths explicitly permitted to be null. Optional.",
2984
+ "allowed_values": [],
2985
+ "deprecated": null
2986
+ },
2987
+ {
2988
+ "name": "fallback_groups",
2989
+ "type": "string[][]",
2990
+ "required": false,
2991
+ "description": "Approved ordered fallback read paths. Optional.",
2992
+ "allowed_values": [],
2993
+ "deprecated": null
2994
+ },
2995
+ {
2996
+ "name": "output_bindings",
2997
+ "type": "object",
2998
+ "required": false,
2999
+ "description": "Required source path segments for each output binding. Optional.",
3000
+ "allowed_values": [],
3001
+ "deprecated": null
3002
+ },
3003
+ {
3004
+ "name": "allow_drops",
3005
+ "type": "boolean",
3006
+ "required": false,
3007
+ "description": "Allow a validated mapping to emit no output for a record. Optional.",
3008
+ "allowed_values": [],
3009
+ "deprecated": null
3010
+ }
3011
+ ]
2586
3012
  }
2587
3013
  ]
2588
3014
  },
@@ -2865,9 +3291,9 @@ export const CLI_COMMANDS = [
2865
3291
  },
2866
3292
  {
2867
3293
  "name": "version_id",
2868
- "type": "string",
3294
+ "type": "integer",
2869
3295
  "required": true,
2870
- "description": "Unique identifier of the version.",
3296
+ "description": "The schema version number: the `version` a view version carries.",
2871
3297
  "allowed_values": [],
2872
3298
  "deprecated": null
2873
3299
  }
@@ -3080,7 +3506,7 @@ export const CLI_COMMANDS = [
3080
3506
  "notes": [
3081
3507
  "Use this after editing a script so existing records pick up the new logic. Without it, an edit only affects records that arrive afterwards.",
3082
3508
  "The re-backfill runs in the background and replaces the view's output as it progresses. Anything reading the view sees a mix of old and new values until it finishes.",
3083
- "Metrics and views that depend on this one are rebuilt as well."
3509
+ "Refused while a metric, derived view or join view depends on this view."
3084
3510
  ],
3085
3511
  "path_params": [
3086
3512
  {
@@ -3126,6 +3552,7 @@ export const CLI_COMMANDS = [
3126
3552
  "notes": [
3127
3553
  "This is the schema-change path: it updates the output schema and re-queues the view's transforms in one step, so the scripts are rewritten to produce the new fields.",
3128
3554
  "Existing records keep their old shape until the regenerated transforms backfill over them.",
3555
+ "Refused while a metric, derived view or join view depends on this view.",
3129
3556
  "`output_schema` field names must be unique by name, cannot conflict on type, and cannot collide with a reserved query key such as `limit` or `cursor`.",
3130
3557
  "Use `hint` for rules the generator cannot read off the field names: a formatting rule (\"display_name should be Name (Type)\"), a business threshold (\"classify as high above 500\"), or a disambiguation when a source field could map more than one way. Skip it for obvious mappings like renames and type conversions, which the generator already handles."
3131
3558
  ],
@@ -3155,7 +3582,40 @@ export const CLI_COMMANDS = [
3155
3582
  "required": false,
3156
3583
  "description": "The fields the view should produce. Omit to regenerate against the current schema. Optional.",
3157
3584
  "allowed_values": [],
3158
- "deprecated": null
3585
+ "deprecated": null,
3586
+ "fields": [
3587
+ {
3588
+ "name": "name",
3589
+ "type": "string",
3590
+ "required": true,
3591
+ "description": "Field name as it appears on the view's records. Minimum length: `1`. Maximum length: `128`.",
3592
+ "allowed_values": [],
3593
+ "deprecated": null
3594
+ },
3595
+ {
3596
+ "name": "type",
3597
+ "type": "string",
3598
+ "required": true,
3599
+ "description": "Value type the field holds.",
3600
+ "allowed_values": [
3601
+ "string",
3602
+ "number",
3603
+ "boolean",
3604
+ "date",
3605
+ "array",
3606
+ "null"
3607
+ ],
3608
+ "deprecated": null
3609
+ },
3610
+ {
3611
+ "name": "description",
3612
+ "type": "string",
3613
+ "required": false,
3614
+ "description": "What the field means. Used as guidance when a transform script is generated. Optional. Maximum length: `512`.",
3615
+ "allowed_values": [],
3616
+ "deprecated": null
3617
+ }
3618
+ ]
3159
3619
  },
3160
3620
  {
3161
3621
  "name": "hint",
@@ -3774,8 +4234,8 @@ export const CLI_COMMANDS = [
3774
4234
  "description": "Chart line interpolation style. Optional.",
3775
4235
  "allowed_values": [
3776
4236
  "linear",
3777
- "smooth",
3778
- "step"
4237
+ "step",
4238
+ "smooth"
3779
4239
  ],
3780
4240
  "deprecated": null
3781
4241
  },
@@ -3787,12 +4247,12 @@ export const CLI_COMMANDS = [
3787
4247
  "allowed_values": [
3788
4248
  "count",
3789
4249
  "average",
4250
+ "sum",
3790
4251
  "min",
3791
4252
  "max",
3792
- "sum",
3793
4253
  "last",
3794
- "cumulative_count",
3795
4254
  "cumulative_sum",
4255
+ "cumulative_count",
3796
4256
  "p50",
3797
4257
  "p95",
3798
4258
  "p99",
@@ -4156,8 +4616,8 @@ export const CLI_COMMANDS = [
4156
4616
  "description": "Chart line interpolation style. Optional.",
4157
4617
  "allowed_values": [
4158
4618
  "linear",
4159
- "smooth",
4160
- "step"
4619
+ "step",
4620
+ "smooth"
4161
4621
  ],
4162
4622
  "deprecated": null
4163
4623
  },
@@ -4169,12 +4629,12 @@ export const CLI_COMMANDS = [
4169
4629
  "allowed_values": [
4170
4630
  "count",
4171
4631
  "average",
4632
+ "sum",
4172
4633
  "min",
4173
4634
  "max",
4174
- "sum",
4175
4635
  "last",
4176
- "cumulative_count",
4177
4636
  "cumulative_sum",
4637
+ "cumulative_count",
4178
4638
  "p50",
4179
4639
  "p95",
4180
4640
  "p99",
@@ -4711,7 +5171,7 @@ export const CLI_COMMANDS = [
4711
5171
  "monitors:write"
4712
5172
  ],
4713
5173
  "notes": [
4714
- "The monitor starts evaluating on its schedule as soon as it is created.",
5174
+ "The monitor starts evaluating on its schedule as soon as it is created, unless it is created with `status` set to `paused`.",
4715
5175
  "`scope` decides how many alerts a monitor can raise at once: `any_series` fires once for the metric as a whole, `each_series` tracks every series separately.",
4716
5176
  "No-data (`absence`) conditions require `chart_value=count` and a finite `time_window_minutes`.",
4717
5177
  "`sustained_minutes` is required when `condition_type` is `sustained`, and `threshold_value` is required when it is `threshold`.",
@@ -4774,12 +5234,12 @@ export const CLI_COMMANDS = [
4774
5234
  "allowed_values": [
4775
5235
  "count",
4776
5236
  "average",
5237
+ "sum",
4777
5238
  "min",
4778
5239
  "max",
4779
- "sum",
4780
5240
  "last",
4781
- "cumulative_count",
4782
5241
  "cumulative_sum",
5242
+ "cumulative_count",
4783
5243
  "p50",
4784
5244
  "p95",
4785
5245
  "p99",
@@ -4988,12 +5448,12 @@ export const CLI_COMMANDS = [
4988
5448
  "allowed_values": [
4989
5449
  "count",
4990
5450
  "average",
5451
+ "sum",
4991
5452
  "min",
4992
5453
  "max",
4993
- "sum",
4994
5454
  "last",
4995
- "cumulative_count",
4996
5455
  "cumulative_sum",
5456
+ "cumulative_count",
4997
5457
  "p50",
4998
5458
  "p95",
4999
5459
  "p99",
@@ -5203,12 +5663,12 @@ export const CLI_COMMANDS = [
5203
5663
  "allowed_values": [
5204
5664
  "count",
5205
5665
  "average",
5666
+ "sum",
5206
5667
  "min",
5207
5668
  "max",
5208
- "sum",
5209
5669
  "last",
5210
- "cumulative_count",
5211
5670
  "cumulative_sum",
5671
+ "cumulative_count",
5212
5672
  "p50",
5213
5673
  "p95",
5214
5674
  "p99",
@@ -6511,8 +6971,8 @@ export const CLI_COMMANDS = [
6511
6971
  "description": "Filter by team status, written as `operator:value`. For example `equals:active` or `in:active,delinquent`. Optional.",
6512
6972
  "allowed_values": [
6513
6973
  "active",
6514
- "restricted",
6515
6974
  "delinquent",
6975
+ "restricted",
6516
6976
  "blocked"
6517
6977
  ],
6518
6978
  "deprecated": null
@@ -6694,8 +7154,8 @@ export const CLI_COMMANDS = [
6694
7154
  "description": "Account status for the team. Optional.",
6695
7155
  "allowed_values": [
6696
7156
  "active",
6697
- "restricted",
6698
7157
  "delinquent",
7158
+ "restricted",
6699
7159
  "blocked"
6700
7160
  ],
6701
7161
  "deprecated": null
@@ -6722,7 +7182,65 @@ export const CLI_COMMANDS = [
6722
7182
  "required": false,
6723
7183
  "description": "Billing address printed on invoices. Optional.",
6724
7184
  "allowed_values": [],
6725
- "deprecated": null
7185
+ "deprecated": null,
7186
+ "fields": [
7187
+ {
7188
+ "name": "thoroughfare",
7189
+ "type": "string",
7190
+ "required": false,
7191
+ "description": "Optional. Maximum length: `128`.",
7192
+ "allowed_values": [],
7193
+ "deprecated": null
7194
+ },
7195
+ {
7196
+ "name": "premise",
7197
+ "type": "string",
7198
+ "required": false,
7199
+ "description": "Optional. Maximum length: `128`.",
7200
+ "allowed_values": [],
7201
+ "deprecated": null
7202
+ },
7203
+ {
7204
+ "name": "sublocality",
7205
+ "type": "string",
7206
+ "required": false,
7207
+ "description": "Optional. Maximum length: `128`.",
7208
+ "allowed_values": [],
7209
+ "deprecated": null
7210
+ },
7211
+ {
7212
+ "name": "locality",
7213
+ "type": "string",
7214
+ "required": false,
7215
+ "description": "Optional. Maximum length: `128`.",
7216
+ "allowed_values": [],
7217
+ "deprecated": null
7218
+ },
7219
+ {
7220
+ "name": "administrative_area",
7221
+ "type": "string",
7222
+ "required": false,
7223
+ "description": "Optional. Maximum length: `128`.",
7224
+ "allowed_values": [],
7225
+ "deprecated": null
7226
+ },
7227
+ {
7228
+ "name": "postal_code",
7229
+ "type": "string",
7230
+ "required": false,
7231
+ "description": "Optional. Maximum length: `16`.",
7232
+ "allowed_values": [],
7233
+ "deprecated": null
7234
+ },
7235
+ {
7236
+ "name": "country",
7237
+ "type": "string",
7238
+ "required": false,
7239
+ "description": "Optional. Minimum length: `2`. Maximum length: `2`.",
7240
+ "allowed_values": [],
7241
+ "deprecated": null
7242
+ }
7243
+ ]
6726
7244
  },
6727
7245
  {
6728
7246
  "name": "logo_url",
@@ -6749,6 +7267,7 @@ export const CLI_COMMANDS = [
6749
7267
  "At least one field must be provided.",
6750
7268
  "Only team Owners can change billing, security, or account settings. Other members can update `name` and `logo_url` only.",
6751
7269
  "`status`, `max_servers_per_project`, and `deleted_at` are managed by Tailglow and cannot be set by team members.",
7270
+ "`status` requires `expected_status`, the status you loaded; the change is refused with a conflict if the team's status has changed since.",
6752
7271
  "Changing `is_mfa_required` requires a recently verified multi-factor sign-in.",
6753
7272
  "Moving to a plan that bills a payment method requires a valid payment method on the team.",
6754
7273
  "`billing_email` cannot use the `@tailglow.io` domain.",
@@ -6800,8 +7319,21 @@ export const CLI_COMMANDS = [
6800
7319
  "description": "Account status for the team. Optional.",
6801
7320
  "allowed_values": [
6802
7321
  "active",
7322
+ "delinquent",
6803
7323
  "restricted",
7324
+ "blocked"
7325
+ ],
7326
+ "deprecated": null
7327
+ },
7328
+ {
7329
+ "name": "expected_status",
7330
+ "type": "TeamStatus",
7331
+ "required": false,
7332
+ "description": "The status the team had when you loaded it. Required with `status`; the change is refused if the status has changed since. Optional.",
7333
+ "allowed_values": [
7334
+ "active",
6804
7335
  "delinquent",
7336
+ "restricted",
6805
7337
  "blocked"
6806
7338
  ],
6807
7339
  "deprecated": null
@@ -6836,7 +7368,65 @@ export const CLI_COMMANDS = [
6836
7368
  "required": false,
6837
7369
  "description": "Billing address printed on invoices. Optional.",
6838
7370
  "allowed_values": [],
6839
- "deprecated": null
7371
+ "deprecated": null,
7372
+ "fields": [
7373
+ {
7374
+ "name": "thoroughfare",
7375
+ "type": "string",
7376
+ "required": false,
7377
+ "description": "Optional. Maximum length: `128`.",
7378
+ "allowed_values": [],
7379
+ "deprecated": null
7380
+ },
7381
+ {
7382
+ "name": "premise",
7383
+ "type": "string",
7384
+ "required": false,
7385
+ "description": "Optional. Maximum length: `128`.",
7386
+ "allowed_values": [],
7387
+ "deprecated": null
7388
+ },
7389
+ {
7390
+ "name": "sublocality",
7391
+ "type": "string",
7392
+ "required": false,
7393
+ "description": "Optional. Maximum length: `128`.",
7394
+ "allowed_values": [],
7395
+ "deprecated": null
7396
+ },
7397
+ {
7398
+ "name": "locality",
7399
+ "type": "string",
7400
+ "required": false,
7401
+ "description": "Optional. Maximum length: `128`.",
7402
+ "allowed_values": [],
7403
+ "deprecated": null
7404
+ },
7405
+ {
7406
+ "name": "administrative_area",
7407
+ "type": "string",
7408
+ "required": false,
7409
+ "description": "Optional. Maximum length: `128`.",
7410
+ "allowed_values": [],
7411
+ "deprecated": null
7412
+ },
7413
+ {
7414
+ "name": "postal_code",
7415
+ "type": "string",
7416
+ "required": false,
7417
+ "description": "Optional. Maximum length: `16`.",
7418
+ "allowed_values": [],
7419
+ "deprecated": null
7420
+ },
7421
+ {
7422
+ "name": "country",
7423
+ "type": "string",
7424
+ "required": false,
7425
+ "description": "Optional. Minimum length: `2`. Maximum length: `2`.",
7426
+ "allowed_values": [],
7427
+ "deprecated": null
7428
+ }
7429
+ ]
6840
7430
  },
6841
7431
  {
6842
7432
  "name": "logo_url",
@@ -7571,8 +8161,8 @@ export const CLI_COMMANDS = [
7571
8161
  "description": "Filter by team status, written as `operator:value`. For example `equals:active` or `in:active,delinquent`. Optional.",
7572
8162
  "allowed_values": [
7573
8163
  "active",
7574
- "restricted",
7575
8164
  "delinquent",
8165
+ "restricted",
7576
8166
  "blocked"
7577
8167
  ],
7578
8168
  "deprecated": null
@@ -7859,7 +8449,7 @@ export const CLI_COMMANDS = [
7859
8449
  "body_fields": []
7860
8450
  },
7861
8451
  {
7862
- "resource": "apiKeys",
8452
+ "resource": "api_keys",
7863
8453
  "command": "list",
7864
8454
  "operation_id": "listApiKeys",
7865
8455
  "summary": "List API Keys",
@@ -7925,7 +8515,7 @@ export const CLI_COMMANDS = [
7925
8515
  "body_fields": []
7926
8516
  },
7927
8517
  {
7928
- "resource": "apiKeys",
8518
+ "resource": "api_keys",
7929
8519
  "command": "retrieve",
7930
8520
  "operation_id": "getApiKey",
7931
8521
  "summary": "Retrieve API Key",
@@ -7951,7 +8541,7 @@ export const CLI_COMMANDS = [
7951
8541
  "body_fields": []
7952
8542
  },
7953
8543
  {
7954
- "resource": "apiKeys",
8544
+ "resource": "api_keys",
7955
8545
  "command": "create",
7956
8546
  "operation_id": "createApiKey",
7957
8547
  "summary": "Create API Key",
@@ -7987,7 +8577,7 @@ export const CLI_COMMANDS = [
7987
8577
  ]
7988
8578
  },
7989
8579
  {
7990
- "resource": "apiKeys",
8580
+ "resource": "api_keys",
7991
8581
  "command": "update",
7992
8582
  "operation_id": "updateApiKey",
7993
8583
  "summary": "Update API Key",
@@ -8032,7 +8622,7 @@ export const CLI_COMMANDS = [
8032
8622
  ]
8033
8623
  },
8034
8624
  {
8035
- "resource": "apiKeys",
8625
+ "resource": "api_keys",
8036
8626
  "command": "delete",
8037
8627
  "operation_id": "deleteApiKey",
8038
8628
  "summary": "Delete API Key",
@@ -8040,10 +8630,10 @@ export const CLI_COMMANDS = [
8040
8630
  "method": "DELETE",
8041
8631
  "path": "/v1/keys/:key_id",
8042
8632
  "alternate_paths": [],
8043
- "scopes": [
8044
- "keys:delete"
8633
+ "scopes": [],
8634
+ "notes": [
8635
+ "Deleting a key needs `keys:delete`, except that a key can always delete itself. `tglow logout` uses this to remove the key it signed in with."
8045
8636
  ],
8046
- "notes": [],
8047
8637
  "path_params": [
8048
8638
  {
8049
8639
  "name": "key_id",
@@ -10374,7 +10964,8 @@ export const CLI_COMMANDS = [
10374
10964
  "alternate_paths": [],
10375
10965
  "scopes": [],
10376
10966
  "notes": [
10377
- "You can retrieve your own authentication logs without `logs:read`. All other log reads require `logs:read`.",
10967
+ "You can retrieve your own authentication logs without `logs:read`. Billing logs require `billing:read`; all other log reads require `logs:read`.",
10968
+ "Without `type`, the list includes every type you can read. `admin_auth` logs exist only on Tailglow's own admin team.",
10378
10969
  "`after` and `before` are mutually exclusive."
10379
10970
  ],
10380
10971
  "path_params": [],
@@ -10429,7 +11020,8 @@ export const CLI_COMMANDS = [
10429
11020
  "allowed_values": [
10430
11021
  "auth",
10431
11022
  "admin_auth",
10432
- "audit"
11023
+ "audit",
11024
+ "billing"
10433
11025
  ],
10434
11026
  "deprecated": null
10435
11027
  },