Class: Infrawrench::ResourcesNamespace
- Inherits:
-
Object
- Object
- Infrawrench::ResourcesNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.resources
Instance Attribute Summary collapse
-
#manifest ⇒ ResourcesManifestNamespace
readonly
client.resources.manifest. -
#secret_versions ⇒ ResourcesSecretVersionsNamespace
readonly
client.resources.secret_versions.
Instance Method Summary collapse
-
#attach(body:, org_id: nil, request_options: nil) ⇒ Hash
Attach a resource onto another (e.g. disk → VM).
-
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a new resource via its plugin.
-
#create_config(body:, org_id: nil, request_options: nil) ⇒ Hash
Get the dynamic create form for a resource type.
-
#create_cost_estimate(body:, org_id: nil, request_options: nil) ⇒ Hash
Cost estimate for the current create form values.
-
#create_pricing(body:, org_id: nil, request_options: nil) ⇒ Hash
Pricing per size for a create form.
-
#delete(plugin_id:, type_id:, resource_id:, account_id:, org_id: nil, parent_resource_id: nil, request_options: nil) ⇒ Hash
Delete a resource via the plugin.
-
#describe(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Get human-readable describe text for a resource.
-
#detail(plugin_id:, type_id:, resource_id:, org_id: nil, account_id: nil, parent_resource_id: nil, include_peer_panes: nil, request_options: nil) ⇒ Hash
Full resource detail page payload.
-
#export_credential(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Export a credential file for a resource (one-time reveal).
-
#field_action(body:, org_id: nil, request_options: nil) ⇒ Hash
Execute an in-form field action (e.g. generate an IAM role).
-
#import_yaml(plugin_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Bulk-import resources from YAML (kubectl apply -f equivalent).
-
#initialize(transport) ⇒ ResourcesNamespace
constructor
private
A new instance of ResourcesNamespace.
-
#invoke_action(body:, org_id: nil, request_options: nil) ⇒ Hash
Invoke a plugin-defined action on a resource.
-
#logs(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Fetch logs for a resource.
-
#metrics(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Fetch metric series for a resource.
-
#nosql_command(body:, org_id: nil, request_options: nil) ⇒ Hash
Run a NoSQL document-browser command (e.g. MongoDB shell).
-
#peer_panes(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Array<Hash>
Lazy-fetch peer-integration panes for a resource.
-
#picker_resources(body:, org_id: nil, request_options: nil) ⇒ Array<Hash>
Fetch options for a
resource-pickerfield. -
#update(body:, org_id: nil, request_options: nil) ⇒ Hash
Update a resource via its plugin.
Constructor Details
#initialize(transport) ⇒ ResourcesNamespace
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of ResourcesNamespace.
5046 5047 5048 5049 5050 |
# File 'lib/infrawrench/client.rb', line 5046 def initialize(transport) @transport = transport @manifest = ResourcesManifestNamespace.new(@transport) @secret_versions = ResourcesSecretVersionsNamespace.new(@transport) end |
Instance Attribute Details
#manifest ⇒ ResourcesManifestNamespace (readonly)
Returns client.resources.manifest.
5040 5041 5042 |
# File 'lib/infrawrench/client.rb', line 5040 def manifest @manifest end |
#secret_versions ⇒ ResourcesSecretVersionsNamespace (readonly)
Returns client.resources.secret_versions.
5042 5043 5044 |
# File 'lib/infrawrench/client.rb', line 5042 def secret_versions @secret_versions end |
Instance Method Details
#attach(body:, org_id: nil, request_options: nil) ⇒ Hash
Attach a resource onto another (e.g. disk → VM)
Requires permission: resources:write.
POST /api/org/orgId/resources/attach
Raises on 400: Bad request
Raises on 404: Not found
5068 5069 5070 5071 5072 5073 5074 5075 5076 |
# File 'lib/infrawrench/client.rb', line 5068 def attach(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/attach", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a new resource via its plugin
Requires permission: resources:write.
POST /api/org/orgId/resources/create
Raises on 400: Bad request
Raises on 404: Not found
Raises on 422: Blocked by the organization's tag policy: the submitted
fields are missing a required tag (or carry a disallowed value). Retry
with the x-tag-policy-override: true header if you hold
tag-policy:override; both blocks and overrides are audit-logged.
5100 5101 5102 5103 5104 5105 5106 5107 5108 |
# File 'lib/infrawrench/client.rb', line 5100 def create(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/create", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#create_config(body:, org_id: nil, request_options: nil) ⇒ Hash
Get the dynamic create form for a resource type
Calls the plugin's getCreateConfig. The returned CreateResourceConfig
is plugin-shaped — see JsonObject.
Requires permission: resources:write.
POST /api/org/orgId/resources/create-config
Raises on 400: Bad request
Raises on 404: Not found
5129 5130 5131 5132 5133 5134 5135 5136 5137 |
# File 'lib/infrawrench/client.rb', line 5129 def create_config(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/create-config", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#create_cost_estimate(body:, org_id: nil, request_options: nil) ⇒ Hash
Cost estimate for the current create form values
Requires permission: resources:read.
POST /api/org/orgId/resources/create-cost-estimate
5151 5152 5153 5154 5155 5156 5157 5158 5159 |
# File 'lib/infrawrench/client.rb', line 5151 def create_cost_estimate(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/create-cost-estimate", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#create_pricing(body:, org_id: nil, request_options: nil) ⇒ Hash
Pricing per size for a create form
Requires permission: resources:read.
POST /api/org/orgId/resources/create-pricing
5173 5174 5175 5176 5177 5178 5179 5180 5181 |
# File 'lib/infrawrench/client.rb', line 5173 def create_pricing(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/create-pricing", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(plugin_id:, type_id:, resource_id:, account_id:, org_id: nil, parent_resource_id: nil, request_options: nil) ⇒ Hash
Delete a resource via the plugin
Requires permission: resources:delete.
DELETE /api/org/orgId/resources/pluginId/typeId
Raises on 400: Bad request
Raises on 404: Not found
Raises on 423: Blocked by an active change freeze. Retry with the
x-change-freeze-override: true header if you hold freezes:override;
both blocks and overrides are audit-logged.
5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 |
# File 'lib/infrawrench/client.rb', line 5207 def delete( plugin_id:, type_id:, resource_id:, account_id:, org_id: nil, parent_resource_id: nil, request_options: nil ) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, query: { "resourceId" => resource_id, "accountId" => account_id, "parentResourceId" => parent_resource_id }, request_options: ) end |
#describe(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Get human-readable describe text for a resource
Requires permission: resources:read.
POST /api/org/orgId/resources/pluginId/typeId/describe
Raises on 400: Bad request
Raises on 404: Not found
5247 5248 5249 5250 5251 5252 5253 5254 5255 |
# File 'lib/infrawrench/client.rb', line 5247 def describe(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/describe", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, body: body, request_options: ) end |
#detail(plugin_id:, type_id:, resource_id:, org_id: nil, account_id: nil, parent_resource_id: nil, include_peer_panes: nil, request_options: nil) ⇒ Hash
Full resource detail page payload
Performs a live listResources against the provider, falls back to DB on
failure, and returns the plugin's renderDetail schema plus host-derived
flags (SQL/KV/SSH availability, child resources, peer panes, etc).
Requires permission: resources:read.
GET /api/org/orgId/resources/pluginId/typeId/detail
Raises on 400: Bad request
Raises on 404: Not found
5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 |
# File 'lib/infrawrench/client.rb', line 5283 def detail( plugin_id:, type_id:, resource_id:, org_id: nil, account_id: nil, parent_resource_id: nil, include_peer_panes: nil, request_options: nil ) @transport.request( http_method: "GET", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/detail", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, query: { "resourceId" => resource_id, "accountId" => account_id, "parentResourceId" => parent_resource_id, "includePeerPanes" => include_peer_panes }, request_options: ) end |
#export_credential(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Export a credential file for a resource (one-time reveal)
Requires permission: secrets:read.
POST /api/org/orgId/resources/pluginId/typeId/export-credential
Raises on 400: Bad request
Raises on 404: Not found
5325 5326 5327 5328 5329 5330 5331 5332 5333 |
# File 'lib/infrawrench/client.rb', line 5325 def export_credential(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/export-credential", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, body: body, request_options: ) end |
#field_action(body:, org_id: nil, request_options: nil) ⇒ Hash
Execute an in-form field action (e.g. generate an IAM role)
Calls the plugin's executeFieldAction. Returns { value } to assign to
the field; for select fields the optional option should be spliced
into the options list so the new value can be displayed.
POST /api/org/orgId/resources/field-action
Raises on 400: Bad request
Raises on 404: Not found
5354 5355 5356 5357 5358 5359 5360 5361 5362 |
# File 'lib/infrawrench/client.rb', line 5354 def field_action(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/field-action", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#import_yaml(plugin_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Bulk-import resources from YAML (kubectl apply -f equivalent)
Requires permission: resources:write.
POST /api/org/orgId/resources/pluginId/import-yaml
Raises on 400: Bad request
Raises on 404: Not found
5381 5382 5383 5384 5385 5386 5387 5388 5389 |
# File 'lib/infrawrench/client.rb', line 5381 def import_yaml(plugin_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/import-yaml", path_params: { "orgId" => org_id, "pluginId" => plugin_id }, body: body, request_options: ) end |
#invoke_action(body:, org_id: nil, request_options: nil) ⇒ Hash
Invoke a plugin-defined action on a resource
Actions the plugin marks destructive: true in its detail schema are
blocked with 423 while an org change freeze is in effect.
Requires permission: resources:write.
POST /api/org/orgId/resources/invoke-action
Raises on 400: Bad request
Raises on 404: Not found
Raises on 423: Blocked by an active change freeze. Retry with the
x-change-freeze-override: true header if you hold freezes:override;
both blocks and overrides are audit-logged.
5414 5415 5416 5417 5418 5419 5420 5421 5422 |
# File 'lib/infrawrench/client.rb', line 5414 def invoke_action(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/invoke-action", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#logs(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Fetch logs for a resource
Requires permission: resources:read.
POST /api/org/orgId/resources/pluginId/typeId/logs
Raises on 400: Bad request
Raises on 404: Not found
5442 5443 5444 5445 5446 5447 5448 5449 5450 |
# File 'lib/infrawrench/client.rb', line 5442 def logs(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/logs", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, body: body, request_options: ) end |
#metrics(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Fetch metric series for a resource
Historical points from the metrics store when the resource has accumulated any (resources pinned to a dashboard are polled continuously); otherwise the series are fetched live from the provider on demand.
Requires permission: resources:read.
POST /api/org/orgId/resources/pluginId/typeId/metrics
Raises on 400: Bad request
Raises on 404: Not found
5474 5475 5476 5477 5478 5479 5480 5481 5482 |
# File 'lib/infrawrench/client.rb', line 5474 def metrics(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/metrics", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, body: body, request_options: ) end |
#nosql_command(body:, org_id: nil, request_options: nil) ⇒ Hash
Run a NoSQL document-browser command (e.g. MongoDB shell)
Requires permission: resources:execute.
POST /api/org/orgId/resources/nosql-command
Raises on 400: Bad request
Raises on 404: Not found
5500 5501 5502 5503 5504 5505 5506 5507 5508 |
# File 'lib/infrawrench/client.rb', line 5500 def nosql_command(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/nosql-command", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#peer_panes(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Array<Hash>
Lazy-fetch peer-integration panes for a resource
Requires permission: resources:read.
POST /api/org/orgId/resources/pluginId/typeId/peer-panes
Raises on 404: Not found
5527 5528 5529 5530 5531 5532 5533 5534 5535 |
# File 'lib/infrawrench/client.rb', line 5527 def peer_panes(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/peer-panes", path_params: { "orgId" => org_id, "pluginId" => plugin_id, "typeId" => type_id }, body: body, request_options: ) end |
#picker_resources(body:, org_id: nil, request_options: nil) ⇒ Array<Hash>
Fetch options for a resource-picker field
Requires permission: resources:read.
POST /api/org/orgId/resources/picker-resources
5550 5551 5552 5553 5554 5555 5556 5557 5558 |
# File 'lib/infrawrench/client.rb', line 5550 def picker_resources(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/picker-resources", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#update(body:, org_id: nil, request_options: nil) ⇒ Hash
Update a resource via its plugin
Applies the supplied field changes upstream and persists the refreshed
fields/display name to the DB. The body's fields map only carries the
keys the caller actually changed. Blocked with 423 while an org change
freeze is in effect (this is also the path that applies right-sizing
recommendations); every applied update is audit-logged.
POST /api/org/orgId/resources/update
Raises on 400: Bad request
Raises on 404: Not found
Raises on 423: Blocked by an active change freeze. Retry with the
x-change-freeze-override: true header if you hold freezes:override;
both blocks and overrides are audit-logged.
5585 5586 5587 5588 5589 5590 5591 5592 5593 |
# File 'lib/infrawrench/client.rb', line 5585 def update(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/update", path_params: { "orgId" => org_id }, body: body, request_options: ) end |