infrawrench-sdk 0.2.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e97b38b6982a896cb7606d73b4daade39d3d7f13568b6452e2e0966bfa5fd88e
4
- data.tar.gz: d31eb76abce20bc22cedc4746ea008027085d487722c868d962ccc22be8554c4
3
+ metadata.gz: bbee681ba31fd744e84c95fcb9cf2c32e072d8f0bc1557d6c91069bf0519bf77
4
+ data.tar.gz: 2bfaf5ebc1cecf6f5583cc9ce8443158d3e0e126122402fd77641021dcce02b0
5
5
  SHA512:
6
- metadata.gz: d8f8cc2a1e182e23c2ca2c41603a76dd39d807263ef79af7f3e9d7a7ecd698d8e59eef5202972c52b9f70f7c6ab8f8e0275e78f5f82fd1438459aabe510909de
7
- data.tar.gz: c3f19cb37c68e57a17305fedf8de0fbb5d54104015746e79beee828dfc6747a4f5322372e16621e9f90d49c275925aef5feaba62ade8ad4b5d6a30023dac9c73
6
+ metadata.gz: 7985aae5c79e8647342b6c32010cae85f80f721aa66daf8d33e913023f92052198a91da9302550b7acca10477f8ff42db33ec1a94ede9e3da93b548385a90585
7
+ data.tar.gz: bd54485593edc520b9b814fc7ba7bc54b964121c5fde8fff1d5239dfb722d51cd26b9f04e077100692e63acc381198bd8fd0ba6c29a30301ebd3fa041b651a09
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # infrawrench-sdk
2
2
 
3
- Generated Ruby client for the Infrawrench API (API version `0.2.0`).
3
+ Generated Ruby client for the Infrawrench API (API version `0.4.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
- 177 schemas, as RBS type aliases that steep and TypeProf can read.
44
+ 187 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 —
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.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 (v0.2.0)."
21
- spec.description = "Generated Ruby client for the Infrawrench API (v0.2.0). Covers the published API surface only — operations marked x-internal in the spec are not generated. No runtime dependencies."
20
+ spec.summary = "Generated Ruby client for the Infrawrench API (v0.4.0)."
21
+ spec.description = "Generated Ruby client for the Infrawrench API (v0.4.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"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1886,6 +1886,148 @@ module Infrawrench
1886
1886
  end
1887
1887
  end
1888
1888
 
1889
+ # `client.msteams.webhooks`
1890
+ class MsteamsWebhooksNamespace
1891
+ # @api private
1892
+ # @param transport [Transport]
1893
+ def initialize(transport)
1894
+ @transport = transport
1895
+ end
1896
+
1897
+ # Route alerts to a Teams channel
1898
+ #
1899
+ # Adds a channel by webhook URL, or updates the one already holding that
1900
+ # URL. Each trigger defaults to enabled. Responds 400 when the URL is not
1901
+ # https or its host is not Microsoft-operated.
1902
+ #
1903
+ # POST /api/org/{orgId}/msteams/webhooks
1904
+ #
1905
+ # Raises on 400: Bad request
1906
+ #
1907
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1908
+ # constructed with.
1909
+ # @param body [Hash, nil] Request body, shaped as `MsTeamsWebhookCreate`.
1910
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1911
+ # @return [Hash] Parsed JSON, shaped as `MsTeamsWebhook` — see `sig/infrawrench/sdk.rbs`.
1912
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1913
+ def create(org_id: nil, body: nil, request_options: nil)
1914
+ @transport.request(
1915
+ http_method: "POST",
1916
+ path: "/api/org/{orgId}/msteams/webhooks",
1917
+ path_params: { "orgId" => org_id },
1918
+ body: body,
1919
+ request_options: request_options
1920
+ )
1921
+ end
1922
+
1923
+ # Stop routing alerts to a Teams channel
1924
+ #
1925
+ # DELETE /api/org/{orgId}/msteams/webhooks/{id}
1926
+ #
1927
+ # Raises on 404: Not found
1928
+ #
1929
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1930
+ # constructed with.
1931
+ # @param id [String]
1932
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1933
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
1934
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1935
+ def delete(id:, org_id: nil, request_options: nil)
1936
+ @transport.request(
1937
+ http_method: "DELETE",
1938
+ path: "/api/org/{orgId}/msteams/webhooks/{id}",
1939
+ path_params: { "orgId" => org_id, "id" => id },
1940
+ request_options: request_options
1941
+ )
1942
+ end
1943
+
1944
+ # Rename a Teams channel or change which alerts it receives
1945
+ #
1946
+ # The webhook URL is immutable — remove the channel and re-add it to change
1947
+ # it.
1948
+ #
1949
+ # PATCH /api/org/{orgId}/msteams/webhooks/{id}
1950
+ #
1951
+ # Raises on 400: Bad request
1952
+ #
1953
+ # Raises on 404: Not found
1954
+ #
1955
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1956
+ # constructed with.
1957
+ # @param id [String]
1958
+ # @param body [Hash, nil] Request body, shaped as `MsTeamsWebhookUpdate`.
1959
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1960
+ # @return [Hash] Parsed JSON, shaped as `MsTeamsWebhook` — see `sig/infrawrench/sdk.rbs`.
1961
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1962
+ def update(id:, org_id: nil, body: nil, request_options: nil)
1963
+ @transport.request(
1964
+ http_method: "PATCH",
1965
+ path: "/api/org/{orgId}/msteams/webhooks/{id}",
1966
+ path_params: { "orgId" => org_id, "id" => id },
1967
+ body: body,
1968
+ request_options: request_options
1969
+ )
1970
+ end
1971
+ end
1972
+
1973
+ # `client.msteams`
1974
+ class MsteamsNamespace
1975
+ # @return [MsteamsWebhooksNamespace] `client.msteams.webhooks`
1976
+ attr_reader :webhooks
1977
+
1978
+ # @api private
1979
+ # @param transport [Transport]
1980
+ def initialize(transport)
1981
+ @transport = transport
1982
+ @webhooks = MsteamsWebhooksNamespace.new(@transport)
1983
+ end
1984
+
1985
+ # List the organization's Teams channels
1986
+ #
1987
+ # Returns the Teams channels alerts are routed to and which triggers each
1988
+ # takes. Webhook URLs are never included.
1989
+ #
1990
+ # GET /api/org/{orgId}/msteams/status
1991
+ #
1992
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
1993
+ # constructed with.
1994
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
1995
+ # @return [Hash] Parsed JSON, shaped as `MsTeamsStatus` — see `sig/infrawrench/sdk.rbs`.
1996
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
1997
+ def status(org_id: nil, request_options: nil)
1998
+ @transport.request(
1999
+ http_method: "GET",
2000
+ path: "/api/org/{orgId}/msteams/status",
2001
+ path_params: { "orgId" => org_id },
2002
+ request_options: request_options
2003
+ )
2004
+ end
2005
+
2006
+ # Post a test card to every configured Teams channel
2007
+ #
2008
+ # Ignores trigger opt-ins — every channel gets the test. Fails with the
2009
+ # error Microsoft returned when nothing could be delivered (HTTP 404 usually
2010
+ # means the Workflow was deleted or turned off).
2011
+ #
2012
+ # POST /api/org/{orgId}/msteams/test
2013
+ #
2014
+ # Raises on 400: Bad request
2015
+ #
2016
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
2017
+ # constructed with.
2018
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
2019
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
2020
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
2021
+ def test(org_id: nil, request_options: nil)
2022
+ @transport.request(
2023
+ http_method: "POST",
2024
+ path: "/api/org/{orgId}/msteams/test",
2025
+ path_params: { "orgId" => org_id },
2026
+ request_options: request_options
2027
+ )
2028
+ end
2029
+ end
2030
+
1889
2031
  # `client.orgs`
1890
2032
  class OrgsNamespace
1891
2033
  # @api private
@@ -3229,6 +3371,229 @@ module Infrawrench
3229
3371
  end
3230
3372
  end
3231
3373
 
3374
+ # `client.slack.channels`
3375
+ class SlackChannelsNamespace
3376
+ # @api private
3377
+ # @param transport [Transport]
3378
+ def initialize(transport)
3379
+ @transport = transport
3380
+ end
3381
+
3382
+ # Route alerts to a Slack channel
3383
+ #
3384
+ # Adds a channel, or updates the trigger opt-ins of one already added. Each
3385
+ # trigger defaults to enabled.
3386
+ #
3387
+ # POST /api/org/{orgId}/slack/channels
3388
+ #
3389
+ # Raises on 400: Bad request
3390
+ #
3391
+ # Raises on 404: Not found
3392
+ #
3393
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3394
+ # constructed with.
3395
+ # @param body [Hash, nil] Request body, shaped as `SlackChannelCreate`.
3396
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3397
+ # @return [Hash] Parsed JSON, shaped as `SlackChannel` — see `sig/infrawrench/sdk.rbs`.
3398
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3399
+ def create(org_id: nil, body: nil, request_options: nil)
3400
+ @transport.request(
3401
+ http_method: "POST",
3402
+ path: "/api/org/{orgId}/slack/channels",
3403
+ path_params: { "orgId" => org_id },
3404
+ body: body,
3405
+ request_options: request_options
3406
+ )
3407
+ end
3408
+
3409
+ # Stop routing alerts to a channel
3410
+ #
3411
+ # DELETE /api/org/{orgId}/slack/channels/{id}
3412
+ #
3413
+ # Raises on 404: Not found
3414
+ #
3415
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3416
+ # constructed with.
3417
+ # @param id [String]
3418
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3419
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
3420
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3421
+ def delete(id:, org_id: nil, request_options: nil)
3422
+ @transport.request(
3423
+ http_method: "DELETE",
3424
+ path: "/api/org/{orgId}/slack/channels/{id}",
3425
+ path_params: { "orgId" => org_id, "id" => id },
3426
+ request_options: request_options
3427
+ )
3428
+ end
3429
+
3430
+ # Change which alerts a channel receives
3431
+ #
3432
+ # PATCH /api/org/{orgId}/slack/channels/{id}
3433
+ #
3434
+ # Raises on 404: Not found
3435
+ #
3436
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3437
+ # constructed with.
3438
+ # @param id [String]
3439
+ # @param body [Hash, nil] Request body, shaped as `SlackChannelUpdate`.
3440
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3441
+ # @return [Hash] Parsed JSON, shaped as `SlackChannel` — see `sig/infrawrench/sdk.rbs`.
3442
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3443
+ def update(id:, org_id: nil, body: nil, request_options: nil)
3444
+ @transport.request(
3445
+ http_method: "PATCH",
3446
+ path: "/api/org/{orgId}/slack/channels/{id}",
3447
+ path_params: { "orgId" => org_id, "id" => id },
3448
+ body: body,
3449
+ request_options: request_options
3450
+ )
3451
+ end
3452
+ end
3453
+
3454
+ # `client.slack.installations`
3455
+ class SlackInstallationsNamespace
3456
+ # @api private
3457
+ # @param transport [Transport]
3458
+ def initialize(transport)
3459
+ @transport = transport
3460
+ end
3461
+
3462
+ # List channels the connected workspace can see
3463
+ #
3464
+ # Live call to Slack's conversations.list, for populating a channel picker.
3465
+ # Returns non-archived public and private channels visible to the bot.
3466
+ #
3467
+ # GET
3468
+ # /api/org/{orgId}/slack/installations/{installationId}/available-channels
3469
+ #
3470
+ # Raises on 400: Bad request
3471
+ #
3472
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3473
+ # constructed with.
3474
+ # @param installation_id [String]
3475
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3476
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
3477
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3478
+ def available_channels(installation_id:, org_id: nil, request_options: nil)
3479
+ @transport.request(
3480
+ http_method: "GET",
3481
+ path: "/api/org/{orgId}/slack/installations/{installationId}/available-channels",
3482
+ path_params: { "orgId" => org_id, "installationId" => installation_id },
3483
+ request_options: request_options
3484
+ )
3485
+ end
3486
+
3487
+ # Disconnect a Slack workspace
3488
+ #
3489
+ # Stops all delivery to this workspace. The channel routing is retained, so
3490
+ # re-installing restores it.
3491
+ #
3492
+ # DELETE /api/org/{orgId}/slack/installations/{installationId}
3493
+ #
3494
+ # Raises on 404: Not found
3495
+ #
3496
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3497
+ # constructed with.
3498
+ # @param installation_id [String]
3499
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3500
+ # @return [Hash] Parsed JSON, shaped as `Ok` — see `sig/infrawrench/sdk.rbs`.
3501
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3502
+ def delete(installation_id:, org_id: nil, request_options: nil)
3503
+ @transport.request(
3504
+ http_method: "DELETE",
3505
+ path: "/api/org/{orgId}/slack/installations/{installationId}",
3506
+ path_params: { "orgId" => org_id, "installationId" => installation_id },
3507
+ request_options: request_options
3508
+ )
3509
+ end
3510
+ end
3511
+
3512
+ # `client.slack`
3513
+ class SlackNamespace
3514
+ # @return [SlackChannelsNamespace] `client.slack.channels`
3515
+ attr_reader :channels
3516
+ # @return [SlackInstallationsNamespace] `client.slack.installations`
3517
+ attr_reader :installations
3518
+
3519
+ # @api private
3520
+ # @param transport [Transport]
3521
+ def initialize(transport)
3522
+ @transport = transport
3523
+ @channels = SlackChannelsNamespace.new(@transport)
3524
+ @installations = SlackInstallationsNamespace.new(@transport)
3525
+ end
3526
+
3527
+ # Get the Add to Slack URL
3528
+ #
3529
+ # Returns a slack.com/oauth/v2/authorize URL carrying a signed `state` that
3530
+ # binds the resulting install to this organization. Send the user's browser
3531
+ # there; Slack redirects back to /api/slack/oauth/callback.
3532
+ #
3533
+ # GET /api/org/{orgId}/slack/install-url
3534
+ #
3535
+ # Raises on 400: Bad request
3536
+ #
3537
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3538
+ # constructed with.
3539
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3540
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
3541
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3542
+ def install_url(org_id: nil, request_options: nil)
3543
+ @transport.request(
3544
+ http_method: "GET",
3545
+ path: "/api/org/{orgId}/slack/install-url",
3546
+ path_params: { "orgId" => org_id },
3547
+ request_options: request_options
3548
+ )
3549
+ end
3550
+
3551
+ # Get the organization's Slack connection
3552
+ #
3553
+ # Reports whether the server has a Slack app registered, which workspaces
3554
+ # this organization has connected, and which channels alerts are routed to.
3555
+ #
3556
+ # GET /api/org/{orgId}/slack/status
3557
+ #
3558
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3559
+ # constructed with.
3560
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3561
+ # @return [Hash] Parsed JSON, shaped as `SlackStatus` — see `sig/infrawrench/sdk.rbs`.
3562
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3563
+ def status(org_id: nil, request_options: nil)
3564
+ @transport.request(
3565
+ http_method: "GET",
3566
+ path: "/api/org/{orgId}/slack/status",
3567
+ path_params: { "orgId" => org_id },
3568
+ request_options: request_options
3569
+ )
3570
+ end
3571
+
3572
+ # Post a test message to every configured channel
3573
+ #
3574
+ # Ignores trigger opt-ins — every channel gets the test. Fails with the
3575
+ # Slack error when nothing could be delivered (`not_in_channel` means the
3576
+ # bot needs inviting to a private channel).
3577
+ #
3578
+ # POST /api/org/{orgId}/slack/test
3579
+ #
3580
+ # Raises on 400: Bad request
3581
+ #
3582
+ # @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
3583
+ # constructed with.
3584
+ # @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
3585
+ # @return [Hash] Parsed JSON, shaped as `Hash` — see `sig/infrawrench/sdk.rbs`.
3586
+ # @raise [Infrawrench::ApiError] On any non-2xx response.
3587
+ def test(org_id: nil, request_options: nil)
3588
+ @transport.request(
3589
+ http_method: "POST",
3590
+ path: "/api/org/{orgId}/slack/test",
3591
+ path_params: { "orgId" => org_id },
3592
+ request_options: request_options
3593
+ )
3594
+ end
3595
+ end
3596
+
3232
3597
  # `client.sql`
3233
3598
  class SqlNamespace
3234
3599
  # @api private
@@ -4055,6 +4420,8 @@ module Infrawrench
4055
4420
  attr_reader :invitations
4056
4421
  # @return [KvNamespace] `client.kv`
4057
4422
  attr_reader :kv
4423
+ # @return [MsteamsNamespace] `client.msteams`
4424
+ attr_reader :msteams
4058
4425
  # @return [OrgsNamespace] `client.orgs`
4059
4426
  attr_reader :orgs
4060
4427
  # @return [ProfileNamespace] `client.profile`
@@ -4065,6 +4432,8 @@ module Infrawrench
4065
4432
  attr_reader :search
4066
4433
  # @return [SftpNamespace] `client.sftp`
4067
4434
  attr_reader :sftp
4435
+ # @return [SlackNamespace] `client.slack`
4436
+ attr_reader :slack
4068
4437
  # @return [SqlNamespace] `client.sql`
4069
4438
  attr_reader :sql
4070
4439
  # @return [SshKeysNamespace] `client.ssh_keys`
@@ -4097,11 +4466,13 @@ module Infrawrench
4097
4466
  @docker = DockerNamespace.new(@transport)
4098
4467
  @invitations = InvitationsNamespace.new(@transport)
4099
4468
  @kv = KvNamespace.new(@transport)
4469
+ @msteams = MsteamsNamespace.new(@transport)
4100
4470
  @orgs = OrgsNamespace.new(@transport)
4101
4471
  @profile = ProfileNamespace.new(@transport)
4102
4472
  @resources = ResourcesNamespace.new(@transport)
4103
4473
  @search = SearchNamespace.new(@transport)
4104
4474
  @sftp = SftpNamespace.new(@transport)
4475
+ @slack = SlackNamespace.new(@transport)
4105
4476
  @sql = SqlNamespace.new(@transport)
4106
4477
  @ssh_keys = SshKeysNamespace.new(@transport)
4107
4478
  @ssh_tunnels = SshTunnelsNamespace.new(@transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.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 v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.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 v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.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 = "0.2.0"
18
+ VERSION = "0.4.0"
19
19
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # infrawrench-sdk v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
3
+ # infrawrench-sdk v0.4.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 0.2.0).
6
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.0).
7
7
  #
8
8
  # DO NOT EDIT. Regenerate with:
9
9
  # pnpm --filter @infrawrench/web generate:sdk
@@ -1,7 +1,7 @@
1
- # infrawrench-sdk v0.2.0 | MIT | Copyright (c) 2026 Infrawrench LLC
1
+ # infrawrench-sdk v0.4.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 0.2.0).
4
+ # Generated from the Infrawrench API OpenAPI 3.1 spec (API version 0.4.0).
5
5
  #
6
6
  # DO NOT EDIT. Regenerate with:
7
7
  # pnpm --filter @infrawrench/web generate:sdk
@@ -822,6 +822,36 @@ module Infrawrench
822
822
  # Spec schema: `MetricsResponse`.
823
823
  type metrics_response = { "series" => Array[metric_series] }
824
824
 
825
+ # Spec schema: `MsTeamsStatus`.
826
+ type ms_teams_status = { "webhooks" => Array[ms_teams_webhook] }
827
+
828
+ # Spec schema: `MsTeamsWebhook`.
829
+ type ms_teams_webhook = {
830
+ "id" => String,
831
+ "label" => String,
832
+ "urlHint" => String,
833
+ "syncIncidents" => bool,
834
+ "budgetAlerts" => bool,
835
+ "workflowPages" => bool
836
+ }
837
+
838
+ # Spec schema: `MsTeamsWebhookCreate`.
839
+ type ms_teams_webhook_create = {
840
+ "label" => String,
841
+ "url" => String,
842
+ ?"syncIncidents" => bool,
843
+ ?"budgetAlerts" => bool,
844
+ ?"workflowPages" => bool
845
+ }
846
+
847
+ # Spec schema: `MsTeamsWebhookUpdate`.
848
+ type ms_teams_webhook_update = {
849
+ ?"label" => String,
850
+ ?"syncIncidents" => bool,
851
+ ?"budgetAlerts" => bool,
852
+ ?"workflowPages" => bool
853
+ }
854
+
825
855
  # Spec schema: `NoSqlCommandRequest`.
826
856
  type no_sql_command_request = {
827
857
  "pluginId" => String,
@@ -1560,6 +1590,45 @@ module Infrawrench
1560
1590
  ?"sshUsername" => String
1561
1591
  }
1562
1592
 
1593
+ # Spec schema: `SlackAvailableChannel`.
1594
+ type slack_available_channel = { "id" => String, "name" => String, "isPrivate" => bool }
1595
+
1596
+ # Spec schema: `SlackChannel`.
1597
+ type slack_channel = {
1598
+ "id" => String,
1599
+ "installationId" => String,
1600
+ "channelId" => String,
1601
+ "channelName" => String,
1602
+ "isPrivate" => bool,
1603
+ "syncIncidents" => bool,
1604
+ "budgetAlerts" => bool,
1605
+ "workflowPages" => bool
1606
+ }
1607
+
1608
+ # Spec schema: `SlackChannelCreate`.
1609
+ type slack_channel_create = {
1610
+ "installationId" => String,
1611
+ "channelId" => String,
1612
+ "channelName" => String,
1613
+ ?"isPrivate" => bool,
1614
+ ?"syncIncidents" => bool,
1615
+ ?"budgetAlerts" => bool,
1616
+ ?"workflowPages" => bool
1617
+ }
1618
+
1619
+ # Spec schema: `SlackChannelUpdate`.
1620
+ type slack_channel_update = { ?"syncIncidents" => bool, ?"budgetAlerts" => bool, ?"workflowPages" => bool }
1621
+
1622
+ # Spec schema: `SlackInstallation`.
1623
+ type slack_installation = { "id" => String, "teamId" => String, "teamName" => String | nil }
1624
+
1625
+ # Spec schema: `SlackStatus`.
1626
+ type slack_status = {
1627
+ "configured" => bool,
1628
+ "installations" => Array[slack_installation],
1629
+ "channels" => Array[slack_channel]
1630
+ }
1631
+
1563
1632
  # Spec schema: `SqlEstimateRequest`.
1564
1633
  type sql_estimate_request = { "accountId" => String, "resourceId" => resource_id, "sql" => String }
1565
1634
 
@@ -1912,6 +1981,20 @@ module Infrawrench
1912
1981
  def command: (body: kv_command_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> kv_command_response
1913
1982
  end
1914
1983
 
1984
+ class MsteamsWebhooksNamespace
1985
+ def initialize: (Transport) -> void
1986
+ def create: (?org_id: String?, ?body: ms_teams_webhook_create?, ?request_options: Hash[Symbol, untyped]?) -> ms_teams_webhook
1987
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
1988
+ def update: (id: String, ?org_id: String?, ?body: ms_teams_webhook_update?, ?request_options: Hash[Symbol, untyped]?) -> ms_teams_webhook
1989
+ end
1990
+
1991
+ class MsteamsNamespace
1992
+ attr_reader webhooks: MsteamsWebhooksNamespace
1993
+ def initialize: (Transport) -> void
1994
+ def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ms_teams_status
1995
+ def test: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool, "webhookCount" => Integer, "attempted" => Integer, "succeeded" => Integer }
1996
+ end
1997
+
1915
1998
  class OrgsNamespace
1916
1999
  def initialize: (Transport) -> void
1917
2000
  def create: (body: create_org_request, ?request_options: Hash[Symbol, untyped]?) -> organization
@@ -2002,6 +2085,28 @@ module Infrawrench
2002
2085
  def upload: (body: sftp_upload_form, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2003
2086
  end
2004
2087
 
2088
+ class SlackChannelsNamespace
2089
+ def initialize: (Transport) -> void
2090
+ def create: (?org_id: String?, ?body: slack_channel_create?, ?request_options: Hash[Symbol, untyped]?) -> slack_channel
2091
+ def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2092
+ def update: (id: String, ?org_id: String?, ?body: slack_channel_update?, ?request_options: Hash[Symbol, untyped]?) -> slack_channel
2093
+ end
2094
+
2095
+ class SlackInstallationsNamespace
2096
+ def initialize: (Transport) -> void
2097
+ def available_channels: (installation_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "channels" => Array[slack_available_channel] }
2098
+ def delete: (installation_id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
2099
+ end
2100
+
2101
+ class SlackNamespace
2102
+ attr_reader channels: SlackChannelsNamespace
2103
+ attr_reader installations: SlackInstallationsNamespace
2104
+ def initialize: (Transport) -> void
2105
+ def install_url: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "url" => String }
2106
+ def status: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> slack_status
2107
+ def test: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> { "ok" => bool, "channelCount" => Integer, "attempted" => Integer, "succeeded" => Integer }
2108
+ end
2109
+
2005
2110
  class SqlNamespace
2006
2111
  def initialize: (Transport) -> void
2007
2112
  def estimate: (body: sql_estimate_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> json_object
@@ -2084,11 +2189,13 @@ module Infrawrench
2084
2189
  attr_reader docker: DockerNamespace
2085
2190
  attr_reader invitations: InvitationsNamespace
2086
2191
  attr_reader kv: KvNamespace
2192
+ attr_reader msteams: MsteamsNamespace
2087
2193
  attr_reader orgs: OrgsNamespace
2088
2194
  attr_reader profile: ProfileNamespace
2089
2195
  attr_reader resources: ResourcesNamespace
2090
2196
  attr_reader search: SearchNamespace
2091
2197
  attr_reader sftp: SftpNamespace
2198
+ attr_reader slack: SlackNamespace
2092
2199
  attr_reader sql: SqlNamespace
2093
2200
  attr_reader ssh_keys: SshKeysNamespace
2094
2201
  attr_reader ssh_tunnels: SshTunnelsNamespace
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: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infrawrench LLC
@@ -11,7 +11,7 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2026-07-26 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Generated Ruby client for the Infrawrench API (v0.2.0). Covers the published
14
+ description: Generated Ruby client for the Infrawrench API (v0.4.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 (v0.2.0).
61
+ summary: Generated Ruby client for the Infrawrench API (v0.4.0).
62
62
  test_files: []