infrawrench-sdk 1.13.0 → 1.14.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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/infrawrench-sdk.gemspec +4 -4
- data/lib/infrawrench/client.rb +434 -2
- data/lib/infrawrench/sdk.rb +2 -2
- data/lib/infrawrench/transport.rb +2 -2
- data/lib/infrawrench/version.rb +3 -3
- data/lib/infrawrench-sdk.rb +2 -2
- data/sig/infrawrench/sdk.rbs +109 -2
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c947d74d37069573fb9534ab1665a9ebcef67ad271943d690f1474ef27eb1913
|
|
4
|
+
data.tar.gz: 7b44c470da3df84fe8d0dbb39a253a0c30ab8a9bfb980bd2c4b1958c370b7b63
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2e314cc1ca73c8c0603ab5109e692215734058d3d5b412abe75e43debcc22952443e76820c0fdb90dcd9d66fe63a02c42e52496049b3d148a74e0d8161ad180c
|
|
7
|
+
data.tar.gz: '087ba4da5d3ab0ec9cf77f7aebdef7ee8af0dbc0911ea86b1ffbf0692e481107bf7061de81b627bd606ab56334470c6603e04fe4e6e3d0f0358f1eac8a8c3347'
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# infrawrench-sdk
|
|
2
2
|
|
|
3
|
-
Generated Ruby client for the Infrawrench API (API version `1.
|
|
3
|
+
Generated Ruby client for the Infrawrench API (API version `1.14.0`).
|
|
4
4
|
|
|
5
5
|
**Do not edit this gem by hand** — it is regenerated from `openapi.json` and is
|
|
6
6
|
not checked into the repository. Run
|
|
@@ -41,7 +41,7 @@ Every method takes an optional trailing `request_options:` hash (`:headers`,
|
|
|
41
41
|
Responses are the plain `Hash`/`Array` that `JSON.parse` returns, with String
|
|
42
42
|
keys spelled exactly as the wire spells them. There are no model classes — see
|
|
43
43
|
[`sig/infrawrench/sdk.rbs`](./sig/infrawrench/sdk.rbs) for the shape of every one of the
|
|
44
|
-
|
|
44
|
+
573 schemas, as RBS type aliases that steep and TypeProf can read.
|
|
45
45
|
|
|
46
46
|
Non-2xx responses raise `Infrawrench::ApiError`, which carries `#status`,
|
|
47
47
|
the parsed `#body`, and the machine-readable `#code` when the API sends one —
|
data/infrawrench-sdk.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -17,8 +17,8 @@ require_relative "lib/infrawrench/version"
|
|
|
17
17
|
Gem::Specification.new do |spec|
|
|
18
18
|
spec.name = "infrawrench-sdk"
|
|
19
19
|
spec.version = Infrawrench::VERSION
|
|
20
|
-
spec.summary = "Generated Ruby client for the Infrawrench API (v1.
|
|
21
|
-
spec.description = "Generated Ruby client for the Infrawrench API (v1.
|
|
20
|
+
spec.summary = "Generated Ruby client for the Infrawrench API (v1.14.0)."
|
|
21
|
+
spec.description = "Generated Ruby client for the Infrawrench API (v1.14.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
|
|
22
22
|
spec.authors = ["Infrawrench LLC", "Astrid Gealer"]
|
|
23
23
|
spec.email = ["astrid@infrawrench.com"]
|
|
24
24
|
spec.homepage = "https://infrawrench.com/docs/team-and-billing/client-sdks"
|
data/lib/infrawrench/client.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -11075,6 +11075,435 @@ module Infrawrench
|
|
|
11075
11075
|
end
|
|
11076
11076
|
end
|
|
11077
11077
|
|
|
11078
|
+
# `client.shared_consoles.invites`
|
|
11079
|
+
class SharedConsolesInvitesNamespace
|
|
11080
|
+
# @api private
|
|
11081
|
+
# @param transport [Transport]
|
|
11082
|
+
def initialize(transport)
|
|
11083
|
+
@transport = transport
|
|
11084
|
+
end
|
|
11085
|
+
|
|
11086
|
+
# Mint a replacement invite
|
|
11087
|
+
#
|
|
11088
|
+
# An invite is spent by the first person it admits, so inviting a second
|
|
11089
|
+
# guest means minting a second link. Replaces any outstanding one. Sharer or
|
|
11090
|
+
# `org:settings:write`.
|
|
11091
|
+
#
|
|
11092
|
+
# POST /api/org/{orgId}/shared-consoles/{consoleId}/invites
|
|
11093
|
+
#
|
|
11094
|
+
# Raises on 403: Forbidden
|
|
11095
|
+
#
|
|
11096
|
+
# Raises on 404: Not found
|
|
11097
|
+
#
|
|
11098
|
+
# Raises on 409: Conflict
|
|
11099
|
+
#
|
|
11100
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11101
|
+
# constructed with.
|
|
11102
|
+
# @param console_id [String]
|
|
11103
|
+
# @param body [Hash, nil] Request body, shaped as `Hash`.
|
|
11104
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11105
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleCreated` — see
|
|
11106
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11107
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11108
|
+
def create(console_id:, org_id: nil, body: nil, request_options: nil)
|
|
11109
|
+
@transport.request(
|
|
11110
|
+
http_method: "POST",
|
|
11111
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/invites",
|
|
11112
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11113
|
+
body: body,
|
|
11114
|
+
request_options: request_options
|
|
11115
|
+
)
|
|
11116
|
+
end
|
|
11117
|
+
|
|
11118
|
+
# Withdraw the outstanding invite
|
|
11119
|
+
#
|
|
11120
|
+
# Kills the link without touching the session or anyone already on it.
|
|
11121
|
+
#
|
|
11122
|
+
# DELETE /api/org/{orgId}/shared-consoles/{consoleId}/invites
|
|
11123
|
+
#
|
|
11124
|
+
# Raises on 403: Forbidden
|
|
11125
|
+
#
|
|
11126
|
+
# Raises on 404: Not found
|
|
11127
|
+
#
|
|
11128
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11129
|
+
# constructed with.
|
|
11130
|
+
# @param console_id [String]
|
|
11131
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11132
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11133
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11134
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11135
|
+
def delete(console_id:, org_id: nil, request_options: nil)
|
|
11136
|
+
@transport.request(
|
|
11137
|
+
http_method: "DELETE",
|
|
11138
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/invites",
|
|
11139
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11140
|
+
request_options: request_options
|
|
11141
|
+
)
|
|
11142
|
+
end
|
|
11143
|
+
|
|
11144
|
+
# Preview what an invite link points at
|
|
11145
|
+
#
|
|
11146
|
+
# What the join screen shows before anyone commits: which host, whose
|
|
11147
|
+
# session, and whether you may join it. Reachable with a valid token by a
|
|
11148
|
+
# signed-in member who already holds `resources:execute` — the token says
|
|
11149
|
+
# *which* session, never *whether*. Returns nothing from the session itself.
|
|
11150
|
+
#
|
|
11151
|
+
# _Requires permission: `resources:execute`._
|
|
11152
|
+
#
|
|
11153
|
+
# GET /api/org/{orgId}/shared-consoles/invites/{token}
|
|
11154
|
+
#
|
|
11155
|
+
# Raises on 404: Not found
|
|
11156
|
+
#
|
|
11157
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11158
|
+
# constructed with.
|
|
11159
|
+
# @param token [String]
|
|
11160
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11161
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleInvitePreview` — see
|
|
11162
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11163
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11164
|
+
def get(token:, org_id: nil, request_options: nil)
|
|
11165
|
+
@transport.request(
|
|
11166
|
+
http_method: "GET",
|
|
11167
|
+
path: "/api/org/{orgId}/shared-consoles/invites/{token}",
|
|
11168
|
+
path_params: { "orgId" => org_id, "token" => token },
|
|
11169
|
+
request_options: request_options
|
|
11170
|
+
)
|
|
11171
|
+
end
|
|
11172
|
+
end
|
|
11173
|
+
|
|
11174
|
+
# `client.shared_consoles.participants`
|
|
11175
|
+
class SharedConsolesParticipantsNamespace
|
|
11176
|
+
# @api private
|
|
11177
|
+
# @param transport [Transport]
|
|
11178
|
+
def initialize(transport)
|
|
11179
|
+
@transport = transport
|
|
11180
|
+
end
|
|
11181
|
+
|
|
11182
|
+
# Remove somebody from a shared console
|
|
11183
|
+
#
|
|
11184
|
+
# Their socket is closed immediately on the replica holding the pty, and
|
|
11185
|
+
# within one two-second sweep on any other. They are marked `removed` rather
|
|
11186
|
+
# than `left`, so they cannot resume without a fresh invite. The sharer
|
|
11187
|
+
# cannot be removed — revoke the share.
|
|
11188
|
+
#
|
|
11189
|
+
# DELETE
|
|
11190
|
+
# /api/org/{orgId}/shared-consoles/{consoleId}/participants/{participantId}
|
|
11191
|
+
#
|
|
11192
|
+
# Raises on 403: Forbidden
|
|
11193
|
+
#
|
|
11194
|
+
# Raises on 404: Not found
|
|
11195
|
+
#
|
|
11196
|
+
# Raises on 409: Conflict
|
|
11197
|
+
#
|
|
11198
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11199
|
+
# constructed with.
|
|
11200
|
+
# @param console_id [String]
|
|
11201
|
+
# @param participant_id [String]
|
|
11202
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11203
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11204
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11205
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11206
|
+
def delete(console_id:, participant_id:, org_id: nil, request_options: nil)
|
|
11207
|
+
@transport.request(
|
|
11208
|
+
http_method: "DELETE",
|
|
11209
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/participants/{participantId}",
|
|
11210
|
+
path_params: {
|
|
11211
|
+
"orgId" => org_id,
|
|
11212
|
+
"consoleId" => console_id,
|
|
11213
|
+
"participantId" => participant_id
|
|
11214
|
+
},
|
|
11215
|
+
request_options: request_options
|
|
11216
|
+
)
|
|
11217
|
+
end
|
|
11218
|
+
end
|
|
11219
|
+
|
|
11220
|
+
# `client.shared_consoles`
|
|
11221
|
+
class SharedConsolesNamespace
|
|
11222
|
+
# @return [SharedConsolesInvitesNamespace] `client.shared_consoles.invites`
|
|
11223
|
+
attr_reader :invites
|
|
11224
|
+
# @return [SharedConsolesParticipantsNamespace] `client.shared_consoles.participants`
|
|
11225
|
+
attr_reader :participants
|
|
11226
|
+
|
|
11227
|
+
# @api private
|
|
11228
|
+
# @param transport [Transport]
|
|
11229
|
+
def initialize(transport)
|
|
11230
|
+
@transport = transport
|
|
11231
|
+
@invites = SharedConsolesInvitesNamespace.new(@transport)
|
|
11232
|
+
@participants = SharedConsolesParticipantsNamespace.new(@transport)
|
|
11233
|
+
end
|
|
11234
|
+
|
|
11235
|
+
# Share a live SSH session
|
|
11236
|
+
#
|
|
11237
|
+
# Opens a share on a session you already have running and mints its first
|
|
11238
|
+
# invite. You become the driver.
|
|
11239
|
+
#
|
|
11240
|
+
# Returns 409 `console_not_here` when the pty is held by a different server
|
|
11241
|
+
# replica than the one answering this call — reopen the terminal and share
|
|
11242
|
+
# again. Writing the share anyway would produce a link that authorises
|
|
11243
|
+
# correctly and then finds nothing to attach to.
|
|
11244
|
+
#
|
|
11245
|
+
# Requires `resources:execute` — the same permission as opening the
|
|
11246
|
+
# terminal. Closed to API keys: sharing a shell is an act a person performs.
|
|
11247
|
+
#
|
|
11248
|
+
# _Requires permission: `resources:execute`._
|
|
11249
|
+
#
|
|
11250
|
+
# POST /api/org/{orgId}/shared-consoles
|
|
11251
|
+
#
|
|
11252
|
+
# Raises on 400: Bad request
|
|
11253
|
+
#
|
|
11254
|
+
# Raises on 404: Not found
|
|
11255
|
+
#
|
|
11256
|
+
# Raises on 409: Conflict
|
|
11257
|
+
#
|
|
11258
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11259
|
+
# constructed with.
|
|
11260
|
+
# @param body [Hash, nil] Request body, shaped as `CreateSharedConsole`.
|
|
11261
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11262
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleCreated` — see
|
|
11263
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11264
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11265
|
+
def create(org_id: nil, body: nil, request_options: nil)
|
|
11266
|
+
@transport.request(
|
|
11267
|
+
http_method: "POST",
|
|
11268
|
+
path: "/api/org/{orgId}/shared-consoles",
|
|
11269
|
+
path_params: { "orgId" => org_id },
|
|
11270
|
+
body: body,
|
|
11271
|
+
request_options: request_options
|
|
11272
|
+
)
|
|
11273
|
+
end
|
|
11274
|
+
|
|
11275
|
+
# Revoke a share
|
|
11276
|
+
#
|
|
11277
|
+
# Disconnects every guest and stops the fan-out. The sharer's own SSH
|
|
11278
|
+
# session carries on — revoking a share is not killing a terminal.
|
|
11279
|
+
#
|
|
11280
|
+
# The sharer or a holder of `org:settings:write`. Deliberately does **not**
|
|
11281
|
+
# require `resources:execute`: ending access must never be gated on still
|
|
11282
|
+
# holding the access, or an owner whose role was narrowed mid-incident could
|
|
11283
|
+
# not close the session they opened.
|
|
11284
|
+
#
|
|
11285
|
+
# DELETE /api/org/{orgId}/shared-consoles/{consoleId}
|
|
11286
|
+
#
|
|
11287
|
+
# Raises on 403: Forbidden
|
|
11288
|
+
#
|
|
11289
|
+
# Raises on 404: Not found
|
|
11290
|
+
#
|
|
11291
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11292
|
+
# constructed with.
|
|
11293
|
+
# @param console_id [String]
|
|
11294
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11295
|
+
# @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
|
|
11296
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11297
|
+
def delete(console_id:, org_id: nil, request_options: nil)
|
|
11298
|
+
@transport.request(
|
|
11299
|
+
http_method: "DELETE",
|
|
11300
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}",
|
|
11301
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11302
|
+
request_options: request_options
|
|
11303
|
+
)
|
|
11304
|
+
end
|
|
11305
|
+
|
|
11306
|
+
# Get one shared console
|
|
11307
|
+
#
|
|
11308
|
+
# Visible to participants and to anyone who could revoke it (the sharer, or
|
|
11309
|
+
# a holder of `org:settings:write`). Others get 404 — that a named colleague
|
|
11310
|
+
# has a root shell open on a named production host right now is operational
|
|
11311
|
+
# information.
|
|
11312
|
+
#
|
|
11313
|
+
# _Requires permission: `resources:execute`._
|
|
11314
|
+
#
|
|
11315
|
+
# GET /api/org/{orgId}/shared-consoles/{consoleId}
|
|
11316
|
+
#
|
|
11317
|
+
# Raises on 404: Not found
|
|
11318
|
+
#
|
|
11319
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11320
|
+
# constructed with.
|
|
11321
|
+
# @param console_id [String]
|
|
11322
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11323
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11324
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11325
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11326
|
+
def get(console_id:, org_id: nil, request_options: nil)
|
|
11327
|
+
@transport.request(
|
|
11328
|
+
http_method: "GET",
|
|
11329
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}",
|
|
11330
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11331
|
+
request_options: request_options
|
|
11332
|
+
)
|
|
11333
|
+
end
|
|
11334
|
+
|
|
11335
|
+
# Move the keyboard to another participant
|
|
11336
|
+
#
|
|
11337
|
+
# Authorised by the **current driver** (the keyboard is theirs to give) or
|
|
11338
|
+
# by the **sharer** (it is their box, and asking permission from somebody
|
|
11339
|
+
# who has stopped responding is not a control). An observer cannot promote
|
|
11340
|
+
# themselves — that is `/request-driver`.
|
|
11341
|
+
#
|
|
11342
|
+
# Two simultaneous grants cannot both win: the database's partial unique
|
|
11343
|
+
# index decides the order, and the loser gets 409 `driver-race-lost`.
|
|
11344
|
+
#
|
|
11345
|
+
# The pty resizes to the new driver's viewport; everyone else letterboxes.
|
|
11346
|
+
#
|
|
11347
|
+
# _Requires permission: `resources:execute`._
|
|
11348
|
+
#
|
|
11349
|
+
# POST /api/org/{orgId}/shared-consoles/{consoleId}/handover
|
|
11350
|
+
#
|
|
11351
|
+
# Raises on 400: Bad request
|
|
11352
|
+
#
|
|
11353
|
+
# Raises on 403: Forbidden
|
|
11354
|
+
#
|
|
11355
|
+
# Raises on 404: Not found
|
|
11356
|
+
#
|
|
11357
|
+
# Raises on 409: Conflict
|
|
11358
|
+
#
|
|
11359
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11360
|
+
# constructed with.
|
|
11361
|
+
# @param console_id [String]
|
|
11362
|
+
# @param body [Hash, nil] Request body, shaped as `Hash`.
|
|
11363
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11364
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11365
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11366
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11367
|
+
def handover(console_id:, org_id: nil, body: nil, request_options: nil)
|
|
11368
|
+
@transport.request(
|
|
11369
|
+
http_method: "POST",
|
|
11370
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/handover",
|
|
11371
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11372
|
+
body: body,
|
|
11373
|
+
request_options: request_options
|
|
11374
|
+
)
|
|
11375
|
+
end
|
|
11376
|
+
|
|
11377
|
+
# Redeem an invite and join
|
|
11378
|
+
#
|
|
11379
|
+
# Admission needs live org membership **and** `resources:execute` — the
|
|
11380
|
+
# invite is a locator, never a capability, so a leaked link admits nobody
|
|
11381
|
+
# who could not have opened the shell themselves.
|
|
11382
|
+
#
|
|
11383
|
+
# The invite is consumed by the first person it admits. Somebody already on
|
|
11384
|
+
# the console resumes their own row without a token, so a reload costs them
|
|
11385
|
+
# nothing and obliges the sharer to mint nothing. New joiners always start
|
|
11386
|
+
# as observers whatever the link said.
|
|
11387
|
+
#
|
|
11388
|
+
# Audit-logged as `shared_console.join`, and written onto the recording's
|
|
11389
|
+
# timeline as an asciicast marker.
|
|
11390
|
+
#
|
|
11391
|
+
# _Requires permission: `resources:execute`._
|
|
11392
|
+
#
|
|
11393
|
+
# POST /api/org/{orgId}/shared-consoles/{consoleId}/join
|
|
11394
|
+
#
|
|
11395
|
+
# Raises on 400: Bad request
|
|
11396
|
+
#
|
|
11397
|
+
# Raises on 403: Forbidden
|
|
11398
|
+
#
|
|
11399
|
+
# Raises on 404: Not found
|
|
11400
|
+
#
|
|
11401
|
+
# Raises on 409: Conflict
|
|
11402
|
+
#
|
|
11403
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11404
|
+
# constructed with.
|
|
11405
|
+
# @param console_id [String]
|
|
11406
|
+
# @param body [Hash, nil] Request body, shaped as `Hash`.
|
|
11407
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11408
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleJoined` — see
|
|
11409
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11410
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11411
|
+
def join(console_id:, org_id: nil, body: nil, request_options: nil)
|
|
11412
|
+
@transport.request(
|
|
11413
|
+
http_method: "POST",
|
|
11414
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/join",
|
|
11415
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11416
|
+
body: body,
|
|
11417
|
+
request_options: request_options
|
|
11418
|
+
)
|
|
11419
|
+
end
|
|
11420
|
+
|
|
11421
|
+
# Leave a shared console
|
|
11422
|
+
#
|
|
11423
|
+
# Steps you off without ending the session. Your row survives, so the same
|
|
11424
|
+
# invite is not needed again. Deliberately does not require
|
|
11425
|
+
# `resources:execute`: giving access up must never be gated on still holding
|
|
11426
|
+
# it.
|
|
11427
|
+
#
|
|
11428
|
+
# POST /api/org/{orgId}/shared-consoles/{consoleId}/leave
|
|
11429
|
+
#
|
|
11430
|
+
# Raises on 404: Not found
|
|
11431
|
+
#
|
|
11432
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11433
|
+
# constructed with.
|
|
11434
|
+
# @param console_id [String]
|
|
11435
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11436
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11437
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11438
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11439
|
+
def leave(console_id:, org_id: nil, request_options: nil)
|
|
11440
|
+
@transport.request(
|
|
11441
|
+
http_method: "POST",
|
|
11442
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/leave",
|
|
11443
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11444
|
+
request_options: request_options
|
|
11445
|
+
)
|
|
11446
|
+
end
|
|
11447
|
+
|
|
11448
|
+
# List sessions currently shared
|
|
11449
|
+
#
|
|
11450
|
+
# Live shared SSH sessions in this organization, with who is on each. Only
|
|
11451
|
+
# cloud SSH can be shared: those sessions are already proxied by the server,
|
|
11452
|
+
# so fanning the pty out to a second socket is a consumer of a stream it
|
|
11453
|
+
# holds. A desktop session dialling a host directly never reaches the server
|
|
11454
|
+
# and cannot be shared.
|
|
11455
|
+
#
|
|
11456
|
+
# _Requires permission: `resources:execute`._
|
|
11457
|
+
#
|
|
11458
|
+
# GET /api/org/{orgId}/shared-consoles
|
|
11459
|
+
#
|
|
11460
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11461
|
+
# constructed with.
|
|
11462
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11463
|
+
# @return [Array<Hash>] Parsed JSON, shaped as `Array<SharedConsoleSummary>` — see
|
|
11464
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11465
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11466
|
+
def list(org_id: nil, request_options: nil)
|
|
11467
|
+
@transport.request(
|
|
11468
|
+
http_method: "GET",
|
|
11469
|
+
path: "/api/org/{orgId}/shared-consoles",
|
|
11470
|
+
path_params: { "orgId" => org_id },
|
|
11471
|
+
request_options: request_options
|
|
11472
|
+
)
|
|
11473
|
+
end
|
|
11474
|
+
|
|
11475
|
+
# Ask for the keyboard
|
|
11476
|
+
#
|
|
11477
|
+
# Raises a flag the driver and the sharer can see. Grants nothing on its own
|
|
11478
|
+
# — that is the point.
|
|
11479
|
+
#
|
|
11480
|
+
# _Requires permission: `resources:execute`._
|
|
11481
|
+
#
|
|
11482
|
+
# POST /api/org/{orgId}/shared-consoles/{consoleId}/request-driver
|
|
11483
|
+
#
|
|
11484
|
+
# Raises on 403: Forbidden
|
|
11485
|
+
#
|
|
11486
|
+
# Raises on 404: Not found
|
|
11487
|
+
#
|
|
11488
|
+
# Raises on 409: Conflict
|
|
11489
|
+
#
|
|
11490
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
11491
|
+
# constructed with.
|
|
11492
|
+
# @param console_id [String]
|
|
11493
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
11494
|
+
# @return [Hash] Parsed JSON, shaped as `SharedConsoleState` — see
|
|
11495
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
11496
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
11497
|
+
def request_driver(console_id:, org_id: nil, request_options: nil)
|
|
11498
|
+
@transport.request(
|
|
11499
|
+
http_method: "POST",
|
|
11500
|
+
path: "/api/org/{orgId}/shared-consoles/{consoleId}/request-driver",
|
|
11501
|
+
path_params: { "orgId" => org_id, "consoleId" => console_id },
|
|
11502
|
+
request_options: request_options
|
|
11503
|
+
)
|
|
11504
|
+
end
|
|
11505
|
+
end
|
|
11506
|
+
|
|
11078
11507
|
# `client.slack.channels`
|
|
11079
11508
|
class SlackChannelsNamespace
|
|
11080
11509
|
# @api private
|
|
@@ -12929,6 +13358,8 @@ module Infrawrench
|
|
|
12929
13358
|
attr_reader :session_recordings
|
|
12930
13359
|
# @return [SftpNamespace] `client.sftp`
|
|
12931
13360
|
attr_reader :sftp
|
|
13361
|
+
# @return [SharedConsolesNamespace] `client.shared_consoles`
|
|
13362
|
+
attr_reader :shared_consoles
|
|
12932
13363
|
# @return [SlackNamespace] `client.slack`
|
|
12933
13364
|
attr_reader :slack
|
|
12934
13365
|
# @return [SqlNamespace] `client.sql`
|
|
@@ -13029,6 +13460,7 @@ module Infrawrench
|
|
|
13029
13460
|
@search = SearchNamespace.new(@transport)
|
|
13030
13461
|
@session_recordings = SessionRecordingsNamespace.new(@transport)
|
|
13031
13462
|
@sftp = SftpNamespace.new(@transport)
|
|
13463
|
+
@shared_consoles = SharedConsolesNamespace.new(@transport)
|
|
13032
13464
|
@slack = SlackNamespace.new(@transport)
|
|
13033
13465
|
@sql = SqlNamespace.new(@transport)
|
|
13034
13466
|
@ssh_fanout = SshFanoutNamespace.new(@transport)
|
data/lib/infrawrench/sdk.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
data/lib/infrawrench/version.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
# Kept in its own file so the gemspec can read the version without loading the
|
|
16
16
|
# client — a gemspec that pulls in net/http is a gemspec that can fail to parse.
|
|
17
17
|
module Infrawrench
|
|
18
|
-
VERSION = "1.
|
|
18
|
+
VERSION = "1.14.0"
|
|
19
19
|
end
|
data/lib/infrawrench-sdk.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# infrawrench-sdk v1.
|
|
3
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
4
4
|
# https://github.com/Infrawrench/Infrawrench
|
|
5
5
|
#
|
|
6
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
6
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
data/sig/infrawrench/sdk.rbs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# infrawrench-sdk v1.
|
|
1
|
+
# infrawrench-sdk v1.14.0 | MIT | Copyright (c) 2026 Infrawrench LLC
|
|
2
2
|
# https://github.com/Infrawrench/Infrawrench
|
|
3
3
|
#
|
|
4
|
-
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.
|
|
4
|
+
# Generated from the Infrawrench API OpenAPI 3.1 spec (API version 1.14.0).
|
|
5
5
|
#
|
|
6
6
|
# DO NOT EDIT. Regenerate with:
|
|
7
7
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -1727,6 +1727,14 @@ module Infrawrench
|
|
|
1727
1727
|
# Spec schema: `CreateResourceResponse`.
|
|
1728
1728
|
type create_resource_response = { "id" => resource_id, "displayName" => String, ?"warnings" => Array[String] }
|
|
1729
1729
|
|
|
1730
|
+
# Spec schema: `CreateSharedConsole`.
|
|
1731
|
+
type create_shared_console = {
|
|
1732
|
+
"liveConsoleId" => String,
|
|
1733
|
+
"routingKey" => String,
|
|
1734
|
+
?"allowHandover" => bool,
|
|
1735
|
+
?"inviteTtlMinutes" => Integer
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1730
1738
|
# Spec schema: `CreateWidgetRequest`.
|
|
1731
1739
|
type create_widget_request = {
|
|
1732
1740
|
"dashboardId" => String,
|
|
@@ -5061,6 +5069,15 @@ module Infrawrench
|
|
|
5061
5069
|
"cols" => Integer,
|
|
5062
5070
|
"rows" => Integer,
|
|
5063
5071
|
"hasInput" => bool,
|
|
5072
|
+
?"sharedConsoleId" => String | nil,
|
|
5073
|
+
?"participants" => Array[{
|
|
5074
|
+
"userId" => String | nil,
|
|
5075
|
+
"userName" => String | nil,
|
|
5076
|
+
"role" => "observer" | "driver",
|
|
5077
|
+
"joinedAt" => String,
|
|
5078
|
+
"leftAt" => String | nil
|
|
5079
|
+
}]
|
|
5080
|
+
| nil,
|
|
5064
5081
|
"status" => "recording" | "complete" | "truncated" | "abandoned",
|
|
5065
5082
|
"outputBytes" => Integer,
|
|
5066
5083
|
"eventCount" => Integer,
|
|
@@ -5129,6 +5146,69 @@ module Infrawrench
|
|
|
5129
5146
|
?"sshUsername" => String
|
|
5130
5147
|
}
|
|
5131
5148
|
|
|
5149
|
+
# Spec schema: `SharedConsole`.
|
|
5150
|
+
type shared_console = {
|
|
5151
|
+
"id" => String,
|
|
5152
|
+
"routingKey" => String,
|
|
5153
|
+
"ownerUserId" => String | nil,
|
|
5154
|
+
"ownerName" => String | nil,
|
|
5155
|
+
"accountId" => String | nil,
|
|
5156
|
+
"resourceId" => String | nil,
|
|
5157
|
+
"host" => String,
|
|
5158
|
+
"port" => Integer,
|
|
5159
|
+
"username" => String,
|
|
5160
|
+
"allowHandover" => bool,
|
|
5161
|
+
"status" => "active" | "revoked" | "ended",
|
|
5162
|
+
"inviteTokenPrefix" => String | nil,
|
|
5163
|
+
"inviteExpiresAt" => String | nil,
|
|
5164
|
+
"inviteConsumedAt" => String | nil,
|
|
5165
|
+
"recordingId" => String | nil,
|
|
5166
|
+
"ptyCols" => Integer,
|
|
5167
|
+
"ptyRows" => Integer,
|
|
5168
|
+
"createdAt" => String
|
|
5169
|
+
}
|
|
5170
|
+
|
|
5171
|
+
# Spec schema: `SharedConsoleCreated`.
|
|
5172
|
+
type shared_console_created = {
|
|
5173
|
+
"share" => shared_console,
|
|
5174
|
+
"participants" => Array[shared_console_participant],
|
|
5175
|
+
"inviteToken" => String
|
|
5176
|
+
}
|
|
5177
|
+
|
|
5178
|
+
# Spec schema: `SharedConsoleInvitePreview`.
|
|
5179
|
+
type shared_console_invite_preview = {
|
|
5180
|
+
"share" => shared_console,
|
|
5181
|
+
"joinable" => bool,
|
|
5182
|
+
?"rejoin" => bool,
|
|
5183
|
+
?"error" => String,
|
|
5184
|
+
?"code" => String
|
|
5185
|
+
}
|
|
5186
|
+
|
|
5187
|
+
# Spec schema: `SharedConsoleJoined`.
|
|
5188
|
+
type shared_console_joined = {
|
|
5189
|
+
"share" => shared_console,
|
|
5190
|
+
"participants" => Array[shared_console_participant],
|
|
5191
|
+
"you" => shared_console_participant,
|
|
5192
|
+
"routingKey" => String
|
|
5193
|
+
}
|
|
5194
|
+
|
|
5195
|
+
# Spec schema: `SharedConsoleParticipant`.
|
|
5196
|
+
type shared_console_participant = {
|
|
5197
|
+
"id" => String,
|
|
5198
|
+
"userId" => String,
|
|
5199
|
+
"userName" => String | nil,
|
|
5200
|
+
"role" => "observer" | "driver",
|
|
5201
|
+
"status" => "joined" | "left" | "removed",
|
|
5202
|
+
"driverRequestedAt" => String | nil,
|
|
5203
|
+
"joinedAt" => String
|
|
5204
|
+
}
|
|
5205
|
+
|
|
5206
|
+
# Spec schema: `SharedConsoleState`.
|
|
5207
|
+
type shared_console_state = { "share" => shared_console, "participants" => Array[shared_console_participant] }
|
|
5208
|
+
|
|
5209
|
+
# Spec schema: `SharedConsoleSummary`.
|
|
5210
|
+
type shared_console_summary = shared_console & { "participants" => Array[shared_console_participant] }
|
|
5211
|
+
|
|
5132
5212
|
# Spec schema: `ShowbackReport`.
|
|
5133
5213
|
type showback_report = {
|
|
5134
5214
|
"from" => String,
|
|
@@ -6624,6 +6704,32 @@ module Infrawrench
|
|
|
6624
6704
|
def upload: (body: sftp_upload_form, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
6625
6705
|
end
|
|
6626
6706
|
|
|
6707
|
+
class SharedConsolesInvitesNamespace
|
|
6708
|
+
def initialize: (Transport) -> void
|
|
6709
|
+
def create: (console_id: String, ?org_id: String?, ?body: { ?"inviteTtlMinutes" => Integer }?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_created
|
|
6710
|
+
def delete: (console_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6711
|
+
def get: (token: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_invite_preview
|
|
6712
|
+
end
|
|
6713
|
+
|
|
6714
|
+
class SharedConsolesParticipantsNamespace
|
|
6715
|
+
def initialize: (Transport) -> void
|
|
6716
|
+
def delete: (console_id: String, participant_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6717
|
+
end
|
|
6718
|
+
|
|
6719
|
+
class SharedConsolesNamespace
|
|
6720
|
+
attr_reader invites: SharedConsolesInvitesNamespace
|
|
6721
|
+
attr_reader participants: SharedConsolesParticipantsNamespace
|
|
6722
|
+
def initialize: (Transport) -> void
|
|
6723
|
+
def create: (?org_id: String?, ?body: create_shared_console?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_created
|
|
6724
|
+
def delete: (console_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
6725
|
+
def get: (console_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6726
|
+
def handover: (console_id: String, ?org_id: String?, ?body: { "participantId" => String }?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6727
|
+
def join: (console_id: String, ?org_id: String?, ?body: { "token" => String }?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_joined
|
|
6728
|
+
def leave: (console_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6729
|
+
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[shared_console_summary]
|
|
6730
|
+
def request_driver: (console_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> shared_console_state
|
|
6731
|
+
end
|
|
6732
|
+
|
|
6627
6733
|
class SlackChannelsNamespace
|
|
6628
6734
|
def initialize: (Transport) -> void
|
|
6629
6735
|
def create: (?org_id: String?, ?body: slack_channel_create?, ?request_options: Hash[Symbol, untyped]?) -> slack_channel
|
|
@@ -6840,6 +6946,7 @@ module Infrawrench
|
|
|
6840
6946
|
attr_reader search: SearchNamespace
|
|
6841
6947
|
attr_reader session_recordings: SessionRecordingsNamespace
|
|
6842
6948
|
attr_reader sftp: SftpNamespace
|
|
6949
|
+
attr_reader shared_consoles: SharedConsolesNamespace
|
|
6843
6950
|
attr_reader slack: SlackNamespace
|
|
6844
6951
|
attr_reader sql: SqlNamespace
|
|
6845
6952
|
attr_reader ssh_fanout: SshFanoutNamespace
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: infrawrench-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Infrawrench LLC
|
|
@@ -9,9 +9,9 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-08-
|
|
12
|
+
date: 2026-08-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies: []
|
|
14
|
-
description: Generated Ruby client for the Infrawrench API (v1.
|
|
14
|
+
description: Generated Ruby client for the Infrawrench API (v1.14.0). Covers the published
|
|
15
15
|
API surface only — operations marked x-internal in the spec are not generated. No
|
|
16
16
|
runtime dependencies.
|
|
17
17
|
email:
|
|
@@ -58,5 +58,5 @@ requirements: []
|
|
|
58
58
|
rubygems_version: 3.5.22
|
|
59
59
|
signing_key:
|
|
60
60
|
specification_version: 4
|
|
61
|
-
summary: Generated Ruby client for the Infrawrench API (v1.
|
|
61
|
+
summary: Generated Ruby client for the Infrawrench API (v1.14.0).
|
|
62
62
|
test_files: []
|