infrawrench-sdk 1.1.0 → 1.3.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 +175 -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 +266 -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: e41f651da8ba97002c46fc9a3f0aea2aa5d7a99c70d991dadd001bd42d3cbe5d
|
|
4
|
+
data.tar.gz: 6b44b5672b49038b13bc4f69dcc006c4c0dd174e49fedc3ac017e1038819a9bb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 40ed6ddd9ca198c2d09d28272d84cc2246ce270890561eaf8205bcca83ce8546cc0d74a93eec1b2452c0fbb22f4c1c0a3e274ebd786472707600902aae5669bb
|
|
7
|
+
data.tar.gz: b50431ce75e7fa595c10c2c5391cee2c63566f613584fe3f471388cde6e9439e17b0706b0464347399e99642954e521ae486d18512202c92c2e64939d956e091
|
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.3.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
|
+
437 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.3.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.3.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.3.0)."
|
|
21
|
+
spec.description = "Generated Ruby client for the Infrawrench API (v1.3.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.3.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.3.0).
|
|
7
7
|
#
|
|
8
8
|
# DO NOT EDIT. Regenerate with:
|
|
9
9
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -572,6 +572,29 @@ module Infrawrench
|
|
|
572
572
|
)
|
|
573
573
|
end
|
|
574
574
|
|
|
575
|
+
# Generate Terraform HCL for the account's stored inventory
|
|
576
|
+
#
|
|
577
|
+
# _Requires permission: `resources:read`._
|
|
578
|
+
#
|
|
579
|
+
# GET /api/org/{orgId}/accounts/{id}/export-terraform
|
|
580
|
+
#
|
|
581
|
+
# Raises on 404: Not found
|
|
582
|
+
#
|
|
583
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
584
|
+
# constructed with.
|
|
585
|
+
# @param id [String]
|
|
586
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
587
|
+
# @return [Hash] Parsed JSON, shaped as `TerraformExport` — see `sig/infrawrench/sdk.rbs`.
|
|
588
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
589
|
+
def export_terraform(id:, org_id: nil, request_options: nil)
|
|
590
|
+
@transport.request(
|
|
591
|
+
http_method: "GET",
|
|
592
|
+
path: "/api/org/{orgId}/accounts/{id}/export-terraform",
|
|
593
|
+
path_params: { "orgId" => org_id, "id" => id },
|
|
594
|
+
request_options: request_options
|
|
595
|
+
)
|
|
596
|
+
end
|
|
597
|
+
|
|
575
598
|
# List accounts in this organization
|
|
576
599
|
#
|
|
577
600
|
# _Requires permission: `accounts:read`._
|
|
@@ -2001,6 +2024,124 @@ module Infrawrench
|
|
|
2001
2024
|
end
|
|
2002
2025
|
end
|
|
2003
2026
|
|
|
2027
|
+
# `client.config`
|
|
2028
|
+
class ConfigNamespace
|
|
2029
|
+
# @api private
|
|
2030
|
+
# @param transport [Transport]
|
|
2031
|
+
def initialize(transport)
|
|
2032
|
+
@transport = transport
|
|
2033
|
+
end
|
|
2034
|
+
|
|
2035
|
+
# Apply a configuration document
|
|
2036
|
+
#
|
|
2037
|
+
# Applies the document in a single transaction and returns the plan that was
|
|
2038
|
+
# executed — all or nothing, so a failure never leaves the organization
|
|
2039
|
+
# halfway between two configurations.
|
|
2040
|
+
#
|
|
2041
|
+
# Requires the write permission of every section the document carries, so
|
|
2042
|
+
# this cannot be used to reach past a role that withholds one.
|
|
2043
|
+
#
|
|
2044
|
+
# _Requires permission: `config:write`._
|
|
2045
|
+
#
|
|
2046
|
+
# POST /api/org/{orgId}/config/apply
|
|
2047
|
+
#
|
|
2048
|
+
# Raises on 400: Bad request
|
|
2049
|
+
#
|
|
2050
|
+
# Raises on 402: Payment required — the organization's plan does not include
|
|
2051
|
+
# this
|
|
2052
|
+
#
|
|
2053
|
+
# Raises on 403: Forbidden
|
|
2054
|
+
#
|
|
2055
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2056
|
+
# constructed with.
|
|
2057
|
+
# @param body [Hash] Request body, shaped as `OrgConfigRequest`.
|
|
2058
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2059
|
+
# @return [Hash] Parsed JSON, shaped as `OrgConfigApplyResult` — see
|
|
2060
|
+
# `sig/infrawrench/sdk.rbs`.
|
|
2061
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2062
|
+
def apply(body:, org_id: nil, request_options: nil)
|
|
2063
|
+
@transport.request(
|
|
2064
|
+
http_method: "POST",
|
|
2065
|
+
path: "/api/org/{orgId}/config/apply",
|
|
2066
|
+
path_params: { "orgId" => org_id },
|
|
2067
|
+
body: body,
|
|
2068
|
+
request_options: request_options
|
|
2069
|
+
)
|
|
2070
|
+
end
|
|
2071
|
+
|
|
2072
|
+
# Export the organization's configuration as one document
|
|
2073
|
+
#
|
|
2074
|
+
# Dashboards, workflows, custom graphs, budgets, metric alerts, synthetic
|
|
2075
|
+
# probes, cost centres, the tag policy and the org-wide alert settings,
|
|
2076
|
+
# addressed by stable keys rather than row ids so the result applies to any
|
|
2077
|
+
# organization.
|
|
2078
|
+
#
|
|
2079
|
+
# Credentials, accounts, resources and workflow signing secrets are never
|
|
2080
|
+
# included. Ordering is stable, so re-exporting an unchanged organization
|
|
2081
|
+
# produces the same bytes — commit it to git and the diff is the change.
|
|
2082
|
+
#
|
|
2083
|
+
# Requires the read permission of every section exported; it refuses rather
|
|
2084
|
+
# than silently omitting one, because a partial document applied in
|
|
2085
|
+
# `replace` mode would delete what the exporter could not see.
|
|
2086
|
+
#
|
|
2087
|
+
# _Requires permission: `config:read`._
|
|
2088
|
+
#
|
|
2089
|
+
# GET /api/org/{orgId}/config/export
|
|
2090
|
+
#
|
|
2091
|
+
# Raises on 400: Bad request
|
|
2092
|
+
#
|
|
2093
|
+
# Raises on 403: Forbidden
|
|
2094
|
+
#
|
|
2095
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2096
|
+
# constructed with.
|
|
2097
|
+
# @param sections [String, nil] Comma-separated subset of sections to export. Defaults to
|
|
2098
|
+
# all of: budgets, customGraphs, workflows, dashboards, metricAlerts, probes, costCentres,
|
|
2099
|
+
# tagPolicy, alertSettings.
|
|
2100
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2101
|
+
# @return [Hash] Parsed JSON, shaped as `OrgConfigDocument` — see `sig/infrawrench/sdk.rbs`.
|
|
2102
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2103
|
+
def export(org_id: nil, sections: nil, request_options: nil)
|
|
2104
|
+
@transport.request(
|
|
2105
|
+
http_method: "GET",
|
|
2106
|
+
path: "/api/org/{orgId}/config/export",
|
|
2107
|
+
path_params: { "orgId" => org_id },
|
|
2108
|
+
query: { "sections" => sections },
|
|
2109
|
+
request_options: request_options
|
|
2110
|
+
)
|
|
2111
|
+
end
|
|
2112
|
+
|
|
2113
|
+
# Preview what applying a document would do
|
|
2114
|
+
#
|
|
2115
|
+
# The dry run: validates the document, resolves its cross-references against
|
|
2116
|
+
# this organization, and returns the create/update/delete/unchanged plan
|
|
2117
|
+
# without writing anything. Read-only, so a reviewer with read access can
|
|
2118
|
+
# run it on a pull request.
|
|
2119
|
+
#
|
|
2120
|
+
# _Requires permission: `config:read`._
|
|
2121
|
+
#
|
|
2122
|
+
# POST /api/org/{orgId}/config/plan
|
|
2123
|
+
#
|
|
2124
|
+
# Raises on 400: Bad request
|
|
2125
|
+
#
|
|
2126
|
+
# Raises on 403: Forbidden
|
|
2127
|
+
#
|
|
2128
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
2129
|
+
# constructed with.
|
|
2130
|
+
# @param body [Hash] Request body, shaped as `OrgConfigRequest`.
|
|
2131
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
2132
|
+
# @return [Hash] Parsed JSON, shaped as `OrgConfigPlan` — see `sig/infrawrench/sdk.rbs`.
|
|
2133
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
2134
|
+
def plan(body:, org_id: nil, request_options: nil)
|
|
2135
|
+
@transport.request(
|
|
2136
|
+
http_method: "POST",
|
|
2137
|
+
path: "/api/org/{orgId}/config/plan",
|
|
2138
|
+
path_params: { "orgId" => org_id },
|
|
2139
|
+
body: body,
|
|
2140
|
+
request_options: request_options
|
|
2141
|
+
)
|
|
2142
|
+
end
|
|
2143
|
+
end
|
|
2144
|
+
|
|
2004
2145
|
# `client.connect`
|
|
2005
2146
|
class ConnectNamespace
|
|
2006
2147
|
# @api private
|
|
@@ -6694,6 +6835,35 @@ module Infrawrench
|
|
|
6694
6835
|
)
|
|
6695
6836
|
end
|
|
6696
6837
|
|
|
6838
|
+
# Generate Terraform HCL for a resource (and its direct children) from
|
|
6839
|
+
# stored state
|
|
6840
|
+
#
|
|
6841
|
+
# _Requires permission: `resources:read`._
|
|
6842
|
+
#
|
|
6843
|
+
# POST /api/org/{orgId}/resources/{pluginId}/{typeId}/export-terraform
|
|
6844
|
+
#
|
|
6845
|
+
# Raises on 400: Bad request
|
|
6846
|
+
#
|
|
6847
|
+
# Raises on 404: Not found
|
|
6848
|
+
#
|
|
6849
|
+
# @param org_id [String, nil] Organization id. Defaults to the `org_id` the client was
|
|
6850
|
+
# constructed with.
|
|
6851
|
+
# @param plugin_id [String]
|
|
6852
|
+
# @param type_id [String]
|
|
6853
|
+
# @param body [Hash] Request body, shaped as `ExportTerraformRequest`.
|
|
6854
|
+
# @param request_options [Hash, nil] Per-call `:headers`, `:timeout` and `:open_timeout`.
|
|
6855
|
+
# @return [Hash] Parsed JSON, shaped as `TerraformExport` — see `sig/infrawrench/sdk.rbs`.
|
|
6856
|
+
# @raise [Infrawrench::ApiError] On any non-2xx response.
|
|
6857
|
+
def export_terraform(plugin_id:, type_id:, body:, org_id: nil, request_options: nil)
|
|
6858
|
+
@transport.request(
|
|
6859
|
+
http_method: "POST",
|
|
6860
|
+
path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/export-terraform",
|
|
6861
|
+
path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id },
|
|
6862
|
+
body: body,
|
|
6863
|
+
request_options: request_options
|
|
6864
|
+
)
|
|
6865
|
+
end
|
|
6866
|
+
|
|
6697
6867
|
# Execute an in-form field action (e.g. generate an IAM role)
|
|
6698
6868
|
#
|
|
6699
6869
|
# Calls the plugin's `executeFieldAction`. Returns `{ value }` to assign to
|
|
@@ -9312,6 +9482,8 @@ module Infrawrench
|
|
|
9312
9482
|
attr_reader :change_freezes
|
|
9313
9483
|
# @return [ChangesNamespace] `client.changes`
|
|
9314
9484
|
attr_reader :changes
|
|
9485
|
+
# @return [ConfigNamespace] `client.config`
|
|
9486
|
+
attr_reader :config
|
|
9315
9487
|
# @return [ConnectNamespace] `client.connect`
|
|
9316
9488
|
attr_reader :connect
|
|
9317
9489
|
# @return [CostCentresNamespace] `client.cost_centres`
|
|
@@ -9426,6 +9598,7 @@ module Infrawrench
|
|
|
9426
9598
|
@budgets = BudgetsNamespace.new(@transport)
|
|
9427
9599
|
@change_freezes = ChangeFreezesNamespace.new(@transport)
|
|
9428
9600
|
@changes = ChangesNamespace.new(@transport)
|
|
9601
|
+
@config = ConfigNamespace.new(@transport)
|
|
9429
9602
|
@connect = ConnectNamespace.new(@transport)
|
|
9430
9603
|
@cost_centres = CostCentresNamespace.new(@transport)
|
|
9431
9604
|
@costs = CostsNamespace.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.0).
|
|
5
5
|
#
|
|
6
6
|
# DO NOT EDIT. Regenerate with:
|
|
7
7
|
# pnpm --filter @infrawrench/web generate:sdk
|
|
@@ -1566,6 +1566,9 @@ module Infrawrench
|
|
|
1566
1566
|
?"parentResourceId" => resource_id
|
|
1567
1567
|
}
|
|
1568
1568
|
|
|
1569
|
+
# Spec schema: `ExportTerraformRequest`.
|
|
1570
|
+
type export_terraform_request = { "resourceId" => resource_id, "accountId" => String }
|
|
1571
|
+
|
|
1569
1572
|
# Spec schema: `FieldActionRequest`.
|
|
1570
1573
|
type field_action_request = {
|
|
1571
1574
|
"accountId" => String,
|
|
@@ -2005,6 +2008,234 @@ module Infrawrench
|
|
|
2005
2008
|
# Spec schema: `Ok`.
|
|
2006
2009
|
type ok = { "ok" => bool }
|
|
2007
2010
|
|
|
2011
|
+
# Org-wide notification tuning. Cooldown claims (`lastNotifiedAt`,
|
|
2012
|
+
# `lastSentWeekStart`) are deliberately absent: they are poller state, and
|
|
2013
|
+
# resetting one from an apply would re-open a quiet period and page people
|
|
2014
|
+
# twice.
|
|
2015
|
+
#
|
|
2016
|
+
# Spec schema: `OrgConfigAlertSettings`.
|
|
2017
|
+
type org_config_alert_settings = {
|
|
2018
|
+
?"costAnomaly" => {
|
|
2019
|
+
"sigmas" => Numeric,
|
|
2020
|
+
"minDeltaCents" => Integer,
|
|
2021
|
+
"newSourceMinCents" => Integer,
|
|
2022
|
+
"smsAlerts" => "off" | "new_source" | "all"
|
|
2023
|
+
},
|
|
2024
|
+
?"drift" => {
|
|
2025
|
+
"notifyCreated" => bool,
|
|
2026
|
+
"notifyUpdated" => bool,
|
|
2027
|
+
"notifyDeleted" => bool,
|
|
2028
|
+
"cooldownMinutes" => Integer,
|
|
2029
|
+
"minChanges" => Integer,
|
|
2030
|
+
"accounts" => Array[String]
|
|
2031
|
+
},
|
|
2032
|
+
?"expiry" => { "enabled" => bool, "leadDays" => Integer },
|
|
2033
|
+
?"posture" => { "enabled" => bool },
|
|
2034
|
+
?"digest" => {
|
|
2035
|
+
"enabled" => bool,
|
|
2036
|
+
"timezone" => String,
|
|
2037
|
+
"sendDay" => Integer,
|
|
2038
|
+
"sendHour" => Integer,
|
|
2039
|
+
"narrativeEnabled" => bool,
|
|
2040
|
+
"recipients" => Array[String]
|
|
2041
|
+
}
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
# Spec schema: `OrgConfigApplyResult`.
|
|
2045
|
+
type org_config_apply_result = org_config_plan & { "applied" => bool }
|
|
2046
|
+
|
|
2047
|
+
# Spec schema: `OrgConfigBudget`.
|
|
2048
|
+
type org_config_budget = {
|
|
2049
|
+
"key" => String,
|
|
2050
|
+
"name" => String,
|
|
2051
|
+
"amountCents" => Integer,
|
|
2052
|
+
?"currency" => String,
|
|
2053
|
+
?"filters" => Array[org_config_cost_filter],
|
|
2054
|
+
"thresholds" => Array[{ "type" => "actual" | "forecast", "percent" => Integer }]
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
# Spec schema: `OrgConfigChange`.
|
|
2058
|
+
type org_config_change = {
|
|
2059
|
+
"section" => org_config_section,
|
|
2060
|
+
"key" => String,
|
|
2061
|
+
"name" => String,
|
|
2062
|
+
"action" => "create" | "update" | "delete" | "unchanged",
|
|
2063
|
+
?"fields" => Array[String]
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
# Spec schema: `OrgConfigCostCentre`.
|
|
2067
|
+
type org_config_cost_centre = {
|
|
2068
|
+
"key" => String,
|
|
2069
|
+
"name" => String,
|
|
2070
|
+
?"description" => String | nil,
|
|
2071
|
+
?"rules" => Array[{
|
|
2072
|
+
"priority" => Integer,
|
|
2073
|
+
?"match" => {
|
|
2074
|
+
?"tagKey" => String,
|
|
2075
|
+
?"tagValue" => String,
|
|
2076
|
+
?"account" => String,
|
|
2077
|
+
?"pluginId" => String,
|
|
2078
|
+
?"service" => String
|
|
2079
|
+
}
|
|
2080
|
+
}]
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
# Spec schema: `OrgConfigCostFilter`.
|
|
2084
|
+
type org_config_cost_filter = {
|
|
2085
|
+
"dimension" => String,
|
|
2086
|
+
"op" => "in" | "not_in",
|
|
2087
|
+
"values" => Array[String],
|
|
2088
|
+
?"tagKey" => String
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
# Spec schema: `OrgConfigCustomGraph`.
|
|
2092
|
+
type org_config_custom_graph = { "key" => String, "name" => String, ?"description" => String | nil, "source" => String }
|
|
2093
|
+
|
|
2094
|
+
# Spec schema: `OrgConfigDashboard`.
|
|
2095
|
+
type org_config_dashboard = {
|
|
2096
|
+
"key" => String,
|
|
2097
|
+
"name" => String,
|
|
2098
|
+
?"isDefault" => bool,
|
|
2099
|
+
?"cards" => Array[org_config_dashboard_card]
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
# One card. Position is the index in the dashboard's `cards` array — the grid
|
|
2103
|
+
# order all three card kinds share.
|
|
2104
|
+
#
|
|
2105
|
+
# Spec schema: `OrgConfigDashboardCard`.
|
|
2106
|
+
type org_config_dashboard_card = {
|
|
2107
|
+
"kind" => "widget",
|
|
2108
|
+
"widgetKind" => "cost_graph" | "cost_report" | "budget" | "custom_graph",
|
|
2109
|
+
?"title" => String,
|
|
2110
|
+
?"config" => json_object,
|
|
2111
|
+
?"budgetKey" => String,
|
|
2112
|
+
?"graphKey" => String,
|
|
2113
|
+
?"width" => Integer,
|
|
2114
|
+
?"height" => Integer
|
|
2115
|
+
}
|
|
2116
|
+
| { "kind" => "workflow", "workflowKey" => String }
|
|
2117
|
+
| {
|
|
2118
|
+
"kind" => "resource",
|
|
2119
|
+
"pluginId" => String,
|
|
2120
|
+
"resourceTypeId" => String,
|
|
2121
|
+
"externalId" => String,
|
|
2122
|
+
"account" => String,
|
|
2123
|
+
?"width" => Integer,
|
|
2124
|
+
?"height" => Integer
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
# An organization's configuration. Every section is optional — a document that
|
|
2128
|
+
# omits one leaves it entirely alone, in both apply modes.
|
|
2129
|
+
#
|
|
2130
|
+
# Spec schema: `OrgConfigDocument`.
|
|
2131
|
+
type org_config_document = {
|
|
2132
|
+
?"version" => Integer,
|
|
2133
|
+
?"exportedAt" => String,
|
|
2134
|
+
?"exportedFrom" => { "organizationId" => String, "organizationName" => String },
|
|
2135
|
+
?"budgets" => Array[org_config_budget],
|
|
2136
|
+
?"customGraphs" => Array[org_config_custom_graph],
|
|
2137
|
+
?"workflows" => Array[org_config_workflow],
|
|
2138
|
+
?"dashboards" => Array[org_config_dashboard],
|
|
2139
|
+
?"metricAlerts" => Array[org_config_metric_alert],
|
|
2140
|
+
?"probes" => Array[org_config_probe],
|
|
2141
|
+
?"costCentres" => Array[org_config_cost_centre],
|
|
2142
|
+
?"tagPolicy" => {
|
|
2143
|
+
"requiredTags" => Array[{ "key" => String, ?"allowedValues" => Array[String] }],
|
|
2144
|
+
"enforceOnCreate" => bool
|
|
2145
|
+
},
|
|
2146
|
+
?"alertSettings" => org_config_alert_settings
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
# Spec schema: `OrgConfigMetricAlert`.
|
|
2150
|
+
type org_config_metric_alert = {
|
|
2151
|
+
"key" => String,
|
|
2152
|
+
"name" => String,
|
|
2153
|
+
?"pluginId" => String | nil,
|
|
2154
|
+
?"resourceTypeId" => String | nil,
|
|
2155
|
+
?"tagKey" => String | nil,
|
|
2156
|
+
?"tagValue" => String | nil,
|
|
2157
|
+
"metricKey" => String,
|
|
2158
|
+
"comparator" => ">" | ">=" | "<" | "<=",
|
|
2159
|
+
"threshold" => Numeric,
|
|
2160
|
+
?"forMinutes" => Integer,
|
|
2161
|
+
?"cooldownMinutes" => Integer,
|
|
2162
|
+
?"enabled" => bool
|
|
2163
|
+
}
|
|
2164
|
+
|
|
2165
|
+
# Spec schema: `OrgConfigPlan`.
|
|
2166
|
+
type org_config_plan = {
|
|
2167
|
+
"mode" => "merge" | "replace",
|
|
2168
|
+
"changes" => Array[org_config_change],
|
|
2169
|
+
"unresolved" => Array[org_config_unresolved],
|
|
2170
|
+
"counts" => { "create" => Integer, "update" => Integer, "delete" => Integer, "unchanged" => Integer }
|
|
2171
|
+
}
|
|
2172
|
+
|
|
2173
|
+
# Spec schema: `OrgConfigProbe`.
|
|
2174
|
+
type org_config_probe = {
|
|
2175
|
+
"key" => String,
|
|
2176
|
+
"name" => String,
|
|
2177
|
+
"url" => String,
|
|
2178
|
+
?"method" => String,
|
|
2179
|
+
?"intervalSeconds" => Integer,
|
|
2180
|
+
?"timeoutMs" => Integer,
|
|
2181
|
+
?"failureThreshold" => Integer,
|
|
2182
|
+
?"enabled" => bool
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
# Spec schema: `OrgConfigRequest`.
|
|
2186
|
+
type org_config_request = { "document" => org_config_document, ?"mode" => "merge" | "replace" }
|
|
2187
|
+
|
|
2188
|
+
# Spec schema: `OrgConfigSection`.
|
|
2189
|
+
type org_config_section = "budgets"
|
|
2190
|
+
| "customGraphs"
|
|
2191
|
+
| "workflows"
|
|
2192
|
+
| "dashboards"
|
|
2193
|
+
| "metricAlerts"
|
|
2194
|
+
| "probes"
|
|
2195
|
+
| "costCentres"
|
|
2196
|
+
| "tagPolicy"
|
|
2197
|
+
| "alertSettings"
|
|
2198
|
+
|
|
2199
|
+
# Something the document asked for that this organization could not satisfy —
|
|
2200
|
+
# a pin for a resource nobody has synced, an account name that does not exist
|
|
2201
|
+
# here. Not fatal: the affected card, clause or deletion is dropped and the
|
|
2202
|
+
# rest of the document still applies.
|
|
2203
|
+
#
|
|
2204
|
+
# Spec schema: `OrgConfigUnresolved`.
|
|
2205
|
+
type org_config_unresolved = { "section" => org_config_section, "key" => String, "detail" => String }
|
|
2206
|
+
|
|
2207
|
+
# A workflow. The git-webhook signing secret is deliberately absent — it is
|
|
2208
|
+
# write-only, so a document can neither leak nor set one.
|
|
2209
|
+
#
|
|
2210
|
+
# Spec schema: `OrgConfigWorkflow`.
|
|
2211
|
+
type org_config_workflow = {
|
|
2212
|
+
"key" => String,
|
|
2213
|
+
"name" => String,
|
|
2214
|
+
?"description" => String | nil,
|
|
2215
|
+
"source" => String,
|
|
2216
|
+
?"trigger" => org_config_workflow_trigger,
|
|
2217
|
+
?"metrics" => Array[{ "key" => String, "label" => String, ?"unit" => String | nil, ?"type" => String }],
|
|
2218
|
+
?"enabled" => bool
|
|
2219
|
+
}
|
|
2220
|
+
|
|
2221
|
+
# Spec schema: `OrgConfigWorkflowTrigger`.
|
|
2222
|
+
type org_config_workflow_trigger = { "kind" => "manual" }
|
|
2223
|
+
| { "kind" => "cron", "expression" => String, ?"timezone" => String }
|
|
2224
|
+
| {
|
|
2225
|
+
"kind" => "git",
|
|
2226
|
+
?"provider" => String,
|
|
2227
|
+
?"repo" => String,
|
|
2228
|
+
?"branch" => String,
|
|
2229
|
+
?"events" => Array[String],
|
|
2230
|
+
?"installationId" => Integer
|
|
2231
|
+
}
|
|
2232
|
+
| {
|
|
2233
|
+
"kind" => "budget",
|
|
2234
|
+
"budgetKey" => String,
|
|
2235
|
+
?"percent" => Numeric,
|
|
2236
|
+
?"metric" => "actual" | "forecast"
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2008
2239
|
# Spec schema: `OrgMember`.
|
|
2009
2240
|
type org_member = {
|
|
2010
2241
|
"id" => String,
|
|
@@ -2215,6 +2446,8 @@ module Infrawrench
|
|
|
2215
2446
|
| "freezes:write"
|
|
2216
2447
|
| "freezes:override"
|
|
2217
2448
|
| "tag-policy:override"
|
|
2449
|
+
| "config:read"
|
|
2450
|
+
| "config:write"
|
|
2218
2451
|
| "audit:read"
|
|
2219
2452
|
| "access:read"
|
|
2220
2453
|
| "access:request"
|
|
@@ -2671,6 +2904,7 @@ module Infrawrench
|
|
|
2671
2904
|
"canEdit" => bool,
|
|
2672
2905
|
"editableFields" => Array[editable_field],
|
|
2673
2906
|
"credentialFormats" => Array[credential_format],
|
|
2907
|
+
"supportsTerraformExport" => bool,
|
|
2674
2908
|
"hasManifestEditor" => bool,
|
|
2675
2909
|
"hasSecretVersions" => bool,
|
|
2676
2910
|
"resourceDisplayName" => String,
|
|
@@ -3856,6 +4090,26 @@ module Infrawrench
|
|
|
3856
4090
|
?"allowedValues" => Array[String]
|
|
3857
4091
|
}
|
|
3858
4092
|
|
|
4093
|
+
# Spec schema: `TerraformExport`.
|
|
4094
|
+
type terraform_export = {
|
|
4095
|
+
"hcl" => String,
|
|
4096
|
+
"exported" => Array[{
|
|
4097
|
+
"id" => resource_id,
|
|
4098
|
+
"displayName" => String,
|
|
4099
|
+
"pluginId" => String,
|
|
4100
|
+
"resourceTypeId" => String,
|
|
4101
|
+
"address" => String,
|
|
4102
|
+
?"importId" => String
|
|
4103
|
+
}],
|
|
4104
|
+
"unsupported" => Array[{
|
|
4105
|
+
"id" => resource_id,
|
|
4106
|
+
"displayName" => String,
|
|
4107
|
+
"pluginId" => String,
|
|
4108
|
+
"resourceTypeId" => String,
|
|
4109
|
+
"reason" => String
|
|
4110
|
+
}]
|
|
4111
|
+
}
|
|
4112
|
+
|
|
3859
4113
|
# Spec schema: `TotpEnrollment`.
|
|
3860
4114
|
type totp_enrollment = {
|
|
3861
4115
|
"factorId" => String,
|
|
@@ -4014,6 +4268,7 @@ module Infrawrench
|
|
|
4014
4268
|
def create: (body: (create_account_request & { ?"pluginId" => plugin_id }), ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> create_account_response
|
|
4015
4269
|
def delete: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
4016
4270
|
def detail: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> account_detail
|
|
4271
|
+
def export_terraform: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> terraform_export
|
|
4017
4272
|
def list: (?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> Array[account]
|
|
4018
4273
|
def resources: (id: String, ?org_id: String?, ?top_level_only: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> Array[resource]
|
|
4019
4274
|
def sync: (id: String, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> sync_response
|
|
@@ -4140,6 +4395,13 @@ module Infrawrench
|
|
|
4140
4395
|
def resource: (resource_id: String, ?org_id: String?, ?limit: Integer?, ?request_options: Hash[Symbol, untyped]?) -> resource_change_list_response
|
|
4141
4396
|
end
|
|
4142
4397
|
|
|
4398
|
+
class ConfigNamespace
|
|
4399
|
+
def initialize: (Transport) -> void
|
|
4400
|
+
def apply: (body: org_config_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> org_config_apply_result
|
|
4401
|
+
def export: (?org_id: String?, ?sections: String?, ?request_options: Hash[Symbol, untyped]?) -> org_config_document
|
|
4402
|
+
def plan: (body: org_config_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> org_config_plan
|
|
4403
|
+
end
|
|
4404
|
+
|
|
4143
4405
|
class ConnectNamespace
|
|
4144
4406
|
def initialize: (Transport) -> void
|
|
4145
4407
|
def env_deploy: (body: connect_env_deploy_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
@@ -4497,6 +4759,7 @@ module Infrawrench
|
|
|
4497
4759
|
def describe: (plugin_id: plugin_id, type_id: resource_type_id, body: describe_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> describe_response
|
|
4498
4760
|
def detail: (plugin_id: plugin_id, type_id: resource_type_id, resource_id: resource_id, ?org_id: String?, ?account_id: String?, ?parent_resource_id: resource_id?, ?include_peer_panes: "true" | "false"?, ?request_options: Hash[Symbol, untyped]?) -> resource_detail
|
|
4499
4761
|
def export_credential: (plugin_id: plugin_id, type_id: resource_type_id, body: export_credential_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> credential_export
|
|
4762
|
+
def export_terraform: (plugin_id: plugin_id, type_id: resource_type_id, body: export_terraform_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> terraform_export
|
|
4500
4763
|
def field_action: (body: field_action_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> field_action_response
|
|
4501
4764
|
def import_yaml: (plugin_id: plugin_id, body: import_yaml_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> json_object
|
|
4502
4765
|
def invoke_action: (body: invoke_action_request, ?org_id: String?, ?request_options: Hash[Symbol, untyped]?) -> ok
|
|
@@ -4713,6 +4976,7 @@ module Infrawrench
|
|
|
4713
4976
|
attr_reader budgets: BudgetsNamespace
|
|
4714
4977
|
attr_reader change_freezes: ChangeFreezesNamespace
|
|
4715
4978
|
attr_reader changes: ChangesNamespace
|
|
4979
|
+
attr_reader config: ConfigNamespace
|
|
4716
4980
|
attr_reader connect: ConnectNamespace
|
|
4717
4981
|
attr_reader cost_centres: CostCentresNamespace
|
|
4718
4982
|
attr_reader costs: CostsNamespace
|
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.3.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-10 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.3.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.3.0).
|
|
62
62
|
test_files: []
|