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.
4087 4088 4089 4090 4091 |
# File 'lib/infrawrench/client.rb', line 4087 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.
4081 4082 4083 |
# File 'lib/infrawrench/client.rb', line 4081 def manifest @manifest end |
#secret_versions ⇒ ResourcesSecretVersionsNamespace (readonly)
Returns client.resources.secret_versions.
4083 4084 4085 |
# File 'lib/infrawrench/client.rb', line 4083 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
4109 4110 4111 4112 4113 4114 4115 4116 4117 |
# File 'lib/infrawrench/client.rb', line 4109 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
4136 4137 4138 4139 4140 4141 4142 4143 4144 |
# File 'lib/infrawrench/client.rb', line 4136 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
4165 4166 4167 4168 4169 4170 4171 4172 4173 |
# File 'lib/infrawrench/client.rb', line 4165 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
4187 4188 4189 4190 4191 4192 4193 4194 4195 |
# File 'lib/infrawrench/client.rb', line 4187 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
4209 4210 4211 4212 4213 4214 4215 4216 4217 |
# File 'lib/infrawrench/client.rb', line 4209 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.
4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 |
# File 'lib/infrawrench/client.rb', line 4243 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
4283 4284 4285 4286 4287 4288 4289 4290 4291 |
# File 'lib/infrawrench/client.rb', line 4283 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
4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 |
# File 'lib/infrawrench/client.rb', line 4319 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
4361 4362 4363 4364 4365 4366 4367 4368 4369 |
# File 'lib/infrawrench/client.rb', line 4361 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
4390 4391 4392 4393 4394 4395 4396 4397 4398 |
# File 'lib/infrawrench/client.rb', line 4390 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
4417 4418 4419 4420 4421 4422 4423 4424 4425 |
# File 'lib/infrawrench/client.rb', line 4417 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.
4450 4451 4452 4453 4454 4455 4456 4457 4458 |
# File 'lib/infrawrench/client.rb', line 4450 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
4478 4479 4480 4481 4482 4483 4484 4485 4486 |
# File 'lib/infrawrench/client.rb', line 4478 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
4510 4511 4512 4513 4514 4515 4516 4517 4518 |
# File 'lib/infrawrench/client.rb', line 4510 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
4536 4537 4538 4539 4540 4541 4542 4543 4544 |
# File 'lib/infrawrench/client.rb', line 4536 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
4563 4564 4565 4566 4567 4568 4569 4570 4571 |
# File 'lib/infrawrench/client.rb', line 4563 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
4586 4587 4588 4589 4590 4591 4592 4593 4594 |
# File 'lib/infrawrench/client.rb', line 4586 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.
POST /api/org/orgId/resources/update
Raises on 400: Bad request
Raises on 404: Not found
4615 4616 4617 4618 4619 4620 4621 4622 4623 |
# File 'lib/infrawrench/client.rb', line 4615 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 |