@geolens/sdk 1.17.0 → 1.19.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.
@@ -4,7 +4,7 @@ export type ClientOptions = {
4
4
  /**
5
5
  * AIAvailabilityResponse
6
6
  *
7
- * Public-safe AI readiness signal (builder-audit #338 P1-11).
7
+ * Public-safe AI readiness signal (#338).
8
8
  *
9
9
  * Carries a single boolean and intentionally exposes NO provider name, model,
10
10
  * or key detail — it is readable by any non-admin editor holding
@@ -405,6 +405,24 @@ export type AdminJobResponse = {
405
405
  */
406
406
  created_at: string;
407
407
  };
408
+ /**
409
+ * AdminPasswordReset
410
+ *
411
+ * Request body for POST /admin/users/{user_id}/reset-password/.
412
+ *
413
+ * Single-purpose for the same reason as SamlToLocalConversion above: the
414
+ * generic UserUpdate schema has no password field, so an admin-set password
415
+ * lands as its own audited action ('user.password_reset') rather than
416
+ * disappearing into 'user.update'.
417
+ */
418
+ export type AdminPasswordReset = {
419
+ /**
420
+ * Password
421
+ *
422
+ * Replacement password for the account (policy: min 12 chars, 3+ character classes, at most 72 bytes UTF-8). The user can change this after their next login.
423
+ */
424
+ password: string;
425
+ };
408
426
  /**
409
427
  * AdminShareTokenListResponse
410
428
  */
@@ -472,7 +490,7 @@ export type AdminUserCreate = {
472
490
  /**
473
491
  * Password
474
492
  *
475
- * Initial password (policy: min 12 chars, 3+ character classes). The user can change this after first login.
493
+ * Initial password (policy: min 12 chars, 3+ character classes, at most 72 bytes UTF-8). The user can change this after first login.
476
494
  */
477
495
  password: string;
478
496
  /**
@@ -806,6 +824,56 @@ export type ApproveRequest = {
806
824
  */
807
825
  role: string;
808
826
  };
827
+ /**
828
+ * ArcGISSignInRequest
829
+ *
830
+ * Portal address plus the credentials one generateToken call needs.
831
+ *
832
+ * No character policy on the two credential fields, deliberately. They are
833
+ * form-encoded into the outbound body, which percent-escapes every value,
834
+ * so neither a control character nor a separator can smuggle a second field
835
+ * into the request the way one can into a header line. The length bounds
836
+ * are here to keep an absurd body from reaching the portal at all.
837
+ */
838
+ export type ArcGisSignInRequest = {
839
+ /**
840
+ * Portal Url
841
+ *
842
+ * ArcGIS portal URL, for example https://your-org.maps.arcgis.com. The /sharing/rest base is accepted too.
843
+ */
844
+ portal_url: string;
845
+ /**
846
+ * Username
847
+ *
848
+ * ArcGIS account name to sign in with.
849
+ */
850
+ username: string;
851
+ /**
852
+ * Password
853
+ *
854
+ * Password for that ArcGIS account.
855
+ */
856
+ password: string;
857
+ };
858
+ /**
859
+ * ArcGISSignInResponse
860
+ *
861
+ * The minted portal token and nothing else about the account.
862
+ */
863
+ export type ArcGisSignInResponse = {
864
+ /**
865
+ * Token
866
+ *
867
+ * Short-lived ArcGIS portal token. Use it as the `token` field on probe, preview, commit and refresh.
868
+ */
869
+ token: string;
870
+ /**
871
+ * Expires At
872
+ *
873
+ * UTC instant at which the portal stops accepting the token.
874
+ */
875
+ expires_at: string;
876
+ };
809
877
  /**
810
878
  * AttributeMetadataListResponse
811
879
  */
@@ -983,6 +1051,28 @@ export type AuditLogResponse = {
983
1051
  */
984
1052
  created_at: string;
985
1053
  };
1054
+ /**
1055
+ * BackfillEstimate
1056
+ *
1057
+ * How long each backfill action should take, before starting one.
1058
+ *
1059
+ * Both figures come from the throughput of the most recent completed run, so
1060
+ * they describe this deployment's own provider rather than a generic rate.
1061
+ */
1062
+ export type BackfillEstimate = {
1063
+ /**
1064
+ * Missing Seconds
1065
+ *
1066
+ * Estimated seconds to embed the records that lack a usable vector.
1067
+ */
1068
+ missing_seconds: number;
1069
+ /**
1070
+ * All Seconds
1071
+ *
1072
+ * Estimated seconds to regenerate every record in the catalog.
1073
+ */
1074
+ all_seconds: number;
1075
+ };
986
1076
  /**
987
1077
  * BackfillResponse
988
1078
  *
@@ -1006,6 +1096,98 @@ export type BackfillResponse = {
1006
1096
  */
1007
1097
  status: string;
1008
1098
  };
1099
+ /**
1100
+ * BackfillRunProgress
1101
+ *
1102
+ * The embedding backfill run currently holding the single run slot.
1103
+ */
1104
+ export type BackfillRunProgress = {
1105
+ /**
1106
+ * Job Id
1107
+ *
1108
+ * Identifier of the run in flight.
1109
+ */
1110
+ job_id: string;
1111
+ /**
1112
+ * Status
1113
+ *
1114
+ * Job status: 'pending' or 'running'.
1115
+ */
1116
+ status: string;
1117
+ /**
1118
+ * Records Processed
1119
+ *
1120
+ * Records the run has embedded so far.
1121
+ */
1122
+ records_processed: number;
1123
+ /**
1124
+ * Records Total
1125
+ *
1126
+ * Records the run will embed in total. Null until the run has selected its records.
1127
+ */
1128
+ records_total?: number | null;
1129
+ /**
1130
+ * Started At
1131
+ *
1132
+ * When a worker picked the run up.
1133
+ */
1134
+ started_at?: string | null;
1135
+ /**
1136
+ * Heartbeat At
1137
+ *
1138
+ * Last time the running worker renewed its lease.
1139
+ */
1140
+ heartbeat_at?: string | null;
1141
+ };
1142
+ /**
1143
+ * BackfillRunSummary
1144
+ *
1145
+ * One finished embedding backfill run.
1146
+ */
1147
+ export type BackfillRunSummary = {
1148
+ /**
1149
+ * Job Id
1150
+ *
1151
+ * Identifier of the finished run.
1152
+ */
1153
+ job_id: string;
1154
+ /**
1155
+ * Status
1156
+ *
1157
+ * How the run ended: 'complete', 'failed' or 'cancelled'.
1158
+ */
1159
+ status: string;
1160
+ /**
1161
+ * Started At
1162
+ *
1163
+ * When a worker picked the run up.
1164
+ */
1165
+ started_at?: string | null;
1166
+ /**
1167
+ * Finished At
1168
+ *
1169
+ * When the run reached its final status.
1170
+ */
1171
+ finished_at?: string | null;
1172
+ /**
1173
+ * Records Processed
1174
+ *
1175
+ * Records the run embedded.
1176
+ */
1177
+ records_processed: number;
1178
+ /**
1179
+ * Records Failed
1180
+ *
1181
+ * Records the run could not embed, when the run recorded a count. A finished run with a non-zero figure here left coverage gaps.
1182
+ */
1183
+ records_failed?: number | null;
1184
+ /**
1185
+ * Error Code
1186
+ *
1187
+ * Short code identifying how a run failed, when it failed.
1188
+ */
1189
+ error_code?: string | null;
1190
+ };
1009
1191
  /**
1010
1192
  * BasemapConfig
1011
1193
  */
@@ -1051,13 +1233,13 @@ export type BasemapConfig = {
1051
1233
  /**
1052
1234
  * Sublayer Overrides
1053
1235
  *
1054
- * Per-sublayer style overrides keyed by semantic sublayer ID (e.g. 'road', 'boundary', 'building'). Key set is opaque unknown future sublayer IDs are accepted without rejection. See CONTEXT.md D-01.
1236
+ * Per-sublayer style overrides keyed by semantic sublayer ID (e.g. 'road', 'boundary', 'building'). The key set is opaque: a sublayer ID this release does not know is accepted and stored rather than rejected.
1055
1237
  */
1056
1238
  sublayer_overrides?: {
1057
1239
  [key: string]: SublayerOverride;
1058
1240
  } | null;
1059
1241
  /**
1060
- * Whether the basemap renders above ('top') or below ('bottom', default) the data layers. null/undefined loads as 'bottom' on the client. Phase 1051 UX-03 (jsonb-additive, no migration).
1242
+ * Whether the basemap renders above ('top') or below ('bottom', default) the data layers. null/undefined loads as 'bottom' on the client.
1061
1243
  */
1062
1244
  basemap_position?: BasemapPosition | null;
1063
1245
  /**
@@ -1311,6 +1493,10 @@ export type BulkDeleteResultItem = {
1311
1493
  * Detail
1312
1494
  */
1313
1495
  detail?: string | null;
1496
+ /**
1497
+ * Code
1498
+ */
1499
+ code?: string | null;
1314
1500
  };
1315
1501
  /**
1316
1502
  * BulkRegisterItem
@@ -1480,7 +1666,7 @@ export type ChangePasswordRequest = {
1480
1666
  /**
1481
1667
  * New Password
1482
1668
  *
1483
- * New password (policy: min 12 chars, 3+ character classes: lowercase, uppercase, digits, symbols). The min_length=8 here is a schema floor; the runtime validator enforces the full policy.
1669
+ * New password (policy: min 12 chars, 3+ character classes: lowercase, uppercase, digits, symbols; at most 72 bytes UTF-8). The min_length=8 here is a schema floor; the runtime validator enforces the full policy.
1484
1670
  */
1485
1671
  new_password: string;
1486
1672
  };
@@ -2107,7 +2293,7 @@ export type CommitRequest = {
2107
2293
  /**
2108
2294
  * Token
2109
2295
  *
2110
- * Optional confirmation token returned by the preview step. Required for some workflows.
2296
+ * Optional auth token for a protected remote service, read only when the job imports a service layer (WFS, OGC API Features, or ArcGIS). At most 1000 characters. Never persisted to the database. Ignored on file-upload jobs. Deprecated: use the auth object with method bearer.
2111
2297
  */
2112
2298
  token?: string | null;
2113
2299
  /**
@@ -2164,6 +2350,16 @@ export type CommitRequest = {
2164
2350
  * CSV/Excel only: name of the WKT geometry column (alternative to x_column/y_column).
2165
2351
  */
2166
2352
  geom_column?: string | null;
2353
+ /**
2354
+ * Structured credential for a protected service. Mutually exclusive with the token field.
2355
+ */
2356
+ auth?: ServiceAuthRequest | null;
2357
+ /**
2358
+ * Strict Cog
2359
+ *
2360
+ * Raster only: reject a non-COG TIFF instead of converting it. False (the default) converts the source to a COG during ingest. True fails the job when the source is not already a compliant COG, and cannot be combined with resampling, nodata_override, srid_override or a compression other than the default DEFLATE: each of those is applied by a conversion, so the commit is refused with a 422 naming the fields that clash.
2361
+ */
2362
+ strict_cog?: boolean;
2167
2363
  };
2168
2364
  /**
2169
2365
  * CommitResponse
@@ -2847,9 +3043,13 @@ export type DatasetRefreshRequest = {
2847
3043
  /**
2848
3044
  * Token
2849
3045
  *
2850
- * Transient credential for a protected service. Used for this refresh only and never persisted: it is handed to the worker through a single-use, short-lived reference and is gone once claimed. A retry needs a new token.
3046
+ * Transient credential for a protected service. Used for this refresh only and never persisted: it is handed to the worker through a single-use, short-lived reference and is gone once claimed. A retry needs a new token. Deprecated: use the auth object with method bearer.
2851
3047
  */
2852
3048
  token?: string | null;
3049
+ /**
3050
+ * Structured credential for a protected service. Mutually exclusive with the token field.
3051
+ */
3052
+ auth?: ServiceAuthRequest | null;
2853
3053
  };
2854
3054
  /**
2855
3055
  * DatasetRefreshResponse
@@ -3038,7 +3238,7 @@ export type DatasetRelationshipCreate = {
3038
3238
  /**
3039
3239
  * DatasetRelationshipListResponse
3040
3240
  *
3041
- * Paginated list envelope for dataset FK relationships (GAP-033).
3241
+ * Paginated list envelope for dataset FK relationships.
3042
3242
  *
3043
3243
  * Mirrors the ``{<entity>: [...], total: int}`` convention used by every other
3044
3244
  * paginated list endpoint (e.g. AttributeMetadataListResponse,
@@ -3283,7 +3483,7 @@ export type DatasetResponse = {
3283
3483
  /**
3284
3484
  * Source Health Detail
3285
3485
  *
3286
- * Why the origin is not healthy, as one of a fixed set of GeoLens codes: blocked_by_policy, item_withdrawn, network_error, not_found, server_error, timeout, unauthorized, unexpected_status. Null when healthy or never probed. Never provider text, a URL, or a response body — nothing the origin sent is stored here.
3486
+ * Why the origin is not healthy, as one of a fixed set of GeoLens codes: auth_required, blocked_by_policy, item_withdrawn, network_error, not_found, server_error, timeout, unauthorized, unexpected_status. Null when healthy or never probed. Never provider text, a URL, or a response body — nothing the origin sent is stored here.
3287
3487
  */
3288
3488
  source_health_detail?: string | null;
3289
3489
  /**
@@ -4161,6 +4361,20 @@ export type EmbeddingStatsResponse = {
4161
4361
  * Embedding coverage as a percentage (0-100).
4162
4362
  */
4163
4363
  coverage_percent: number;
4364
+ /**
4365
+ * The backfill run in flight, or null when none is running.
4366
+ */
4367
+ current_run?: BackfillRunProgress | null;
4368
+ /**
4369
+ * Recent Runs
4370
+ *
4371
+ * The most recent finished backfill runs, newest first.
4372
+ */
4373
+ recent_runs?: Array<BackfillRunSummary>;
4374
+ /**
4375
+ * Expected duration of each backfill action, or null until one run has completed and measured this deployment's throughput.
4376
+ */
4377
+ estimate?: BackfillEstimate | null;
4164
4378
  };
4165
4379
  /**
4166
4380
  * EnterpriseTabsResponse
@@ -4695,7 +4909,7 @@ export type JobStatusResponse = {
4695
4909
  /**
4696
4910
  * Current Step
4697
4911
  */
4698
- current_step?: 'queued' | 'validating' | 'ogr2ogr' | 'finalize' | 'complete' | 'cog_convert' | 'quicklook' | 'analyzing' | 'registering' | null;
4912
+ current_step?: 'queued' | 'downloading' | 'validating' | 'ogr2ogr' | 'finalize' | 'complete' | 'cog_convert' | 'quicklook' | 'analyzing' | 'registering' | null;
4699
4913
  /**
4700
4914
  * Rows Processed
4701
4915
  */
@@ -4902,7 +5116,7 @@ export type LayerInfo = {
4902
5116
  /**
4903
5117
  * Kind
4904
5118
  *
4905
- * Backend-classified layer kind. 'vector' = point/line/polygon feature data. 'raster' = imagery/coverage. Per Phase 1057 CLASS-07 D-09. Classification rule: raster IFF geometry_type contains 'raster', adapter is STAC, or layer has coverage_format/bands/mediaType:image*. Everything else (including geometry_type=None after D-05 ogrinfo drop) defaults to 'vector'.
5119
+ * Backend-classified layer kind. 'vector' = point/line/polygon feature data. 'raster' = imagery/coverage. Classified as 'raster' when geometry_type contains 'raster', the adapter is STAC, the layer declares coverage_format or bands, or one of its links has a media type of image*. Everything else, including a layer with no geometry_type at all, defaults to 'vector'.
4906
5120
  */
4907
5121
  kind?: 'vector' | 'raster';
4908
5122
  };
@@ -5139,6 +5353,10 @@ export type ManifestSource = {
5139
5353
  * Layer
5140
5354
  */
5141
5355
  layer?: string | null;
5356
+ /**
5357
+ * Checksum
5358
+ */
5359
+ checksum?: string | null;
5142
5360
  };
5143
5361
  /**
5144
5362
  * MapAccessResponse
@@ -5676,6 +5894,10 @@ export type MapLayerResponse = {
5676
5894
  * Tile Version
5677
5895
  */
5678
5896
  tile_version?: number | null;
5897
+ /**
5898
+ * Publication Version
5899
+ */
5900
+ publication_version?: number | null;
5679
5901
  /**
5680
5902
  * Dataset Visibility
5681
5903
  */
@@ -5822,7 +6044,7 @@ export type MapSpriteEntry = {
5822
6044
  /**
5823
6045
  * MapStyleImportRequest
5824
6046
  *
5825
- * Typed request body for POST /maps/import — API-01 / M-05.
6047
+ * Typed request body for POST /maps/import.
5826
6048
  *
5827
6049
  * Mirrors the top-level keys of the MapLibre Style Specification that
5828
6050
  * ``parse_maplibre_style_import`` actually reads. ``extra="allow"`` keeps
@@ -5940,6 +6162,12 @@ export type MapStyleImportSummary = {
5940
6162
  * Warnings
5941
6163
  */
5942
6164
  warnings?: Array<MapStyleImportWarning>;
6165
+ /**
6166
+ * Warnings Truncated
6167
+ *
6168
+ * Warnings produced beyond the reported list
6169
+ */
6170
+ warnings_truncated?: number;
5943
6171
  };
5944
6172
  /**
5945
6173
  * MapStyleImportWarning
@@ -6087,7 +6315,7 @@ export type MapUpdate = {
6087
6315
  /**
6088
6316
  * Legend Title
6089
6317
  *
6090
- * Custom map-level legend title. Null/empty leaves the legend without a heading override (ENH-06).
6318
+ * Custom map-level legend title. Null or empty leaves the legend without a heading override. At most 120 characters.
6091
6319
  */
6092
6320
  legend_title?: string | null;
6093
6321
  };
@@ -6149,7 +6377,7 @@ export type MetadataAssistRequest = {
6149
6377
  /**
6150
6378
  * NotificationStatusResponse
6151
6379
  *
6152
- * Response for GET /settings/notifications/status/ (NOTIF-05 / NOTIF-06).
6380
+ * Response for GET /settings/notifications/status/.
6153
6381
  *
6154
6382
  * Returns only boolean presence flags — never a secret value (SMTP password,
6155
6383
  * webhook URL, or webhook secret).
@@ -6180,8 +6408,7 @@ export type NotificationStatusResponse = {
6180
6408
  * Per-channel result from POST /settings/notifications/test/.
6181
6409
  *
6182
6410
  * The ``error`` field contains only the exception type name and a short
6183
- * safe message — never the SMTP password, webhook URL, or webhook secret
6184
- * (T-1229-09 / NOTIF-05).
6411
+ * safe message — never the SMTP password, webhook URL, or webhook secret.
6185
6412
  */
6186
6413
  export type NotificationTestChannelResult = {
6187
6414
  /**
@@ -6206,11 +6433,11 @@ export type NotificationTestChannelResult = {
6206
6433
  /**
6207
6434
  * NotificationTestResponse
6208
6435
  *
6209
- * Response for POST /settings/notifications/test/ (NOTIF-06).
6436
+ * Response for POST /settings/notifications/test/.
6210
6437
  *
6211
6438
  * Always returns HTTP 200 — a channel delivery failure is captured in the
6212
6439
  * per-channel ``channels`` list rather than as a 5xx. Never contains secret
6213
- * values (T-1229-09 / NOTIF-05).
6440
+ * values.
6214
6441
  */
6215
6442
  export type NotificationTestResponse = {
6216
6443
  /**
@@ -6386,10 +6613,10 @@ export type OAuthProviderPublic = {
6386
6613
  * The 3 non-secret SAML fields (``idp_entity_id``, ``idp_sso_url``,
6387
6614
  * ``sp_entity_id``) ARE exposed so the admin UI can display them.
6388
6615
  *
6389
- * Pitfall 11 interaction: those 3 fields are declared with ``deferred=True``
6390
- * on the OAuth ORM model so community DBs (which lack the columns) do not
6391
- * crash on SELECT. Pydantic's ``from_attributes=True`` would normally trigger
6392
- * an implicit deferred load on attribute access, which fails under FastAPI's
6616
+ * Those 3 fields are declared with ``deferred=True`` on the OAuth ORM
6617
+ * model so community DBs (which lack the columns) do not crash on
6618
+ * SELECT. Pydantic's ``from_attributes=True`` would normally trigger an
6619
+ * implicit deferred load on attribute access, which fails under FastAPI's
6393
6620
  * async context with ``MissingGreenlet``. The ``model_validator(mode="before")``
6394
6621
  * below reads the SAML fields directly from ``obj.__dict__`` so unloaded
6395
6622
  * attributes default to None instead of triggering IO. SAML admin endpoints
@@ -6828,6 +7055,41 @@ export type OgcLink = {
6828
7055
  */
6829
7056
  title?: string | null;
6830
7057
  };
7058
+ /**
7059
+ * OGCRasterBand
7060
+ *
7061
+ * One entry in the raster:bands STAC extension array.
7062
+ *
7063
+ * fix(#1805 review round 3 P2): matches the shape service_records.py
7064
+ * actually serializes per band. `statistics` matches the normalized
7065
+ * band_info shape core/raster_bands.py (introduced by #1803, the raster
7066
+ * lifecycle PR) produces on read; keep this in sync if that PR changes
7067
+ * the per-band keys.
7068
+ */
7069
+ export type OgcRasterBand = {
7070
+ /**
7071
+ * Name
7072
+ */
7073
+ name?: string | null;
7074
+ /**
7075
+ * Data Type
7076
+ */
7077
+ data_type?: string | null;
7078
+ /**
7079
+ * Nodata
7080
+ */
7081
+ nodata?: string | number | number | null;
7082
+ /**
7083
+ * Statistics
7084
+ */
7085
+ statistics?: {
7086
+ [key: string]: unknown;
7087
+ } | null;
7088
+ /**
7089
+ * Description
7090
+ */
7091
+ description?: string | null;
7092
+ };
6831
7093
  /**
6832
7094
  * OGCRecordLink
6833
7095
  *
@@ -7033,6 +7295,14 @@ export type OgcRecordProperties = {
7033
7295
  * Gsd
7034
7296
  */
7035
7297
  gsd?: number | null;
7298
+ /**
7299
+ * Res X
7300
+ */
7301
+ res_x?: number | null;
7302
+ /**
7303
+ * Res Y
7304
+ */
7305
+ res_y?: number | null;
7036
7306
  /**
7037
7307
  * Crs Is Geographic
7038
7308
  *
@@ -7051,6 +7321,23 @@ export type OgcRecordProperties = {
7051
7321
  * Dataset Count
7052
7322
  */
7053
7323
  dataset_count?: number | null;
7324
+ /**
7325
+ * Proj:Code
7326
+ */
7327
+ 'proj:code'?: string | null;
7328
+ /**
7329
+ * Proj:Shape
7330
+ *
7331
+ * [height, width] in pixels.
7332
+ */
7333
+ 'proj:shape'?: [
7334
+ number,
7335
+ number
7336
+ ] | null;
7337
+ /**
7338
+ * Raster:Bands
7339
+ */
7340
+ 'raster:bands'?: Array<OgcRasterBand> | null;
7054
7341
  };
7055
7342
  /**
7056
7343
  * OGCRecordResponse
@@ -7101,7 +7388,7 @@ export type OgcRecordResponse = {
7101
7388
  /**
7102
7389
  * OgImageUploadRequest
7103
7390
  *
7104
- * JSON body for PUT /maps/{map_id}/og-image/ (SHARE-08 Path A).
7391
+ * JSON body for PUT /maps/{map_id}/og-image/.
7105
7392
  *
7106
7393
  * Accepts a base64 data URI up to 750 KB (as a string). This generous
7107
7394
  * ceiling accommodates a 1200x630 JPEG at quality 0.85, which encodes
@@ -7111,7 +7398,7 @@ export type OgcRecordResponse = {
7111
7398
  * empty/clearly-malformed URIs without false-positives.
7112
7399
  * - ``max_length=750_000``: ~562 KB decoded — generous for 1200x630 JPEG.
7113
7400
  * DO NOT raise ThumbnailUploadRequest.max_length to match this value;
7114
- * the 100KB thumbnail cap is a locked contract (Phase 254 / D-03).
7401
+ * the 100KB thumbnail cap is a locked contract.
7115
7402
  */
7116
7403
  export type OgImageUploadRequest = {
7117
7404
  /**
@@ -7324,9 +7611,13 @@ export type ProbeRequest = {
7324
7611
  /**
7325
7612
  * Token
7326
7613
  *
7327
- * Optional auth token for protected services (passed as query parameter or bearer token depending on service type).
7614
+ * Optional auth token for protected services (passed as query parameter or bearer token depending on service type). Deprecated: use the auth object with method bearer.
7328
7615
  */
7329
7616
  token?: string | null;
7617
+ /**
7618
+ * Structured credential for a protected service. Mutually exclusive with the token field.
7619
+ */
7620
+ auth?: ServiceAuthRequest | null;
7330
7621
  };
7331
7622
  /**
7332
7623
  * ProbeResponse
@@ -7924,14 +8215,26 @@ export type ReuploadCommitRequest = {
7924
8215
  * Srid Override
7925
8216
  */
7926
8217
  srid_override?: number | null;
8218
+ /**
8219
+ * Expected Origin Kind
8220
+ *
8221
+ * The dataset origin the client saw when it staged this replacement. When set, the commit is refused with 409 `origin_changed` if the dataset's origin no longer matches, so a service, STAC or registered-table binding established after the upload is not silently rebound to an upload. Optional: a client that omits it keeps the pre-#1768 behaviour.
8222
+ */
8223
+ expected_origin_kind?: 'upload' | 'postgis' | 'service' | 'stac' | 'created' | null;
7927
8224
  /**
7928
8225
  * Token
8226
+ *
8227
+ * Deprecated: use the auth object with method bearer.
7929
8228
  */
7930
8229
  token?: string | null;
7931
8230
  /**
7932
8231
  * Layer Name
7933
8232
  */
7934
8233
  layer_name?: string | null;
8234
+ /**
8235
+ * Structured credential for a protected service. Mutually exclusive with the token field.
8236
+ */
8237
+ auth?: ServiceAuthRequest | null;
7935
8238
  };
7936
8239
  /**
7937
8240
  * ReuploadCommitResponse
@@ -8052,12 +8355,18 @@ export type ReuploadServicePreviewRequest = {
8052
8355
  layer_id?: number | string | null;
8053
8356
  /**
8054
8357
  * Token
8358
+ *
8359
+ * Deprecated: use the auth object with method bearer.
8055
8360
  */
8056
8361
  token?: string | null;
8057
8362
  /**
8058
8363
  * Object Id Field
8059
8364
  */
8060
8365
  object_id_field?: string | null;
8366
+ /**
8367
+ * Structured credential for a protected service. Mutually exclusive with the token field.
8368
+ */
8369
+ auth?: ServiceAuthRequest | null;
8061
8370
  };
8062
8371
  /**
8063
8372
  * SSEActionsEvent
@@ -8338,9 +8647,52 @@ export type SchemaDiff = {
8338
8647
  /**
8339
8648
  * Row Count Delta
8340
8649
  *
8341
- * row_count_new minus row_count_old
8650
+ * row_count_new minus row_count_old, or null when either side is unknown
8651
+ */
8652
+ row_count_delta: number | null;
8653
+ };
8654
+ /**
8655
+ * ServiceAuthRequest
8656
+ *
8657
+ * How one request authenticates to the remote service it names.
8658
+ */
8659
+ export type ServiceAuthRequest = {
8660
+ /**
8661
+ * Method
8662
+ *
8663
+ * How the credential is presented to the remote service. Omit the whole auth object for a public service.
8664
+ */
8665
+ method: 'bearer' | 'basic' | 'header';
8666
+ /**
8667
+ * Token
8668
+ *
8669
+ * Bearer token or API key, for method bearer.
8670
+ */
8671
+ token?: string | null;
8672
+ /**
8673
+ * Username
8674
+ *
8675
+ * Username, for method basic.
8676
+ */
8677
+ username?: string | null;
8678
+ /**
8679
+ * Password
8680
+ *
8681
+ * Password, for method basic.
8682
+ */
8683
+ password?: string | null;
8684
+ /**
8685
+ * Header Name
8686
+ *
8687
+ * Name of the header the key is sent under, for method header.
8688
+ */
8689
+ header_name?: string | null;
8690
+ /**
8691
+ * Header Value
8692
+ *
8693
+ * Value of the header the key is sent under, for method header.
8342
8694
  */
8343
- row_count_delta: number;
8695
+ header_value?: string | null;
8344
8696
  };
8345
8697
  /**
8346
8698
  * ServiceHealth
@@ -8396,7 +8748,7 @@ export type ServicePreviewRequest = {
8396
8748
  /**
8397
8749
  * Token
8398
8750
  *
8399
- * Optional auth token for protected services.
8751
+ * Optional auth token for protected services. Deprecated: use the auth object with method bearer.
8400
8752
  */
8401
8753
  token?: string | null;
8402
8754
  /**
@@ -8405,6 +8757,10 @@ export type ServicePreviewRequest = {
8405
8757
  * ArcGIS OID field name used for orderByFields during preview pagination.
8406
8758
  */
8407
8759
  object_id_field?: string | null;
8760
+ /**
8761
+ * Structured credential for a protected service. Mutually exclusive with the token field.
8762
+ */
8763
+ auth?: ServiceAuthRequest | null;
8408
8764
  };
8409
8765
  /**
8410
8766
  * ServicePreviewResponse
@@ -8822,7 +9178,7 @@ export type SourceHealthResponse = {
8822
9178
  /**
8823
9179
  * Source Health Detail
8824
9180
  *
8825
- * Why the origin is not healthy, as one of a fixed set of GeoLens codes: blocked_by_policy, item_withdrawn, network_error, not_found, server_error, timeout, unauthorized, unexpected_status. Null when healthy or never probed. Never provider text, a URL, or a response body — nothing the origin sent is stored here.
9181
+ * Why the origin is not healthy, as one of a fixed set of GeoLens codes: auth_required, blocked_by_policy, item_withdrawn, network_error, not_found, server_error, timeout, unauthorized, unexpected_status. Null when healthy or never probed. Never provider text, a URL, or a response body — nothing the origin sent is stored here.
8826
9182
  */
8827
9183
  source_health_detail?: string | null;
8828
9184
  /**
@@ -9086,6 +9442,16 @@ export type StacConnectRequest = {
9086
9442
  * STAC API root URL to connect to.
9087
9443
  */
9088
9444
  url: string;
9445
+ /**
9446
+ * Token
9447
+ *
9448
+ * Optional auth token for a protected STAC catalog. Deprecated: use the auth object with method bearer.
9449
+ */
9450
+ token?: string | null;
9451
+ /**
9452
+ * Structured credential for a protected service. Mutually exclusive with the token field.
9453
+ */
9454
+ auth?: ServiceAuthRequest | null;
9089
9455
  };
9090
9456
  /**
9091
9457
  * StacConnectResponse
@@ -9241,6 +9607,12 @@ export type StacImportRequest = {
9241
9607
  * Visibility for imported datasets.
9242
9608
  */
9243
9609
  visibility?: 'private' | 'restricted' | 'internal' | 'public';
9610
+ /**
9611
+ * Catalog Auth Required
9612
+ *
9613
+ * Whether browsing this catalog needed a credential. Set it when the search that produced these items carried one, so the first refresh asks for a credential instead of failing anonymously.
9614
+ */
9615
+ catalog_auth_required?: boolean;
9244
9616
  };
9245
9617
  /**
9246
9618
  * StacImportResponse
@@ -9694,6 +10066,16 @@ export type StacSearchRequest = {
9694
10066
  * Maximum items to return.
9695
10067
  */
9696
10068
  limit?: number;
10069
+ /**
10070
+ * Token
10071
+ *
10072
+ * Optional auth token for a protected STAC catalog. Deprecated: use the auth object with method bearer.
10073
+ */
10074
+ token?: string | null;
10075
+ /**
10076
+ * Structured credential for a protected service. Mutually exclusive with the token field.
10077
+ */
10078
+ auth?: ServiceAuthRequest | null;
9697
10079
  };
9698
10080
  /**
9699
10081
  * StacSearchResponse
@@ -9810,12 +10192,12 @@ export type StatusUpdateResponse = {
9810
10192
  * validation time (Pydantic ``ge``/``le`` constraints).
9811
10193
  *
9812
10194
  * The key set of ``BasemapConfig.sublayer_overrides`` is treated as opaque
9813
- * (forward-compatible with future sublayer IDs) — see CONTEXT.md D-01.
10195
+ * (forward-compatible with future sublayer IDs).
9814
10196
  *
9815
10197
  * Security:
9816
- * extra="forbid" locks the D-14 scope guardrail: unknown style axes such
9817
- * as dash patterns, line caps, halo blur, and text-font are rejected at
9818
- * validation time (T-1059A-03).
10198
+ * extra="forbid" locks the scope guardrail: unknown style axes such as
10199
+ * dash patterns, line caps, halo blur, and text-font are rejected at
10200
+ * validation time.
9819
10201
  */
9820
10202
  export type SublayerOverride = {
9821
10203
  /**
@@ -9857,7 +10239,7 @@ export type SublayerOverride = {
9857
10239
  /**
9858
10240
  * Opacity
9859
10241
  *
9860
- * Per-sublayer opacity (0-1), or null to use the basemap default. Composes on top of BasemapConfig.opacity (the whole-basemap master opacity): the rendered opacity is override.opacity * master_opacity (builder-audit #338 CORR-01). The UI opacity slider in BasemapSublayerEditorScene persists through this field: MapBuilderPage.handleSublayerOpacityChange -> setBasemapSublayerOpacity -> updateBasemapSublayerOverride writes config.sublayer_overrides[key].opacity.
10242
+ * Per-sublayer opacity (0-1), or null to use the basemap default. Composes on top of BasemapConfig.opacity (the whole-basemap master opacity): the rendered opacity is override.opacity * master_opacity (#338). The UI opacity slider in BasemapSublayerEditorScene persists through this field: MapBuilderPage.handleSublayerOpacityChange -> setBasemapSublayerOpacity -> updateBasemapSublayerOverride writes config.sublayer_overrides[key].opacity.
9861
10243
  */
9862
10244
  opacity?: number | null;
9863
10245
  };
@@ -9920,9 +10302,9 @@ export type TerrainConfig = {
9920
10302
  * JSON body for PUT /maps/{map_id}/thumbnail/.
9921
10303
  *
9922
10304
  * Replaces a previous text/plain body shape that openapi-python-client
9923
- * could not parse (would silently skip endpoint). See Phase 254 / SDK-01.
10305
+ * could not parse (would silently skip endpoint).
9924
10306
  *
9925
- * Phase 254 IN-02: ``data_uri`` carries explicit length bounds so
10307
+ * ``data_uri`` carries explicit length bounds so
9926
10308
  * Pydantic surfaces a 422 with field-level detail (better SDK-consumer
9927
10309
  * UX than a generic 400) and the OpenAPI schema documents the limit.
9928
10310
  * The router still validates the ``data:image/`` prefix and base64
@@ -10150,7 +10532,7 @@ export type UploadResponse = {
10150
10532
  /**
10151
10533
  * Status
10152
10534
  *
10153
- * Initial job status. Always 'pending' on creation.
10535
+ * Initial job status. 'pending' means the file is staged and ready to preview; 'running' means the server is still fetching it, as it is for a URL import.
10154
10536
  */
10155
10537
  status?: string;
10156
10538
  /**
@@ -10196,7 +10578,7 @@ export type UserCreate = {
10196
10578
  /**
10197
10579
  * Password
10198
10580
  *
10199
- * Plaintext password (policy: min 12 chars, 3+ character classes)
10581
+ * Plaintext password (policy: min 12 chars, 3+ character classes, at most 72 bytes UTF-8)
10200
10582
  */
10201
10583
  password: string;
10202
10584
  /**
@@ -10910,6 +11292,10 @@ export type CreateApiKeyAdminApiKeysPostErrors = {
10910
11292
  * Not found
10911
11293
  */
10912
11294
  404: ProblemDetail;
11295
+ /**
11296
+ * Conflict — resource state prevents the operation
11297
+ */
11298
+ 409: ProblemDetail;
10913
11299
  /**
10914
11300
  * Validation error
10915
11301
  */
@@ -12256,6 +12642,59 @@ export type RejectUserAdminUsersUserIdRejectPostResponses = {
12256
12642
  204: void;
12257
12643
  };
12258
12644
  export type RejectUserAdminUsersUserIdRejectPostResponse = RejectUserAdminUsersUserIdRejectPostResponses[keyof RejectUserAdminUsersUserIdRejectPostResponses];
12645
+ export type ResetUserPasswordAdminUsersUserIdResetPasswordPostData = {
12646
+ body: AdminPasswordReset;
12647
+ path: {
12648
+ /**
12649
+ * User Id
12650
+ */
12651
+ user_id: string;
12652
+ };
12653
+ query?: never;
12654
+ url: '/admin/users/{user_id}/reset-password/';
12655
+ };
12656
+ export type ResetUserPasswordAdminUsersUserIdResetPasswordPostErrors = {
12657
+ /**
12658
+ * Bad request — invalid query parameters or payload
12659
+ */
12660
+ 400: ProblemDetail;
12661
+ /**
12662
+ * Unauthorized — missing or invalid credentials
12663
+ */
12664
+ 401: ProblemDetail;
12665
+ /**
12666
+ * Forbidden — caller lacks access to this resource
12667
+ */
12668
+ 403: ProblemDetail;
12669
+ /**
12670
+ * Not found
12671
+ */
12672
+ 404: ProblemDetail;
12673
+ /**
12674
+ * Validation error
12675
+ */
12676
+ 422: ProblemDetail;
12677
+ /**
12678
+ * Too many requests — retry after the advertised interval
12679
+ */
12680
+ 429: ProblemDetail;
12681
+ /**
12682
+ * Internal server error
12683
+ */
12684
+ 500: ProblemDetail;
12685
+ /**
12686
+ * Service unavailable — the database could not serve the request
12687
+ */
12688
+ 503: ProblemDetail;
12689
+ };
12690
+ export type ResetUserPasswordAdminUsersUserIdResetPasswordPostError = ResetUserPasswordAdminUsersUserIdResetPasswordPostErrors[keyof ResetUserPasswordAdminUsersUserIdResetPasswordPostErrors];
12691
+ export type ResetUserPasswordAdminUsersUserIdResetPasswordPostResponses = {
12692
+ /**
12693
+ * Successful Response
12694
+ */
12695
+ 200: UserResponse;
12696
+ };
12697
+ export type ResetUserPasswordAdminUsersUserIdResetPasswordPostResponse = ResetUserPasswordAdminUsersUserIdResetPasswordPostResponses[keyof ResetUserPasswordAdminUsersUserIdResetPasswordPostResponses];
12259
12698
  export type AiAvailabilityEndpointAiAvailabilityGetData = {
12260
12699
  body?: never;
12261
12700
  path?: never;
@@ -14709,7 +15148,7 @@ export type GetCollectionItemsCollectionsDatasetIdItemsGetData = {
14709
15148
  /**
14710
15149
  * After Gid
14711
15150
  *
14712
- * Keyset cursor: returns features with gid > after_gid. Phase 269 H-24 primary pagination path; use the rel=next link for follow-up pages.
15151
+ * Keyset cursor: returns features with gid > after_gid. The preferred pagination path; use the rel=next link for follow-up pages.
14713
15152
  */
14714
15153
  after_gid?: number | null;
14715
15154
  /**
@@ -14757,7 +15196,7 @@ export type GetCollectionItemsCollectionsDatasetIdItemsGetData = {
14757
15196
  };
14758
15197
  export type GetCollectionItemsCollectionsDatasetIdItemsGetErrors = {
14759
15198
  /**
14760
- * Bad request invalid query parameters or payload
15199
+ * Bad request. Either a query parameter is invalid, or the `filter` was refused. A CQL2 filter is refused when it names a queryable this collection does not publish, or uses an operator this server does not implement; when it is longer than 10,000 characters; when it nests deeper than the parser will walk; or when it expands to more than 1,000 bound parameters. The last two are resource bounds rather than syntax errors, so the filter can be valid CQL2 and still be declined: an `IN` list reaches the parameter ceiling well before the character limit, since `render_postcompile` expands it to one parameter per member. Both are answered deterministically, so a client that splits the filter and pages the results gets the same rows.
14761
15200
  */
14762
15201
  400: ProblemDetail;
14763
15202
  /**
@@ -16653,6 +17092,10 @@ export type DownloadCogDatasetsDatasetIdDownloadCogGetErrors = {
16653
17092
  * Not found
16654
17093
  */
16655
17094
  404: ProblemDetail;
17095
+ /**
17096
+ * Precondition failed — the caller's If-Match no longer matches the current representation
17097
+ */
17098
+ 412: ProblemDetail;
16656
17099
  /**
16657
17100
  * Validation error
16658
17101
  */
@@ -16728,6 +17171,10 @@ export type ExportDatasetEndpointDatasetsDatasetIdExportGetErrors = {
16728
17171
  * Not found
16729
17172
  */
16730
17173
  404: ProblemDetail;
17174
+ /**
17175
+ * Precondition failed — the caller's If-Match no longer matches the current representation
17176
+ */
17177
+ 412: ProblemDetail;
16731
17178
  /**
16732
17179
  * Payload too large
16733
17180
  */
@@ -16832,7 +17279,7 @@ export type ListFeaturesDatasetsDatasetIdFeaturesGetData = {
16832
17279
  /**
16833
17280
  * Offset
16834
17281
  *
16835
- * Legacy offset-based pagination. Phase 269 H-24 lowered the max limit to 200 from 1000.
17282
+ * Legacy offset-based pagination. The companion limit is capped at 200 per page, and a high offset is costly to serve.
16836
17283
  */
16837
17284
  offset?: number;
16838
17285
  /**
@@ -18021,7 +18468,7 @@ export type ListDatasetRelationshipsDatasetsDatasetIdRelationshipsGetData = {
18021
18468
  /**
18022
18469
  * Limit
18023
18470
  *
18024
- * Maximum number of relationships to return (PERF-N16).
18471
+ * Maximum number of relationships to return. Capped at 1000.
18025
18472
  */
18026
18473
  limit?: number;
18027
18474
  };
@@ -19274,7 +19721,7 @@ export type DiscoverTablesIngestDiscoverGetData = {
19274
19721
  /**
19275
19722
  * Limit
19276
19723
  *
19277
- * Maximum number of tables to return (PERF-11 bound).
19724
+ * Maximum number of tables to return. Capped at 5000.
19278
19725
  */
19279
19726
  limit?: number;
19280
19727
  };
@@ -23879,6 +24326,66 @@ export type GetSavedSearchEndpointSearchSavedSearchIdGetResponses = {
23879
24326
  200: SavedSearchResponse;
23880
24327
  };
23881
24328
  export type GetSavedSearchEndpointSearchSavedSearchIdGetResponse = GetSavedSearchEndpointSearchSavedSearchIdGetResponses[keyof GetSavedSearchEndpointSearchSavedSearchIdGetResponses];
24329
+ export type ArcgisSigninServicesArcgisSigninPostData = {
24330
+ body: ArcGisSignInRequest;
24331
+ path?: never;
24332
+ query?: never;
24333
+ url: '/services/arcgis/signin/';
24334
+ };
24335
+ export type ArcgisSigninServicesArcgisSigninPostErrors = {
24336
+ /**
24337
+ * Bad request — invalid payload
24338
+ */
24339
+ 400: ProblemDetail;
24340
+ /**
24341
+ * Unauthorized — missing or invalid credentials
24342
+ */
24343
+ 401: ProblemDetail;
24344
+ /**
24345
+ * Forbidden — caller lacks write access
24346
+ */
24347
+ 403: ProblemDetail;
24348
+ /**
24349
+ * Not found
24350
+ */
24351
+ 404: ProblemDetail;
24352
+ /**
24353
+ * Conflict — resource state prevents the operation
24354
+ */
24355
+ 409: ProblemDetail;
24356
+ /**
24357
+ * Validation error
24358
+ */
24359
+ 422: ProblemDetail;
24360
+ /**
24361
+ * Too many requests — retry after the advertised interval
24362
+ */
24363
+ 429: ProblemDetail;
24364
+ /**
24365
+ * Internal server error
24366
+ */
24367
+ 500: ProblemDetail;
24368
+ /**
24369
+ * Bad gateway — the ArcGIS portal could not be reached or did not answer with a sign-in response
24370
+ */
24371
+ 502: ProblemDetail;
24372
+ /**
24373
+ * Service unavailable — the database could not serve the request
24374
+ */
24375
+ 503: ProblemDetail;
24376
+ /**
24377
+ * Gateway timeout — the ArcGIS portal did not respond in time
24378
+ */
24379
+ 504: ProblemDetail;
24380
+ };
24381
+ export type ArcgisSigninServicesArcgisSigninPostError = ArcgisSigninServicesArcgisSigninPostErrors[keyof ArcgisSigninServicesArcgisSigninPostErrors];
24382
+ export type ArcgisSigninServicesArcgisSigninPostResponses = {
24383
+ /**
24384
+ * Successful Response
24385
+ */
24386
+ 200: ArcGisSignInResponse;
24387
+ };
24388
+ export type ArcgisSigninServicesArcgisSigninPostResponse = ArcgisSigninServicesArcgisSigninPostResponses[keyof ArcgisSigninServicesArcgisSigninPostResponses];
23882
24389
  export type ListConnectorsEndpointServicesConnectorsGetData = {
23883
24390
  body?: never;
23884
24391
  path?: never;
@@ -25360,7 +25867,7 @@ export type GetCollectionItemsStacCollectionsCollectionIdItemsGetData = {
25360
25867
  /**
25361
25868
  * Offset
25362
25869
  *
25363
- * Legacy offset-based pagination. Phase 269 H-24 lowered the max limit to 200 and recommends keyset cursors via the rel=next link for deep paging.
25870
+ * Legacy offset-based pagination. The page size is capped at 200; the rel=next link advances one page at a time, and a high offset is costly to serve.
25364
25871
  */
25365
25872
  offset?: number;
25366
25873
  };
@@ -25553,7 +26060,7 @@ export type SearchGetStacSearchGetData = {
25553
26060
  /**
25554
26061
  * Intersects
25555
26062
  *
25556
- * GeoJSON geometry for spatial intersection. SEC-FU-05 (sec-audit-20260519.md): max_length=10000 caps a multi-megabyte GeoJSON DoS-amplifier fits ~150-vertex polygons at 2-decimal-place lat/lon coordinates.
26063
+ * GeoJSON geometry for spatial intersection. At most 10000 characters, which fits a polygon of several hundred vertices at 2-decimal-place lat/lon coordinates.
25557
26064
  */
25558
26065
  intersects?: string | null;
25559
26066
  /**
@@ -25565,7 +26072,7 @@ export type SearchGetStacSearchGetData = {
25565
26072
  /**
25566
26073
  * Offset
25567
26074
  *
25568
- * Legacy offset-based pagination. Phase 269 H-24 lowered the max limit to 200 from 1000 to bound deep-paging cost.
26075
+ * Legacy offset-based pagination. The page size is capped at 200; a high offset is costly to serve.
25569
26076
  */
25570
26077
  offset?: number;
25571
26078
  };
@@ -25770,19 +26277,19 @@ export type RasterTileProxyTilesRasterProxyDatasetIdZxyFmtGetData = {
25770
26277
  /**
25771
26278
  * Pmin
25772
26279
  *
25773
- * Lower percentile clip for stretch=percentile (0–100, default 2). Absent = current p2 behavior. Must be less than pmax.
26280
+ * Lower percentile clip for stretch=percentile (0–100, default 2). Absent = current p2 behavior. Must be less than pmax. Ignored, and not validated, when stretch is not percentile.
25774
26281
  */
25775
26282
  pmin?: number | null;
25776
26283
  /**
25777
26284
  * Pmax
25778
26285
  *
25779
- * Upper percentile clip for stretch=percentile (0–100, default 98). Absent = current p98 behavior. Must be greater than pmin.
26286
+ * Upper percentile clip for stretch=percentile (0–100, default 98). Absent = current p98 behavior. Must be greater than pmin. Ignored, and not validated, when stretch is not percentile.
25780
26287
  */
25781
26288
  pmax?: number | null;
25782
26289
  /**
25783
26290
  * Sigma
25784
26291
  *
25785
- * Standard-deviation multiplier for stretch=stddev (default 2.0). Absent = current 2.0σ behavior. Must be > 0.
26292
+ * Standard-deviation multiplier for stretch=stddev (default 2.0). Absent = current 2.0σ behavior. Must be > 0. Ignored, and not validated, when stretch is not stddev.
25786
26293
  */
25787
26294
  sigma?: number | null;
25788
26295
  };