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).
-
#cost_estimate(body:, org_id: nil, request_options: nil) ⇒ Hash
Estimated monthly cost of a configuration.
-
#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_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).
-
#export_terraform(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Generate Terraform HCL for a resource (and its direct children) from stored state.
-
#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.
11338 11339 11340 11341 11342 |
# File 'lib/infrawrench/client.rb', line 11338 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.
11332 11333 11334 |
# File 'lib/infrawrench/client.rb', line 11332 def manifest @manifest end |
#secret_versions ⇒ ResourcesSecretVersionsNamespace (readonly)
Returns client.resources.secret_versions.
11334 11335 11336 |
# File 'lib/infrawrench/client.rb', line 11334 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
11360 11361 11362 11363 11364 11365 11366 11367 11368 |
# File 'lib/infrawrench/client.rb', line 11360 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 |
#cost_estimate(body:, org_id: nil, request_options: nil) ⇒ Hash
Estimated monthly cost of a configuration
Calls the plugin's estimateCost and returns a monthly total with the
line items behind it. Price a proposed resource by passing fields, an
existing one by passing resourceId, or a proposed change to an existing
one by passing both — fields is merged over the resource's stored
fields, so the caller only sends what changed. estimate is null when the
plugin cannot price the configuration; that is not the same as an estimate
of zero, and it should not be rendered as one.
Requires permission: resources:read.
POST /api/org/orgId/resources/cost-estimate
Raises on 404: Not found
11392 11393 11394 11395 11396 11397 11398 11399 11400 |
# File 'lib/infrawrench/client.rb', line 11392 def cost_estimate(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/cost-estimate", 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.
11424 11425 11426 11427 11428 11429 11430 11431 11432 |
# File 'lib/infrawrench/client.rb', line 11424 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
11453 11454 11455 11456 11457 11458 11459 11460 11461 |
# File 'lib/infrawrench/client.rb', line 11453 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_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
11475 11476 11477 11478 11479 11480 11481 11482 11483 |
# File 'lib/infrawrench/client.rb', line 11475 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.
11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 |
# File 'lib/infrawrench/client.rb', line 11509 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
11549 11550 11551 11552 11553 11554 11555 11556 11557 |
# File 'lib/infrawrench/client.rb', line 11549 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
11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 |
# File 'lib/infrawrench/client.rb', line 11585 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
11627 11628 11629 11630 11631 11632 11633 11634 11635 |
# File 'lib/infrawrench/client.rb', line 11627 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 |
#export_terraform(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Generate Terraform HCL for a resource (and its direct children) from stored state
Requires permission: resources:read.
POST /api/org/orgId/resources/pluginId/typeId/export-terraform
Raises on 400: Bad request
Raises on 404: Not found
11656 11657 11658 11659 11660 11661 11662 11663 11664 |
# File 'lib/infrawrench/client.rb', line 11656 def export_terraform(plugin_id:, type_id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/resources/{pluginId}/{typeId}/export-terraform", 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
11685 11686 11687 11688 11689 11690 11691 11692 11693 |
# File 'lib/infrawrench/client.rb', line 11685 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
11712 11713 11714 11715 11716 11717 11718 11719 11720 |
# File 'lib/infrawrench/client.rb', line 11712 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.
11745 11746 11747 11748 11749 11750 11751 11752 11753 |
# File 'lib/infrawrench/client.rb', line 11745 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
11773 11774 11775 11776 11777 11778 11779 11780 11781 |
# File 'lib/infrawrench/client.rb', line 11773 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
11805 11806 11807 11808 11809 11810 11811 11812 11813 |
# File 'lib/infrawrench/client.rb', line 11805 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
11831 11832 11833 11834 11835 11836 11837 11838 11839 |
# File 'lib/infrawrench/client.rb', line 11831 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
11858 11859 11860 11861 11862 11863 11864 11865 11866 |
# File 'lib/infrawrench/client.rb', line 11858 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
11881 11882 11883 11884 11885 11886 11887 11888 11889 |
# File 'lib/infrawrench/client.rb', line 11881 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.
11916 11917 11918 11919 11920 11921 11922 11923 11924 |
# File 'lib/infrawrench/client.rb', line 11916 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 |