@confighub/api 0.6.6 → 0.6.8

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.
package/dist/index.d.ts CHANGED
@@ -454,6 +454,26 @@ interface paths {
454
454
  patch?: never;
455
455
  trace?: never;
456
456
  };
457
+ "/diff": {
458
+ parameters: {
459
+ query?: never;
460
+ header?: never;
461
+ path?: never;
462
+ cookie?: never;
463
+ };
464
+ get?: never;
465
+ put?: never;
466
+ /**
467
+ * Get the difference between two configurations
468
+ * @description Returns what changed from one configuration to another, path by path with the values on both sides. Each side is a Unit, at a Revision or its head, or configuration given inline, such as a local file or an unsaved edit. The two sides may be Units in different Spaces, and must be of one toolchain. It changes nothing; it is a POST because inline configuration does not fit in a query string.
469
+ */
470
+ post: operations["DiffConfigurations"];
471
+ delete?: never;
472
+ options?: never;
473
+ head?: never;
474
+ patch?: never;
475
+ trace?: never;
476
+ };
457
477
  "/filter": {
458
478
  parameters: {
459
479
  query?: never;
@@ -1970,6 +1990,26 @@ interface paths {
1970
1990
  patch?: never;
1971
1991
  trace?: never;
1972
1992
  };
1993
+ "/space/{space_id}/unit/{unit_id}/diff": {
1994
+ parameters: {
1995
+ query?: never;
1996
+ header?: never;
1997
+ path?: never;
1998
+ cookie?: never;
1999
+ };
2000
+ /**
2001
+ * Get the difference between two Revisions of a Unit
2002
+ * @description Returns what changed in a Unit's configuration between two Revisions, path by path, with the values on both sides. Array elements are matched by merge key and resources across renames, as merges match them. from and to take the Revision selectors `unit update --restore` accepts; to defaults to HeadRevisionNum and from to the Revision before to, so a request with neither answers what the last change did.
2003
+ */
2004
+ get: operations["GetUnitDiff"];
2005
+ put?: never;
2006
+ post?: never;
2007
+ delete?: never;
2008
+ options?: never;
2009
+ head?: never;
2010
+ patch?: never;
2011
+ trace?: never;
2012
+ };
1973
2013
  "/space/{space_id}/unit/{unit_id}/guard": {
1974
2014
  parameters: {
1975
2015
  query?: never;
@@ -2590,6 +2630,26 @@ interface paths {
2590
2630
  patch?: never;
2591
2631
  trace?: never;
2592
2632
  };
2633
+ "/unit_diff": {
2634
+ parameters: {
2635
+ query?: never;
2636
+ header?: never;
2637
+ path?: never;
2638
+ cookie?: never;
2639
+ };
2640
+ /**
2641
+ * Get the difference between two Revisions of many Units across spaces
2642
+ * @description Returns, for every Unit the where clause selects, across every Space in the organization, what changed in its configuration between the Revision from names and the Revision to names, path by path with the values on both sides. This is the bulk counterpart of the single-Unit diff subresource. from and to must each pick out a Revision in every Unit: HeadRevisionNum, LastReleasedRevisionNum, Tag:<id>, ChangeSet:<id> or ChangeOrder:<id>, optionally prefixed with Before:. A Unit with no Revision a side names is absent on that side, and its diff runs against nothing. Scope it to one Space with a where clause.
2643
+ */
2644
+ get: operations["SearchUnitDiff"];
2645
+ put?: never;
2646
+ post?: never;
2647
+ delete?: never;
2648
+ options?: never;
2649
+ head?: never;
2650
+ patch?: never;
2651
+ trace?: never;
2652
+ };
2593
2653
  "/unit_event": {
2594
2654
  parameters: {
2595
2655
  query?: never;
@@ -3940,6 +4000,10 @@ interface components {
3940
4000
  Component?: components["schemas"]["Component"];
3941
4001
  Error?: components["schemas"]["ResponseError"];
3942
4002
  };
4003
+ ConfigDiff: {
4004
+ /** @description One entry per resource that differs, in the To configuration's order; resources only on the From side follow where they were */
4005
+ Resources?: components["schemas"]["ResourceDiff"][] | null;
4006
+ };
3943
4007
  CreateUserKeyRequest: {
3944
4008
  Description?: string;
3945
4009
  PublicJWK?: unknown;
@@ -4010,6 +4074,7 @@ interface components {
4010
4074
  DemoteUnitResult: {
4011
4075
  /** @description Restore, Mark, or Unchanged. */
4012
4076
  Action?: string;
4077
+ Diff?: components["schemas"]["ConfigDiff"];
4013
4078
  /**
4014
4079
  * Format: int64
4015
4080
  * @description The first Revision after the change that restoring drops, when the head had moved past where the change arrived.
@@ -4045,6 +4110,48 @@ interface components {
4045
4110
  */
4046
4111
  UnitID?: string;
4047
4112
  };
4113
+ DiffRequest: {
4114
+ From?: components["schemas"]["DiffSide"];
4115
+ To?: components["schemas"]["DiffSide"];
4116
+ };
4117
+ DiffResult: {
4118
+ Diff?: components["schemas"]["ConfigDiff"];
4119
+ From?: components["schemas"]["DiffSideResult"];
4120
+ To?: components["schemas"]["DiffSideResult"];
4121
+ };
4122
+ DiffSide: {
4123
+ /** @description Configuration given inline, instead of a Unit's */
4124
+ Data?: string;
4125
+ /** @description The Unit's Revision, in the syntax unit update --restore takes; its head when omitted */
4126
+ Revision?: string;
4127
+ /** @description The toolchain of inline Data; defaults to the other side's */
4128
+ ToolchainType?: string;
4129
+ /**
4130
+ * Format: uuid
4131
+ * @description The Unit whose configuration this side is. Omitted for inline Data.
4132
+ * @example 248df4b7-aa70-47b8-a036-33ac447e668d
4133
+ */
4134
+ UnitID?: string;
4135
+ };
4136
+ DiffSideResult: {
4137
+ /**
4138
+ * Format: int64
4139
+ * @description The Revision the side resolved to, for a Unit side
4140
+ */
4141
+ RevisionNum?: number;
4142
+ /**
4143
+ * Format: uuid
4144
+ * @description The Space of the Unit, for a Unit side
4145
+ * @example 248df4b7-aa70-47b8-a036-33ac447e668d
4146
+ */
4147
+ SpaceID?: string;
4148
+ /**
4149
+ * Format: uuid
4150
+ * @description The Unit, for a Unit side
4151
+ * @example 248df4b7-aa70-47b8-a036-33ac447e668d
4152
+ */
4153
+ UnitID?: string;
4154
+ };
4048
4155
  ErrorItem: {
4049
4156
  /** @description A clear explanation of what went wrong */
4050
4157
  Description?: string;
@@ -4423,6 +4530,7 @@ interface components {
4423
4530
  Conflicts?: components["schemas"]["MutationConflictList"];
4424
4531
  /** @description SHA256 of the resulting configuration data, whether or not ConfigData is present */
4425
4532
  DataHash?: string;
4533
+ Diff?: components["schemas"]["ConfigDiff"];
4426
4534
  Error?: components["schemas"]["ResponseError"];
4427
4535
  /** @description Functions produced new mutations (of type other than None) */
4428
4536
  HasNewMutations?: boolean;
@@ -4782,6 +4890,10 @@ interface components {
4782
4890
  Error?: components["schemas"]["ResponseError"];
4783
4891
  Link?: components["schemas"]["Link"];
4784
4892
  };
4893
+ MergeKeyValue: {
4894
+ Key?: string;
4895
+ Value?: string;
4896
+ };
4785
4897
  MoveRequest: {
4786
4898
  /**
4787
4899
  * Format: uuid
@@ -5089,6 +5201,23 @@ interface components {
5089
5201
  [key: string]: string;
5090
5202
  };
5091
5203
  };
5204
+ PathChange: {
5205
+ Attribution?: components["schemas"]["MutationInfo"];
5206
+ /** @description Add, Delete, Update, Replace, Reorder, or Rename */
5207
+ ChangeType?: string;
5208
+ /** @description The path in configuration path syntax, as --path arguments and where filters take it, with each unkeyed array element named by its index */
5209
+ DisplayPath?: string;
5210
+ /** @description The value on the From side: a scalar's text, or a YAML block for a map or array */
5211
+ FromValue?: string;
5212
+ /** @description A unified line diff, for multi-line string values */
5213
+ Patch?: string;
5214
+ /** @description The path as MutationSources and patch functions record it */
5215
+ Path?: string;
5216
+ /** @description The path split into its segments, for rendering without parsing the path syntax */
5217
+ Segments?: components["schemas"]["PathSegment"][] | null;
5218
+ /** @description The value on the To side: a scalar's text, or a YAML block for a map or array */
5219
+ ToValue?: string;
5220
+ };
5092
5221
  PathExpression: {
5093
5222
  /** @description Data type of the resulting AttributeValue: string, int, or bool. The Expression result (a string) is coerced to this type. */
5094
5223
  DataType?: string;
@@ -5102,6 +5231,16 @@ interface components {
5102
5231
  Path?: string;
5103
5232
  Resource?: components["schemas"]["ResourceInfo"];
5104
5233
  };
5234
+ PathSegment: {
5235
+ /** @description The map key, for a map segment */
5236
+ Field?: string;
5237
+ /** @description The element's index on the From side; -1 for a map key or an element absent there */
5238
+ FromIndex?: number;
5239
+ /** @description The merge keys that identify the element, for an element of a merge-keyed array */
5240
+ MergeKeys?: components["schemas"]["MergeKeyValue"][];
5241
+ /** @description The element's index on the To side; -1 for a map key or an element absent there */
5242
+ ToIndex?: number;
5243
+ };
5105
5244
  PathToVisitorInfoType: {
5106
5245
  [key: string]: components["schemas"]["PathVisitorInfo"];
5107
5246
  };
@@ -5255,6 +5394,7 @@ interface components {
5255
5394
  /** @description Upgrade, Resolve, Mark, Empty, Revive, Clone, Invoke, Unchanged, or Skip. */
5256
5395
  Action?: string;
5257
5396
  Conflicts?: components["schemas"]["MutationConflictList"];
5397
+ Diff?: components["schemas"]["ConfigDiff"];
5258
5398
  Error?: components["schemas"]["ResponseError"];
5259
5399
  /** Format: int64 */
5260
5400
  HeadRevisionNum?: number;
@@ -5559,6 +5699,18 @@ interface components {
5559
5699
  */
5560
5700
  Version?: number;
5561
5701
  };
5702
+ ResourceDiff: {
5703
+ Attribution?: components["schemas"]["MutationInfo"];
5704
+ ChangeType?: components["schemas"]["MutationType"];
5705
+ /** @description Changes within the resource, for an Update, in document order */
5706
+ Changes?: components["schemas"]["PathChange"][];
5707
+ /** @description The whole resource, for a Delete */
5708
+ FromValue?: string;
5709
+ PreviousResource?: components["schemas"]["ResourceInfo"];
5710
+ Resource?: components["schemas"]["ResourceInfo"];
5711
+ /** @description The whole resource, for an Add */
5712
+ ToValue?: string;
5713
+ };
5562
5714
  ResourceGuards: {
5563
5715
  /** @description Guard keys to remove, by path. Removing a key that is not there is not an error */
5564
5716
  Remove?: {
@@ -6784,6 +6936,7 @@ interface components {
6784
6936
  /** @description Number of conflicts whose withheld change was applied */
6785
6937
  Applied?: number;
6786
6938
  Conflicts?: components["schemas"]["MutationConflictList"];
6939
+ Diff?: components["schemas"]["ConfigDiff"];
6787
6940
  /** @description Number of conflicts dropped without changing the configuration data */
6788
6941
  Dismissed?: number;
6789
6942
  Error?: components["schemas"]["ResponseError"];
@@ -6793,6 +6946,7 @@ interface components {
6793
6946
  /** @description The configuration the operation produced; returned when include names ConfigData. */
6794
6947
  ConfigData?: string;
6795
6948
  Conflicts?: components["schemas"]["MutationConflictList"];
6949
+ Diff?: components["schemas"]["ConfigDiff"];
6796
6950
  Error?: components["schemas"]["ResponseError"];
6797
6951
  Links?: components["schemas"]["LinkCreateOrUpdateResponse"][];
6798
6952
  MutationSources?: components["schemas"]["ResourceMutationList"];
@@ -6825,6 +6979,32 @@ interface components {
6825
6979
  */
6826
6980
  UnitID?: string;
6827
6981
  };
6982
+ UnitDiff: {
6983
+ Diff?: components["schemas"]["ConfigDiff"];
6984
+ Error?: components["schemas"]["ResponseError"];
6985
+ /**
6986
+ * Format: int64
6987
+ * @description The Revision on the From side; 0 when the Unit has none there and the diff is against nothing
6988
+ */
6989
+ FromRevisionNum?: number;
6990
+ /**
6991
+ * Format: uuid
6992
+ * @description The Space of the Unit
6993
+ * @example 248df4b7-aa70-47b8-a036-33ac447e668d
6994
+ */
6995
+ SpaceID?: string;
6996
+ /**
6997
+ * Format: int64
6998
+ * @description The Revision on the To side; 0 when the Unit has none there and the diff is against nothing
6999
+ */
7000
+ ToRevisionNum?: number;
7001
+ /**
7002
+ * Format: uuid
7003
+ * @description The Unit
7004
+ * @example 248df4b7-aa70-47b8-a036-33ac447e668d
7005
+ */
7006
+ UnitID?: string;
7007
+ };
6828
7008
  /**
6829
7009
  * @description UnitEvent represents an event of action performed on a Unit's configuration. Each action tracks
6830
7010
  * the lifecycle of applying, destroying, or refreshing a Unit's configuration in the target
@@ -7176,6 +7356,7 @@ interface components {
7176
7356
  /** @description Create, Update, Unchanged, Empty, Revive, or Adopt. */
7177
7357
  Action?: string;
7178
7358
  Conflicts?: components["schemas"]["MutationConflictList"];
7359
+ Diff?: components["schemas"]["ConfigDiff"];
7179
7360
  Error?: components["schemas"]["ResponseError"];
7180
7361
  Mutations?: components["schemas"]["ResourceMutationList"];
7181
7362
  /** @description The resource identity this Unit is keyed by. */
@@ -14002,7 +14183,7 @@ interface operations {
14002
14183
  query?: {
14003
14184
  /** @description Plan the demotion and return the same response without writing anything. */
14004
14185
  dry_run?: boolean;
14005
- /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each restore changed, or on a dry run would change. */
14186
+ /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each restore changed, or on a dry run would change, as entries of its MutationSources, and Diff for the same change path by path with the values on both sides. */
14006
14187
  include?: string;
14007
14188
  };
14008
14189
  header?: never;
@@ -14107,6 +14288,98 @@ interface operations {
14107
14288
  };
14108
14289
  };
14109
14290
  };
14291
+ DiffConfigurations: {
14292
+ parameters: {
14293
+ query?: {
14294
+ /** @description Comma-separated: Attribution to attach to each changed path the To side's MutationSources entry, which says what set the new value, and Unchanged to also list resources with no changes. */
14295
+ include?: string;
14296
+ /** @description Limit the diff to the resources this where expression selects on either side. */
14297
+ where_resource?: string;
14298
+ };
14299
+ header?: never;
14300
+ path?: never;
14301
+ cookie?: never;
14302
+ };
14303
+ requestBody?: {
14304
+ content: {
14305
+ "application/json": components["schemas"]["DiffRequest"];
14306
+ };
14307
+ };
14308
+ responses: {
14309
+ /** @description OK */
14310
+ 200: {
14311
+ headers: {
14312
+ [name: string]: unknown;
14313
+ };
14314
+ content: {
14315
+ "application/json": components["schemas"]["DiffResult"];
14316
+ };
14317
+ };
14318
+ /** @description Unit request is invalid (Bad Request). */
14319
+ 400: {
14320
+ headers: {
14321
+ [name: string]: unknown;
14322
+ };
14323
+ content: {
14324
+ "application/json": components["schemas"]["StandardErrorResponse"];
14325
+ };
14326
+ };
14327
+ /** @description Unauthorized access. */
14328
+ 401: {
14329
+ headers: {
14330
+ [name: string]: unknown;
14331
+ };
14332
+ content: {
14333
+ "application/json": components["schemas"]["StandardErrorResponse"];
14334
+ };
14335
+ };
14336
+ /** @description Forbidden access. */
14337
+ 403: {
14338
+ headers: {
14339
+ [name: string]: unknown;
14340
+ };
14341
+ content: {
14342
+ "application/json": components["schemas"]["StandardErrorResponse"];
14343
+ };
14344
+ };
14345
+ /** @description Unit not found. */
14346
+ 404: {
14347
+ headers: {
14348
+ [name: string]: unknown;
14349
+ };
14350
+ content: {
14351
+ "application/json": components["schemas"]["StandardErrorResponse"];
14352
+ };
14353
+ };
14354
+ /** @description Unit data conflict. Data has changed since last read. */
14355
+ 409: {
14356
+ headers: {
14357
+ [name: string]: unknown;
14358
+ };
14359
+ content: {
14360
+ "application/json": components["schemas"]["StandardErrorResponse"];
14361
+ };
14362
+ };
14363
+ /** @description Something went wrong while processing Unit. */
14364
+ 500: {
14365
+ headers: {
14366
+ [name: string]: unknown;
14367
+ };
14368
+ content: {
14369
+ "application/json": components["schemas"]["StandardErrorResponse"];
14370
+ };
14371
+ };
14372
+ /** @description Unexpected error. */
14373
+ default: {
14374
+ headers: {
14375
+ [name: string]: unknown;
14376
+ };
14377
+ content: {
14378
+ "application/json": components["schemas"]["StandardErrorResponse"];
14379
+ };
14380
+ };
14381
+ };
14382
+ };
14110
14383
  ListAllFilters: {
14111
14384
  parameters: {
14112
14385
  query?: {
@@ -15314,7 +15587,7 @@ interface operations {
15314
15587
  * If both 'filter' and 'where' parameters are specified, they are combined with AND logic.
15315
15588
  */
15316
15589
  filter?: string;
15317
- /** @description Comma-separated parts of the result to return in addition to the default: ConfigData for the configuration the invocation produced, carried whether or not the invocation changed it. Without it, the configuration is present only when the invocation changed it, and an unchanged result is reported by DataHash alone. */
15590
+ /** @description Comma-separated parts of the result to return in addition to the default: ConfigData for the configuration the invocation produced, carried whether or not the invocation changed it. Without it, the configuration is present only when the invocation changed it, and an unchanged result is reported by DataHash alone. Diff for what the invocation changed in each Unit, path by path with the values on both sides. */
15318
15591
  include?: string;
15319
15592
  /** @description Resource type: Resource type to match for the desired ToolchainType, for example apps/v1/Deployment */
15320
15593
  resource_type?: string;
@@ -18814,7 +19087,7 @@ interface operations {
18814
19087
  query?: {
18815
19088
  /** @description Plan the promotion, evaluate its gates, and return the same response without writing anything. */
18816
19089
  dry_run?: boolean;
18817
- /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each Unit write changed, or on a dry run would change. On a dry run it runs the merges a plan otherwise skips, so it is returned only when named. */
19090
+ /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each Unit write changed, or on a dry run would change, as entries of its MutationSources, and Diff for the same change path by path with the values on both sides. On a dry run either one runs the merges a plan otherwise skips, so they are returned only when named. */
18818
19091
  include?: string;
18819
19092
  };
18820
19093
  header?: never;
@@ -25407,7 +25680,7 @@ interface operations {
25407
25680
  * If both 'filter' and 'where' parameters are specified, they are combined with AND logic.
25408
25681
  */
25409
25682
  filter?: string;
25410
- /** @description Comma-separated parts of the result to return in addition to the default: ConfigData for the configuration the invocation produced, carried whether or not the invocation changed it. Without it, the configuration is present only when the invocation changed it, and an unchanged result is reported by DataHash alone. */
25683
+ /** @description Comma-separated parts of the result to return in addition to the default: ConfigData for the configuration the invocation produced, carried whether or not the invocation changed it. Without it, the configuration is present only when the invocation changed it, and an unchanged result is reported by DataHash alone. Diff for what the invocation changed in each Unit, path by path with the values on both sides. */
25411
25684
  include?: string;
25412
25685
  /** @description Resource type: Resource type to match for the desired ToolchainType, for example apps/v1/Deployment */
25413
25686
  resource_type?: string;
@@ -30073,7 +30346,7 @@ interface operations {
30073
30346
  merge_external_source?: string;
30074
30347
  /** @description Allowed values are true and false. Default is false. When true, reports success when an entity already exists and returns the existing entity */
30075
30348
  allow_exists?: string;
30076
- /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, and MutationSources for what set each value in it. Neither is a field of a Unit, and both cost something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30349
+ /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, MutationSources for what set each value in it, and Diff for what the operation changed, path by path with the values on both sides. None is a field of a Unit, and each costs something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30077
30350
  include?: string;
30078
30351
  };
30079
30352
  header?: never;
@@ -30370,7 +30643,7 @@ interface operations {
30370
30643
  prior_revisions?: string;
30371
30644
  /** @description User-defined category for the Mutation. Must be alphanumeric, at most 64 characters. The prefix 'ConfigHub' is reserved. */
30372
30645
  subgroup?: string;
30373
- /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, and MutationSources for what set each value in it. Neither is a field of a Unit, and both cost something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30646
+ /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, MutationSources for what set each value in it, and Diff for what the operation changed, path by path with the values on both sides. None is a field of a Unit, and each costs something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30374
30647
  include?: string;
30375
30648
  };
30376
30649
  header?: never;
@@ -30677,7 +30950,7 @@ interface operations {
30677
30950
  prior_revisions?: string;
30678
30951
  /** @description User-defined category for the Mutation. Must be alphanumeric, at most 64 characters. The prefix 'ConfigHub' is reserved. */
30679
30952
  subgroup?: string;
30680
- /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, and MutationSources for what set each value in it. Neither is a field of a Unit, and both cost something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30953
+ /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, MutationSources for what set each value in it, and Diff for what the operation changed, path by path with the values on both sides. None is a field of a Unit, and each costs something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
30681
30954
  include?: string;
30682
30955
  };
30683
30956
  header?: never;
@@ -30996,7 +31269,7 @@ interface operations {
30996
31269
  query?: {
30997
31270
  /** @description Human-readable description of this change, copied to the Revision it creates. */
30998
31271
  last_change_description?: string;
30999
- /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, and MutationSources for what set each value in it. Neither is a field of a Unit, and both cost something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
31272
+ /** @description Comma-separated parts of the result to return in addition to the Unit: ConfigData for the configuration the operation produced, MutationSources for what set each value in it, and Diff for what the operation changed, path by path with the values on both sides. None is a field of a Unit, and each costs something to return, so they are returned only when named. A dry run stores nothing, so this is the only way to see what it would have produced. */
31000
31273
  include?: string;
31001
31274
  /** @description Dry run mode: return changed unit(s) but don't update configuration data */
31002
31275
  dry_run?: boolean;
@@ -31108,6 +31381,94 @@ interface operations {
31108
31381
  };
31109
31382
  };
31110
31383
  };
31384
+ GetUnitDiff: {
31385
+ parameters: {
31386
+ query?: {
31387
+ /** @description The Revision on the From side: a number, a Revision ID, HeadRevisionNum, LastReleasedRevisionNum, Tag:<id>, ChangeSet:<id>, or ChangeOrder:<id>, any of them optionally prefixed with Before:. */
31388
+ from?: string;
31389
+ /** @description The Revision on the To side, in the same syntax as from. */
31390
+ to?: string;
31391
+ /** @description Comma-separated: Attribution to attach to each changed path the To side's MutationSources entry, which says what set the new value, and Unchanged to also list resources with no changes. */
31392
+ include?: string;
31393
+ /** @description Limit the diff to the resources this where expression selects on either side. */
31394
+ where_resource?: string;
31395
+ };
31396
+ header?: never;
31397
+ path: {
31398
+ /** @description Unique identifier for a space_id */
31399
+ space_id: string;
31400
+ /** @description Unique identifier for a unit_id */
31401
+ unit_id: string;
31402
+ };
31403
+ cookie?: never;
31404
+ };
31405
+ requestBody?: never;
31406
+ responses: {
31407
+ /** @description OK */
31408
+ 200: {
31409
+ headers: {
31410
+ [name: string]: unknown;
31411
+ };
31412
+ content: {
31413
+ "application/json": components["schemas"]["UnitDiff"];
31414
+ };
31415
+ };
31416
+ /** @description Unit request is invalid (Bad Request). */
31417
+ 400: {
31418
+ headers: {
31419
+ [name: string]: unknown;
31420
+ };
31421
+ content: {
31422
+ "application/json": components["schemas"]["StandardErrorResponse"];
31423
+ };
31424
+ };
31425
+ /** @description Unauthorized access. */
31426
+ 401: {
31427
+ headers: {
31428
+ [name: string]: unknown;
31429
+ };
31430
+ content: {
31431
+ "application/json": components["schemas"]["StandardErrorResponse"];
31432
+ };
31433
+ };
31434
+ /** @description Forbidden access. */
31435
+ 403: {
31436
+ headers: {
31437
+ [name: string]: unknown;
31438
+ };
31439
+ content: {
31440
+ "application/json": components["schemas"]["StandardErrorResponse"];
31441
+ };
31442
+ };
31443
+ /** @description Unit not found. */
31444
+ 404: {
31445
+ headers: {
31446
+ [name: string]: unknown;
31447
+ };
31448
+ content: {
31449
+ "application/json": components["schemas"]["StandardErrorResponse"];
31450
+ };
31451
+ };
31452
+ /** @description Something went wrong while processing Unit. */
31453
+ 500: {
31454
+ headers: {
31455
+ [name: string]: unknown;
31456
+ };
31457
+ content: {
31458
+ "application/json": components["schemas"]["StandardErrorResponse"];
31459
+ };
31460
+ };
31461
+ /** @description Unexpected error. */
31462
+ default: {
31463
+ headers: {
31464
+ [name: string]: unknown;
31465
+ };
31466
+ content: {
31467
+ "application/json": components["schemas"]["StandardErrorResponse"];
31468
+ };
31469
+ };
31470
+ };
31471
+ };
31111
31472
  SetUnitGuard: {
31112
31473
  parameters: {
31113
31474
  query?: never;
@@ -38180,6 +38541,177 @@ interface operations {
38180
38541
  };
38181
38542
  };
38182
38543
  };
38544
+ SearchUnitDiff: {
38545
+ parameters: {
38546
+ query?: {
38547
+ /**
38548
+ * @description The specified string is an expression for the purpose of filtering
38549
+ * the list of Units returned. The expression syntax was inspired by SQL.
38550
+ * It supports conjunctions using `AND` of relational expressions of the form *attribute*
38551
+ * *operator* *attribute_or_literal*. The attribute names are case-sensitive and PascalCase,
38552
+ * as in the JSON encoding.
38553
+ * Strings support the following operators: `<`, `>`, `<=`, `>=`, `=`, `!=`, `LIKE`, `NOT LIKE`, `ILIKE`, `~~`, `!~~`, `~`, `~*`, `!~`, `!~*`, `IN`, `NOT IN`.
38554
+ * String pattern operators: `LIKE` and `~~` for pattern matching with `%` and `_` wildcards,
38555
+ * `ILIKE` for case-insensitive pattern matching, `NOT LIKE` and `!~~` for negated pattern matching.
38556
+ * String regex operators: `~` for regex matching, `~*` for case-insensitive regex,
38557
+ * `!~` and `!~*` for regex not matching (case-sensitive and insensitive).
38558
+ * Integers support the following operators: `<`, `>`, `<=`, `>=`, `=`, `!=`, `IN`, `NOT IN`.
38559
+ * UUIDs and boolean attributes support equality and inequality only.
38560
+ * UUID and time literals must be quoted as string literals.
38561
+ * String literals are quoted with single quotes, such as `'string'`.
38562
+ * Time literals use the same form as when serialized as JSON,
38563
+ * such as: `CreatedAt > '2025-02-18T23:16:34'`.
38564
+ * Integer and boolean literals are also supported for attributes of those types.
38565
+ * Arrays support the `?` operator to to match any element of the array,
38566
+ * as in `FromLinkID ? '7c61626f-ddbe-41af-93f6-b69f4ab6d308'`.
38567
+ * Arrays can perform LEN() to check for length, as in `LEN(FromLinkID) > 0`.
38568
+ * An attribute naming a list of other entities can be filtered on their attributes with a `*` segment,
38569
+ * as in `FromLink.*.Slug = 'upgrade-app'`, which holds when any element satisfies it.
38570
+ * Without the `*` such a reference is an error, since it names no single value to compare.
38571
+ * Map support the dot notation to specify a particular map key, as in `Labels.tier = 'Backend'`.
38572
+ * Maps support `IS NULL` and `IS NOT NULL` with dot notation to check for key absence or presence,
38573
+ * as in `Labels.tier IS NULL` (key doesn't exist) or `Labels.tier IS NOT NULL` (key exists).
38574
+ * Comparison results can be tested with `IS TRUE`, `IS FALSE`, `IS NOT TRUE`, and `IS NOT FALSE`.
38575
+ * These are useful for nullable columns: `MergeSourceID = '<uuid>' IS NOT FALSE` matches rows where MergeSourceID equals the value OR is NULL.
38576
+ * The `IN` and `NOT IN` operators accept a comma-separated list of values in parentheses,
38577
+ * such as `Slug IN ('slugone', 'slugtwo')` or `Labels.environment IN ('prod', 'staging')`.
38578
+ * Conjunctions are supported using the `AND` operator.
38579
+ * An example conjunction is:
38580
+ * `CreatedAt >= '2025-01-07' AND Slug = 'test' AND Labels.mykey = 'myvalue'`.
38581
+ *
38582
+ * Supported attributes for filtering on Unit: Annotations, ApplyGates, ApplyWarnings, BridgeWorkerID, ChangeSetID, Conflicts, CreatedAt, DataHash, DeleteGates, DestroyGates, DisplayName, FromLinkID, HeadRevisionID, HeadRevisionNum, HeadUnitActionNum, HeadUnitEventNum, Labels, LastActionAt, LastChangeDescription, LastReleasedRevisionNum, NeededPaths, OrganizationID, ProvidedPaths, ProviderType, Slug, SpaceID, TargetID, TargetOptions, ToolchainType, UnitID, UpdatedAt, UpstreamRevisionNum, UpstreamSpaceID, UpstreamUnitID, ValidationErrors, ValidationTriggerIDs, ValidationWarnings, ValueTriggerIDs, Values.
38583
+ *
38584
+ * Finding all units created by cloning can be done using the expression `UpstreamRevisionNum > 0`. Clones of a specific unit can be found by additionally filtering based on `UpstreamUnitID`. Unapplied units can be found using `LastReleasedRevisionNum = 0`. Units with unapplied changes can be found with `HeadRevisionNum > LastReleasedRevisionNum`.
38585
+ *
38586
+ * The whole string must be query-encoded.
38587
+ */
38588
+ where?: string;
38589
+ /**
38590
+ * @description UUID of a Filter entity to apply to the Unit list.
38591
+ *
38592
+ * The Filter must be in the same Organization as the user credentials.
38593
+ *
38594
+ * The Filter's From field must match the entity type being filtered (Unit).
38595
+ *
38596
+ * For Space-resident entities, if the Filter has a FromSpaceID, it must match the operation's SpaceID.
38597
+ *
38598
+ * The Filter's Where clause will be combined with any explicit 'where' parameter using AND logic.
38599
+ *
38600
+ * If both 'filter' and 'where' parameters are specified, they are combined with AND logic.
38601
+ */
38602
+ filter?: string;
38603
+ /**
38604
+ * @description Free text search that approximately matches the specified string against string fields and map keys/values.
38605
+ *
38606
+ * The search is case-insensitive and uses pattern matching to find entities containing the text.
38607
+ *
38608
+ * Searchable string fields include attributes like Slug, DisplayName, and string-typed custom fields.
38609
+ *
38610
+ * For map fields (like Labels and Annotations), the search matches both map keys and values.
38611
+ *
38612
+ * The search uses OR logic across all searchable fields, so matching any field will return the entity.
38613
+ *
38614
+ * If both 'where' and 'contains' parameters are specified, they are combined with AND logic.
38615
+ *
38616
+ * Searchable fields for Unit include string and map-type attributes from the queryable attributes list.
38617
+ *
38618
+ * The whole string must be query-encoded.
38619
+ */
38620
+ contains?: string;
38621
+ /** @description Resource type: Resource type to match for the desired ToolchainType, for example apps/v1/Deployment */
38622
+ resource_type?: string;
38623
+ /** @description Where data: The specified string is an expression for the purpose of evaluating whether the configuration data matches the filter. It supports conjunctions using `AND` of relational expressions of the form *path* *operator* *literal*. The path specifications are dot-separated, for both map fields and array indices, as in `spec.template.spec.containers.0.image = 'ghcr.io/headlamp-k8s/headlamp:latest' AND spec.replicas > 1`. Path expressions support `*` for wildcard array or map segments and `?key=value` syntax for associative matches of array elements containing objects with a `key` attribute. Strings support the following operators: `<`, `>`, `<=`, `>=`, `=`, `!=`, `LIKE`, `ILIKE`, `~~`, `!~~`, `~`, `!~`, `~*`, `!~*`, `IN`, `NOT IN`. String pattern operators: `LIKE` and `~~` for pattern matching with `%` and `_` wildcards, `ILIKE` for case-insensitive pattern matching, `!~~` for NOT LIKE. String regex operators: `~` for regex matching, `~*` for case-insensitive regex, `!~` and `!~*` for regex not matching (case-sensitive and insensitive). Integers support the following operators: `<`, `>`, `<=`, `>=`, `=`, `!=`, `IN`, `NOT IN`. Boolean values support equality and inequality only. The `IN` and `NOT IN` operators accept a comma-separated list of values in parentheses, such as `spec.template.spec.containers.0.image#reference IN (':latest', ':arm64-latest')`. The syntax `.|` splits the path: the left side selects, and the right side is a property of what was selected. On the right side of a `.|`, and only there, `!=` is true when the property is absent: `spec.containers.*.|image != 'nginx'` selects the containers and asks that none of their images be nginx, which a container with no image satisfies. Everywhere else a path that is not present is not a match, `!=` included. String literals are quoted with single quotes, such as `'string'`. Integer and boolean literals are also supported for attributes of those types. The whole string must be query-encoded. */
38624
+ where_data?: string;
38625
+ /** @description Which engine answers where_data and resource_type: `sql` (the default) evaluates the expression against the stored resource projection in a single query, falling back to the function engine for the expressions it cannot translate; `function` invokes the where-filter function on each candidate Unit, reading every one's configuration; `shadow` runs both, answers with `function`, and logs any disagreement. Temporary: `function` is the escape hatch for one release, after which this parameter goes away. */
38626
+ where_data_engine?: string;
38627
+ /** @description Where expression to match Triggers. Matched triggers are invoked on each unit to filter by validation results. Use with triggers_passed to control whether passing or failing units are returned (default: failing). */
38628
+ where_trigger?: string;
38629
+ /** @description Filter UUID (with From=Trigger). The filter's matching triggers are invoked on units to filter by validation results. Can be combined with where_trigger. */
38630
+ trigger_filter?: string;
38631
+ /** @description When true, return units that pass trigger validation; when false (default), return units that fail. Only applies when where_trigger or trigger_filter is specified. */
38632
+ triggers_passed?: boolean;
38633
+ /** @description View slug or UUID. Applies the View's column definitions to extract values for each unit. If the View has a FilterID, its filter is ANDed with other filters. The View must have Of=Unit or a Filter with From=Unit. */
38634
+ view?: string;
38635
+ /** @description The Revision on the From side: a number, a Revision ID, HeadRevisionNum, LastReleasedRevisionNum, Tag:<id>, ChangeSet:<id>, or ChangeOrder:<id>, any of them optionally prefixed with Before:. */
38636
+ from?: string;
38637
+ /** @description The Revision on the To side, in the same syntax as from. */
38638
+ to?: string;
38639
+ /** @description Comma-separated: Attribution to attach to each changed path the To side's MutationSources entry, which says what set the new value, and Unchanged to also list resources with no changes. */
38640
+ include?: string;
38641
+ /** @description Limit the diff to the resources this where expression selects on either side. */
38642
+ where_resource?: string;
38643
+ };
38644
+ header?: never;
38645
+ path?: never;
38646
+ cookie?: never;
38647
+ };
38648
+ requestBody?: never;
38649
+ responses: {
38650
+ /** @description OK */
38651
+ 200: {
38652
+ headers: {
38653
+ [name: string]: unknown;
38654
+ };
38655
+ content: {
38656
+ "application/json": components["schemas"]["UnitDiff"][];
38657
+ };
38658
+ };
38659
+ /** @description Unit request is invalid (Bad Request). */
38660
+ 400: {
38661
+ headers: {
38662
+ [name: string]: unknown;
38663
+ };
38664
+ content: {
38665
+ "application/json": components["schemas"]["StandardErrorResponse"];
38666
+ };
38667
+ };
38668
+ /** @description Unauthorized access. */
38669
+ 401: {
38670
+ headers: {
38671
+ [name: string]: unknown;
38672
+ };
38673
+ content: {
38674
+ "application/json": components["schemas"]["StandardErrorResponse"];
38675
+ };
38676
+ };
38677
+ /** @description Forbidden access. */
38678
+ 403: {
38679
+ headers: {
38680
+ [name: string]: unknown;
38681
+ };
38682
+ content: {
38683
+ "application/json": components["schemas"]["StandardErrorResponse"];
38684
+ };
38685
+ };
38686
+ /** @description Unit not found. */
38687
+ 404: {
38688
+ headers: {
38689
+ [name: string]: unknown;
38690
+ };
38691
+ content: {
38692
+ "application/json": components["schemas"]["StandardErrorResponse"];
38693
+ };
38694
+ };
38695
+ /** @description Something went wrong while processing Unit. */
38696
+ 500: {
38697
+ headers: {
38698
+ [name: string]: unknown;
38699
+ };
38700
+ content: {
38701
+ "application/json": components["schemas"]["StandardErrorResponse"];
38702
+ };
38703
+ };
38704
+ /** @description Unexpected error. */
38705
+ default: {
38706
+ headers: {
38707
+ [name: string]: unknown;
38708
+ };
38709
+ content: {
38710
+ "application/json": components["schemas"]["StandardErrorResponse"];
38711
+ };
38712
+ };
38713
+ };
38714
+ };
38183
38715
  ListAllUnitEvents: {
38184
38716
  parameters: {
38185
38717
  query?: {
@@ -38544,7 +39076,7 @@ interface operations {
38544
39076
  query?: {
38545
39077
  /** @description Plan the upload and return the same response without writing anything. */
38546
39078
  dry_run?: boolean;
38547
- /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each Unit write changed, or on a dry run would change. It costs something to return, and on a dry run it runs the merges a plan otherwise skips, so it is returned only when named. */
39079
+ /** @description Comma-separated parts of the result to return in addition to the actions: Mutations for what each Unit write changed, or on a dry run would change, as entries of its MutationSources, and Diff for the same change path by path with the values on both sides. They cost something to return, and on a dry run either one runs the merges a plan otherwise skips, so they are returned only when named. */
38548
39080
  include?: string;
38549
39081
  };
38550
39082
  header?: never;