Class: Infrawrench::LogWorkspacesNamespace

Inherits:
Object
  • Object
show all
Defined in:
lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs

Overview

client.log_workspaces

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ LogWorkspacesNamespace

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 LogWorkspacesNamespace.

Parameters:



9123
9124
9125
# File 'lib/infrawrench/client.rb', line 9123

def initialize(transport)
  @transport = transport
end

Instance Method Details

#create(body:, org_id: nil, request_options: nil) ⇒ Hash

Save a log workspace query

Save a named multi-resource tail: up to 8 log streams plus a search expression, so the workspace can be reopened. With alertEnabled the poller evaluates the query every few minutes over a bounded tail window and notifies (push/Slack/Teams, logMatchAlerts trigger) when a line matches, with a cooldown between alerts. Alerting requires a non-empty search expression. Audit-logged.

Requires permission: resources:write.

POST /api/org/orgId/log-workspaces

Raises on 400: Bad request

Raises on 404: Not found

Raises on 409: A saved query with this name already exists

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • body (Hash)

    Request body, shaped as LogWorkspaceQueryCreate.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • body: (log_workspace_query_create)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as LogWorkspaceQuery — see sig/infrawrench/sdk.rbs.

Raises:



9152
9153
9154
9155
9156
9157
9158
9159
9160
# File 'lib/infrawrench/client.rb', line 9152

def create(body:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "POST",
    path: "/api/org/{orgId}/log-workspaces",
    path_params: { "orgId" => org_id },
    body: body,
    request_options: request_options
  )
end

#delete(query_id:, org_id: nil, request_options: nil) ⇒ nil

Delete a saved log query

Remove the saved query and stop any alerting it carried. Audit-logged.

Requires permission: resources:write.

DELETE /api/org/orgId/log-workspaces/queryId

Raises on 404: Not found

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • query_id (String)
  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • query_id: (String)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (nil)

    This endpoint returns no content.

Raises:



9178
9179
9180
9181
9182
9183
9184
9185
9186
# File 'lib/infrawrench/client.rb', line 9178

def delete(query_id:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "DELETE",
    path: "/api/org/{orgId}/log-workspaces/{queryId}",
    path_params: { "orgId" => org_id, "queryId" => query_id },
    accept: :empty,
    request_options: request_options
  )
end

#get(org_id: nil, request_options: nil) ⇒ Hash

List saved log queries

Every saved log-workspace query in the organization: its name, the set of log streams it tails, the search expression, the alert flag and the alert pass's last evaluation state. Log text itself is fetched per resource via POST /api/org/{orgId}/resources/{pluginId}/{typeId}/logs.

Requires permission: resources:read.

GET /api/org/orgId/log-workspaces

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as LogWorkspaceQueryList — see sig/infrawrench/sdk.rbs.

Raises:



9205
9206
9207
9208
9209
9210
9211
9212
# File 'lib/infrawrench/client.rb', line 9205

def get(org_id: nil, request_options: nil)
  @transport.request(
    http_method: "GET",
    path: "/api/org/{orgId}/log-workspaces",
    path_params: { "orgId" => org_id },
    request_options: request_options
  )
end

#resources(org_id: nil, request_options: nil) ⇒ Hash

List log-capable resources

Synced resources whose rendered detail declares the logs capability — the candidates a log workspace can tail — plus sidecar streams reached through a peer integration (pods and workloads inside a managed cluster, listed live from the provider and marked with parentResourceId). Discovered from the plugin contract (never a hardcoded provider list), capped at 500 results.

Requires permission: resources:read.

GET /api/org/orgId/log-workspaces/resources

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as LogCapableResourceList — see sig/infrawrench/sdk.rbs.

Raises:



9233
9234
9235
9236
9237
9238
9239
9240
# File 'lib/infrawrench/client.rb', line 9233

def resources(org_id: nil, request_options: nil)
  @transport.request(
    http_method: "GET",
    path: "/api/org/{orgId}/log-workspaces/resources",
    path_params: { "orgId" => org_id },
    request_options: request_options
  )
end

#update(query_id:, body:, org_id: nil, request_options: nil) ⇒ Hash

Update a saved log query

Edit the name, resource set, search expression and/or the alert toggle. Changing the search or the resources resets the alert pass's evaluation state; turning the alert on makes the query due for evaluation immediately. Audit-logged.

Requires permission: resources:write.

PUT /api/org/orgId/log-workspaces/queryId

Raises on 400: Bad request

Raises on 404: Not found

Raises on 409: A saved query with this name already exists

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • query_id (String)
  • body (Hash)

    Request body, shaped as LogWorkspaceQueryUpdate.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • query_id: (String)
  • body: (log_workspace_query_update)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as LogWorkspaceQuery — see sig/infrawrench/sdk.rbs.

Raises:



9266
9267
9268
9269
9270
9271
9272
9273
9274
# File 'lib/infrawrench/client.rb', line 9266

def update(query_id:, body:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "PUT",
    path: "/api/org/{orgId}/log-workspaces/{queryId}",
    path_params: { "orgId" => org_id, "queryId" => query_id },
    body: body,
    request_options: request_options
  )
end