KosmoKrator

data

Redis Cloud Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Redis Cloud KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.redis_cloud.*. Use lua_read_doc("integrations.redis-cloud") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Redis Cloud workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.redis_cloud.get_current_account({}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("redis-cloud"))' --json
kosmo integrations:lua --eval 'print(docs.read("redis-cloud.get_current_account"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local redis_cloud = app.integrations.redis_cloud
local result = redis_cloud.get_current_account({})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.redis_cloud, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.redis_cloud.default.* or app.integrations.redis_cloud.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Redis Cloud, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Redis Cloud — Lua API Reference

get_current_account

Get the current Redis Cloud account information, including owner email, payment method, and plan details.

Parameters

None.

Examples

local account = app.integrations["redis-cloud"].get_current_account()

print("Owner: " .. (account.ownerEmail or "unknown"))
print("Plan: " .. (account.planDescription or "N/A"))

list_subscriptions

List all subscriptions in the Redis Cloud account. Returns subscription IDs, names, regions, statuses, and database counts.

Parameters

None.

Examples

local result = app.integrations["redis-cloud"].list_subscriptions()

for _, sub in ipairs(result) do
  print("Subscription: " .. (sub.name or sub.id) .. " — " .. (sub.status or "?"))
end

get_subscription

Get details for a specific Redis Cloud subscription by ID, including plan, region, memory, throughput, and database list.

Parameters

NameTypeRequiredDescription
subscription_idintegeryesThe Redis Cloud subscription ID.

Examples

local sub = app.integrations["redis-cloud"].get_subscription({
  subscription_id = 12345
})

print("Name: " .. (sub.name or "N/A"))
print("Region: " .. (sub.region or "N/A"))
print("Databases: " .. #(sub.databases or {}))

list_databases

List all databases within a Redis Cloud subscription. Returns database IDs, names, endpoints, and statuses.

Parameters

NameTypeRequiredDescription
subscription_idintegeryesThe Redis Cloud subscription ID.

Examples

local result = app.integrations["redis-cloud"].list_databases({
  subscription_id = 12345
})

for _, db in ipairs(result) do
  print("Database: " .. (db.name or db.id) .. " — " .. (db.status or "?"))
end

get_database

Get details for a specific Redis Cloud database by subscription and database ID, including endpoint, memory usage, throughput, and replication status.

Parameters

NameTypeRequiredDescription
subscription_idintegeryesThe Redis Cloud subscription ID.
database_idintegeryesThe database ID within the subscription.

Examples

local db = app.integrations["redis-cloud"].get_database({
  subscription_id = 12345,
  database_id = 1
})

print("Name: " .. (db.name or "N/A"))
print("Endpoint: " .. (db.publicEndpoint or "N/A"))
print("Memory: " .. tostring(db.datasetSizeInMb or 0) .. " MB")

list_teams

List all teams (ACL roles) in the Redis Cloud account. Returns team IDs, names, and member counts.

Parameters

None.

Examples

local result = app.integrations["redis-cloud"].list_teams()

for _, team in ipairs(result) do
  print("Team: " .. (team.name or team.id))
end

get_team

Get details for a specific Redis Cloud team (ACL role) by ID, including roles, permissions, and assigned databases.

Parameters

NameTypeRequiredDescription
team_idintegeryesThe Redis Cloud team ID.

Examples

local team = app.integrations["redis-cloud"].get_team({
  team_id = 42
})

print("Team: " .. (team.name or "N/A"))

Common Workflows

List all subscriptions and their databases

-- Step 1: List all subscriptions
local subs = app.integrations["redis-cloud"].list_subscriptions()

-- Step 2: For each subscription, list its databases
for _, sub in ipairs(subs) do
  local databases = app.integrations["redis-cloud"].list_databases({
    subscription_id = sub.subscriptionId
  })

  for _, db in ipairs(databases) do
    print(sub.name .. " / " .. db.name .. " — " .. (db.publicEndpoint or "no endpoint"))
  end
end

Check account info and team access

-- Get account info
local account = app.integrations["redis-cloud"].get_current_account()
print("Account owner: " .. (account.ownerEmail or "unknown"))

-- List all teams
local teams = app.integrations["redis-cloud"].list_teams()
for _, team in ipairs(teams) do
  print("Team: " .. team.name)
end

Notes

  • Authentication uses an API key + secret key pair (HTTP Basic Auth). Generate keys in the Redis Cloud console under Settings > API Keys.
  • The API base URL is https://api.redislabs.com/v1.
  • Subscription and database IDs are integers (not UUIDs).
  • Some endpoints may return paginated results for large accounts.

Multi-Account Usage

If you have multiple Redis Cloud accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations["redis-cloud"].list_subscriptions()

-- Explicit default (portable across setups)
app.integrations["redis-cloud"].default.list_subscriptions()

-- Named accounts
app.integrations["redis-cloud"].production.list_subscriptions()
app.integrations["redis-cloud"].staging.list_subscriptions()

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Redis Cloud — Lua API Reference

## get_current_account

Get the current Redis Cloud account information, including owner email, payment method, and plan details.

### Parameters

None.

### Examples

```lua
local account = app.integrations["redis-cloud"].get_current_account()

print("Owner: " .. (account.ownerEmail or "unknown"))
print("Plan: " .. (account.planDescription or "N/A"))
```

---

## list_subscriptions

List all subscriptions in the Redis Cloud account. Returns subscription IDs, names, regions, statuses, and database counts.

### Parameters

None.

### Examples

```lua
local result = app.integrations["redis-cloud"].list_subscriptions()

for _, sub in ipairs(result) do
  print("Subscription: " .. (sub.name or sub.id) .. " — " .. (sub.status or "?"))
end
```

---

## get_subscription

Get details for a specific Redis Cloud subscription by ID, including plan, region, memory, throughput, and database list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subscription_id` | integer | yes | The Redis Cloud subscription ID. |

### Examples

```lua
local sub = app.integrations["redis-cloud"].get_subscription({
  subscription_id = 12345
})

print("Name: " .. (sub.name or "N/A"))
print("Region: " .. (sub.region or "N/A"))
print("Databases: " .. #(sub.databases or {}))
```

---

## list_databases

List all databases within a Redis Cloud subscription. Returns database IDs, names, endpoints, and statuses.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subscription_id` | integer | yes | The Redis Cloud subscription ID. |

### Examples

```lua
local result = app.integrations["redis-cloud"].list_databases({
  subscription_id = 12345
})

for _, db in ipairs(result) do
  print("Database: " .. (db.name or db.id) .. " — " .. (db.status or "?"))
end
```

---

## get_database

Get details for a specific Redis Cloud database by subscription and database ID, including endpoint, memory usage, throughput, and replication status.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subscription_id` | integer | yes | The Redis Cloud subscription ID. |
| `database_id` | integer | yes | The database ID within the subscription. |

### Examples

```lua
local db = app.integrations["redis-cloud"].get_database({
  subscription_id = 12345,
  database_id = 1
})

print("Name: " .. (db.name or "N/A"))
print("Endpoint: " .. (db.publicEndpoint or "N/A"))
print("Memory: " .. tostring(db.datasetSizeInMb or 0) .. " MB")
```

---

## list_teams

List all teams (ACL roles) in the Redis Cloud account. Returns team IDs, names, and member counts.

### Parameters

None.

### Examples

```lua
local result = app.integrations["redis-cloud"].list_teams()

for _, team in ipairs(result) do
  print("Team: " .. (team.name or team.id))
end
```

---

## get_team

Get details for a specific Redis Cloud team (ACL role) by ID, including roles, permissions, and assigned databases.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `team_id` | integer | yes | The Redis Cloud team ID. |

### Examples

```lua
local team = app.integrations["redis-cloud"].get_team({
  team_id = 42
})

print("Team: " .. (team.name or "N/A"))
```

---

## Common Workflows

### List all subscriptions and their databases

```lua
-- Step 1: List all subscriptions
local subs = app.integrations["redis-cloud"].list_subscriptions()

-- Step 2: For each subscription, list its databases
for _, sub in ipairs(subs) do
  local databases = app.integrations["redis-cloud"].list_databases({
    subscription_id = sub.subscriptionId
  })

  for _, db in ipairs(databases) do
    print(sub.name .. " / " .. db.name .. " — " .. (db.publicEndpoint or "no endpoint"))
  end
end
```

### Check account info and team access

```lua
-- Get account info
local account = app.integrations["redis-cloud"].get_current_account()
print("Account owner: " .. (account.ownerEmail or "unknown"))

-- List all teams
local teams = app.integrations["redis-cloud"].list_teams()
for _, team in ipairs(teams) do
  print("Team: " .. team.name)
end
```

## Notes

- Authentication uses an API key + secret key pair (HTTP Basic Auth). Generate keys in the Redis Cloud console under **Settings > API Keys**.
- The API base URL is `https://api.redislabs.com/v1`.
- Subscription and database IDs are integers (not UUIDs).
- Some endpoints may return paginated results for large accounts.

---

## Multi-Account Usage

If you have multiple Redis Cloud accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations["redis-cloud"].list_subscriptions()

-- Explicit default (portable across setups)
app.integrations["redis-cloud"].default.list_subscriptions()

-- Named accounts
app.integrations["redis-cloud"].production.list_subscriptions()
app.integrations["redis-cloud"].staging.list_subscriptions()
```

All functions are identical across accounts — only the credentials differ.
Metadata-derived Lua example
local result = app.integrations.redis_cloud.get_current_account({})
print(result)

Functions

get_current_account Read

Get the current Redis Cloud account information, including owner email, payment method, and plan details.

Lua path
app.integrations.redis_cloud.get_current_account
Full name
redis-cloud.redis_cloud_get_current_account
ParameterTypeRequiredDescription
No parameters.
list_subscriptions Read

List all subscriptions in the Redis Cloud account. Returns subscription IDs, names, regions, statuses, and database counts.

Lua path
app.integrations.redis_cloud.list_subscriptions
Full name
redis-cloud.redis_cloud_list_subscriptions
ParameterTypeRequiredDescription
No parameters.
get_subscription Read

Get details for a specific Redis Cloud subscription by ID, including plan, region, memory, throughput, and database list.

Lua path
app.integrations.redis_cloud.get_subscription
Full name
redis-cloud.redis_cloud_get_subscription
ParameterTypeRequiredDescription
subscription_id integer yes The Redis Cloud subscription ID.
list_databases Read

List all databases within a Redis Cloud subscription. Returns database IDs, names, endpoints, and statuses.

Lua path
app.integrations.redis_cloud.list_databases
Full name
redis-cloud.redis_cloud_list_databases
ParameterTypeRequiredDescription
subscription_id integer yes The Redis Cloud subscription ID to list databases for.
get_database Read

Get details for a specific Redis Cloud database by subscription and database ID, including endpoint, memory usage, throughput, and replication status.

Lua path
app.integrations.redis_cloud.get_database
Full name
redis-cloud.redis_cloud_get_database
ParameterTypeRequiredDescription
subscription_id integer yes The Redis Cloud subscription ID.
database_id integer yes The database ID within the subscription.
list_teams Read

List all teams (ACL roles) in the Redis Cloud account. Returns team IDs, names, and member counts.

Lua path
app.integrations.redis_cloud.list_teams
Full name
redis-cloud.redis_cloud_list_teams
ParameterTypeRequiredDescription
No parameters.
get_team Read

Get details for a specific Redis Cloud team (ACL role) by ID, including roles, permissions, and assigned databases.

Lua path
app.integrations.redis_cloud.get_team
Full name
redis-cloud.redis_cloud_get_team
ParameterTypeRequiredDescription
team_id integer yes The Redis Cloud team ID.