{ "openapi": "3.1.0", "info": { "title": "Diom API", "description": "Welcome to the Diom API documentation!\n", "version": "0.2.4", "x-logo": { "altText": "Svix Logo", "url": "https://www.svix.com/static/img/brand-padded.svg" } }, "paths": { "/api/v1.cluster-admin.status": { "get": { "tags": [ "ClusterAdmin" ], "summary": "Cluster Status", "description": "Get information about the current cluster", "operationId": "v1.cluster-admin.status", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterStatusOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cluster_admin()\n .status()\n .await?;" } ] } }, "/api/v1.cluster-admin.initialize": { "post": { "tags": [ "ClusterAdmin" ], "summary": "Cluster Initialize", "description": "Initialize this node as the leader of a new cluster\n\nThis operation may only be performed against a node which has not been\ninitialized and is not currently a member of a cluster.", "operationId": "v1.cluster-admin.initialize", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterInitializeIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterInitializeOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cluster_admin()\n .initialize(\n ClusterInitializeIn::new(),\n )\n .await?;" } ] } }, "/api/v1.cluster-admin.remove-node": { "post": { "tags": [ "ClusterAdmin" ], "summary": "Cluster Remove Node", "description": "Remove a node from the cluster.\n\nThis operation executes immediately and the node must be wiped and reset\nbefore it can safely be added to the cluster.", "operationId": "v1.cluster-admin.remove-node", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterRemoveNodeIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterRemoveNodeOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cluster_admin()\n .remove_node(\n ClusterRemoveNodeIn::new(\"a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.cluster-admin.force-snapshot": { "post": { "tags": [ "ClusterAdmin" ], "summary": "Cluster Force Snapshot", "description": "Force the cluster to take a snapshot immediately", "operationId": "v1.cluster-admin.force-snapshot", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterForceSnapshotIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterForceSnapshotOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cluster_admin()\n .force_snapshot(\n ClusterForceSnapshotIn::new(),\n )\n .await?;" } ] } }, "/api/v1.cluster-admin.force-election": { "post": { "tags": [ "ClusterAdmin" ], "summary": "Cluster Force Election", "description": "Force the cluster to conduct an election immediately", "operationId": "v1.cluster-admin.force-election", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterForceElectionIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClusterForceElectionOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cluster_admin()\n .force_election(\n ClusterForceElectionIn::new(),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.create": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Create", "description": "Create an auth token", "operationId": "v1.admin.auth-token.create", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenCreateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenCreateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .create(\n AdminAuthTokenCreateIn::new(\n \"some token name\".to_owned(),\n \"some token role\".to_owned(),\n )\n .with_expiry(Duration::from_secs(30))\n .with_enabled(true),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.expire": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Expire", "description": "Expire an auth token", "operationId": "v1.admin.auth-token.expire", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenExpireIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenExpireOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .expire(\n AdminAuthTokenExpireIn::new(\"key_06etngr201xwv7qj08mt4cs03w\".to_owned())\n .with_expiry(Duration::from_secs(30)),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.rotate": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Rotate", "description": "Rotate an auth token, invalidating the old one and issuing a new secret", "operationId": "v1.admin.auth-token.rotate", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenRotateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenRotateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .rotate(\n AdminAuthTokenRotateIn::new(\"key_06etngr201xwv7qj08mt4cs03w\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.delete": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Delete", "description": "Delete an auth token", "operationId": "v1.admin.auth-token.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .delete(\n AdminAuthTokenDeleteIn::new(\"key_06etngr201xwv7qj08mt4cs03w\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.list": { "post": { "tags": [ "Admin" ], "summary": "Auth Token List", "description": "List auth tokens for a given owner", "operationId": "v1.admin.auth-token.list", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenListIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseAdminAuthTokenOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .list(\n AdminAuthTokenListIn::new()\n .with_limit(1)\n .with_iterator(\"key_06etngr201xwv7qj08mt4cs03w\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.update": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Update", "description": "Update an auth token's properties", "operationId": "v1.admin.auth-token.update", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenUpdateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenUpdateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .update(\n AdminAuthTokenUpdateIn::new(\"key_06etngr201xwv7qj08mt4cs03w\".to_owned())\n .with_name(\"some token name\".to_owned())\n .with_expiry(Duration::from_secs(30))\n .with_enabled(true),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-token.whoami": { "post": { "tags": [ "Admin" ], "summary": "Auth Token Whoami", "description": "Return the role of the currently authenticated token", "operationId": "v1.admin.auth-token.whoami", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenWhoamiIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAuthTokenWhoamiOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_token()\n .whoami(\n AdminAuthTokenWhoamiIn::new(),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-role.configure": { "post": { "tags": [ "Admin" ], "summary": "Role Configure", "description": "Create or update a role", "operationId": "v1.admin.auth-role.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleConfigureIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleConfigureOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_role()\n .configure(\n AdminRoleConfigureIn::new(\n \"some_role_id\".to_owned(),\n \"role description…\".to_owned(),\n )\n .with_rules(vec![])\n .with_policies(vec![])\n .with_context(HashMap::new()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-role.delete": { "post": { "tags": [ "Admin" ], "summary": "Role Delete", "description": "Delete a role", "operationId": "v1.admin.auth-role.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_role()\n .delete(\n AdminRoleDeleteIn::new(\"some_role_id\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-role.get": { "post": { "tags": [ "Admin" ], "summary": "Role Get", "description": "Get a role by ID", "operationId": "v1.admin.auth-role.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleGetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_role()\n .get(\n AdminRoleGetIn::new(\"some_role_id\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-role.list": { "post": { "tags": [ "Admin" ], "summary": "Role List", "description": "List all roles", "operationId": "v1.admin.auth-role.list", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminRoleListIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseAdminRoleOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_role()\n .list(\n AdminRoleListIn::new()\n .with_limit(1)\n .with_iterator(\"some_role_id\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-policy.configure": { "post": { "tags": [ "Admin" ], "summary": "Access Policy Configure", "description": "Create or update an access policy", "operationId": "v1.admin.auth-policy.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyConfigureIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyConfigureOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_policy()\n .configure(\n AdminAccessPolicyConfigureIn::new(\n \"some_access_policy\".to_owned(),\n \"policy description…\".to_owned(),\n )\n .with_rules(vec![]),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-policy.delete": { "post": { "tags": [ "Admin" ], "summary": "Access Policy Delete", "description": "Delete an access policy", "operationId": "v1.admin.auth-policy.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_policy()\n .delete(\n AdminAccessPolicyDeleteIn::new(\"some_access_policy\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-policy.get": { "post": { "tags": [ "Admin" ], "summary": "Access Policy Get", "description": "Get an access policy by ID", "operationId": "v1.admin.auth-policy.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyGetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_policy()\n .get(\n AdminAccessPolicyGetIn::new(\"some_access_policy\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.admin.auth-policy.list": { "post": { "tags": [ "Admin" ], "summary": "Access Policy List", "description": "List all access policies", "operationId": "v1.admin.auth-policy.list", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminAccessPolicyListIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseAdminAccessPolicyOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.admin()\n .auth_policy()\n .list(\n AdminAccessPolicyListIn::new()\n .with_limit(1)\n .with_iterator(\"some_access_policy\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.auth-token.create": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Create", "description": "Create Auth Token", "operationId": "v1.auth-token.create", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenCreateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenCreateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.expire": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Expire", "description": "Expire Auth Token", "operationId": "v1.auth-token.expire", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenExpireIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenExpireOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.delete": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Delete", "description": "Delete Auth Token", "operationId": "v1.auth-token.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.verify": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Verify", "description": "Verify Auth Token", "operationId": "v1.auth-token.verify", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenVerifyIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenVerifyOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.list": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token List", "description": "List Auth Tokens", "operationId": "v1.auth-token.list", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenListIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListResponseAuthTokenOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.update": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Update", "description": "Update Auth Token", "operationId": "v1.auth-token.update", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenUpdateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenUpdateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.rotate": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Rotate", "description": "Rotate Auth Token", "operationId": "v1.auth-token.rotate", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenRotateIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenRotateOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.namespace.configure": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Configure Namespace", "description": "Configure Auth Token namespace", "operationId": "v1.auth-token.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenConfigureNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenConfigureNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.auth-token.namespace.get": { "post": { "tags": [ "Auth Tokens" ], "summary": "Auth Token Get Namespace", "description": "Get Auth Token namespace", "operationId": "v1.auth-token.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenGetNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTokenGetNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-internal": true } }, "/api/v1.cache.set": { "post": { "tags": [ "Cache" ], "summary": "Cache Set", "description": "Cache Set", "operationId": "v1.cache.set", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheSetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheSetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cache()\n .set(\n \"some_key\".to_owned(),\n vec![],\n CacheSetIn::new(Duration::from_secs(30))\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.cache.get": { "post": { "tags": [ "Cache" ], "summary": "Cache Get", "description": "Cache Get", "operationId": "v1.cache.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheGetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheGetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cache()\n .get(\n \"some_key\".to_owned(),\n CacheGetIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_consistency(Consistency::Strong),\n )\n .await?;" } ] } }, "/api/v1.cache.namespace.configure": { "post": { "tags": [ "Cache" ], "summary": "Cache Configure Namespace", "description": "Configure cache namespace", "operationId": "v1.cache.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheConfigureNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheConfigureNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cache()\n .namespace()\n .configure(\n CacheConfigureNamespaceIn::new(\"some_namespace\".to_owned())\n .with_eviction_policy(EvictionPolicy::NoEviction),\n )\n .await?;" } ] } }, "/api/v1.cache.namespace.get": { "post": { "tags": [ "Cache" ], "summary": "Cache Get Namespace", "description": "Get cache namespace", "operationId": "v1.cache.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheGetNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheGetNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cache()\n .namespace()\n .get(\n CacheGetNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.cache.delete": { "post": { "tags": [ "Cache" ], "summary": "Cache Del", "description": "Cache Delete", "operationId": "v1.cache.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.cache()\n .delete(\n \"some_key\".to_owned(),\n CacheDeleteIn::new()\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.kv.set": { "post": { "tags": [ "Key Value Store" ], "summary": "Kv Set", "description": "KV Set", "operationId": "v1.kv.set", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvSetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvSetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.kv()\n .set(\n \"some_key\".to_owned(),\n vec![],\n KvSetIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_ttl(Duration::from_secs(30))\n .with_behavior(OperationBehavior::Upsert)\n .with_version(1),\n )\n .await?;" } ] } }, "/api/v1.kv.get": { "post": { "tags": [ "Key Value Store" ], "summary": "Kv Get", "description": "KV Get", "operationId": "v1.kv.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvGetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvGetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.kv()\n .get(\n \"some_key\".to_owned(),\n KvGetIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_consistency(Consistency::Strong),\n )\n .await?;" } ] } }, "/api/v1.kv.namespace.configure": { "post": { "tags": [ "Key Value Store" ], "summary": "Kv Configure Namespace", "description": "Configure KV namespace", "operationId": "v1.kv.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvConfigureNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvConfigureNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.kv()\n .namespace()\n .configure(\n KvConfigureNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.kv.namespace.get": { "post": { "tags": [ "Key Value Store" ], "summary": "Kv Get Namespace", "description": "Get KV namespace", "operationId": "v1.kv.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvGetNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvGetNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.kv()\n .namespace()\n .get(\n KvGetNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.kv.delete": { "post": { "tags": [ "Key Value Store" ], "summary": "Kv Del", "description": "KV Delete", "operationId": "v1.kv.delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvDeleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KvDeleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.kv()\n .delete(\n \"some_key\".to_owned(),\n KvDeleteIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_version(1),\n )\n .await?;" } ] } }, "/api/v1.rate-limit.limit": { "post": { "tags": [ "Rate Limiter" ], "summary": "Rate Limit Limit", "description": "Rate Limiter Check and Consume", "operationId": "v1.rate-limit.limit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitCheckIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitCheckOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.rate_limit()\n .limit(\n RateLimitCheckIn::new(\n \"some_key\".to_owned(),\n RateLimitConfig::new(\n 1,\n 1,\n )\n .with_refill_interval(Duration::from_secs(30)),\n )\n .with_namespace(\"some_namespace\".to_owned())\n .with_tokens(1),\n )\n .await?;" } ] } }, "/api/v1.rate-limit.get-remaining": { "post": { "tags": [ "Rate Limiter" ], "summary": "Rate Limit Get Remaining", "description": "Rate Limiter Get Remaining", "operationId": "v1.rate-limit.get-remaining", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitGetRemainingIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitGetRemainingOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.rate_limit()\n .get_remaining(\n RateLimitGetRemainingIn::new(\n \"some_key\".to_owned(),\n RateLimitConfig::new(\n 1,\n 1,\n )\n .with_refill_interval(Duration::from_secs(30)),\n )\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.rate-limit.reset": { "post": { "tags": [ "Rate Limiter" ], "summary": "Rate Limit Reset", "description": "Rate Limiter Reset", "operationId": "v1.rate-limit.reset", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitResetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitResetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.rate_limit()\n .reset(\n RateLimitResetIn::new(\n \"some_key\".to_owned(),\n RateLimitConfig::new(\n 1,\n 1,\n )\n .with_refill_interval(Duration::from_secs(30)),\n )\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.rate-limit.namespace.configure": { "post": { "tags": [ "Rate Limiter" ], "summary": "Rate Limit Configure Namespace", "description": "Configure rate limiter namespace", "operationId": "v1.rate-limit.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitConfigureNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitConfigureNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.rate_limit()\n .namespace()\n .configure(\n RateLimitConfigureNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.rate-limit.namespace.get": { "post": { "tags": [ "Rate Limiter" ], "summary": "Rate Limit Get Namespace", "description": "Get rate limiter namespace", "operationId": "v1.rate-limit.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitGetNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimitGetNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.rate_limit()\n .namespace()\n .get(\n RateLimitGetNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.idempotency.start": { "post": { "tags": [ "Idempotency" ], "summary": "Idempotency Start", "description": "Start an idempotent request", "operationId": "v1.idempotency.start", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyStartIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyStartOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.idempotency()\n .start(\n \"some_key\".to_owned(),\n IdempotencyStartIn::new(Duration::from_secs(30))\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.idempotency.complete": { "post": { "tags": [ "Idempotency" ], "summary": "Idempotency Complete", "description": "Complete an idempotent request with a response", "operationId": "v1.idempotency.complete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyCompleteIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyCompleteOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.idempotency()\n .complete(\n \"some_key\".to_owned(),\n IdempotencyCompleteIn::new(\n vec![],\n Duration::from_secs(30),\n )\n .with_namespace(\"some_namespace\".to_owned())\n .with_context(HashMap::new()),\n )\n .await?;" } ] } }, "/api/v1.idempotency.abort": { "post": { "tags": [ "Idempotency" ], "summary": "Idempotency Abort", "description": "Abandon an idempotent request (remove lock without saving response)", "operationId": "v1.idempotency.abort", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyAbortIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyAbortOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.idempotency()\n .abort(\n \"some_key\".to_owned(),\n IdempotencyAbortIn::new()\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.idempotency.namespace.configure": { "post": { "tags": [ "Idempotency" ], "summary": "Idempotency Configure Namespace", "description": "Configure idempotency namespace", "operationId": "v1.idempotency.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyConfigureNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyConfigureNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.idempotency()\n .namespace()\n .configure(\n IdempotencyConfigureNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.idempotency.namespace.get": { "post": { "tags": [ "Idempotency" ], "summary": "Idempotency Get Namespace", "description": "Get idempotency namespace", "operationId": "v1.idempotency.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyGetNamespaceIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdempotencyGetNamespaceOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.idempotency()\n .namespace()\n .get(\n IdempotencyGetNamespaceIn::new(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.namespace.configure": { "post": { "tags": [ "Msgs" ], "summary": "Configure Namespace", "description": "Configures a msgs namespace with the given name.", "operationId": "v1.msgs.namespace.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgNamespaceConfigureIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgNamespaceConfigureOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .namespace()\n .configure(\n \"some_namespace\".to_owned(),\n MsgNamespaceConfigureIn::new()\n .with_retention(Retention::new()\n .with_period(Duration::from_secs(30))),\n )\n .await?;" } ] } }, "/api/v1.msgs.namespace.get": { "post": { "tags": [ "Msgs" ], "summary": "Get Namespace", "description": "Gets a msgs namespace by name.", "operationId": "v1.msgs.namespace.get", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgNamespaceGetIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgNamespaceGetOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .namespace()\n .get(\n \"some_namespace\".to_owned(),\n MsgNamespaceGetIn::new(),\n )\n .await?;" } ] } }, "/api/v1.msgs.publish": { "post": { "tags": [ "Msgs" ], "summary": "Publish", "description": "Publishes messages to a topic within a namespace.", "operationId": "v1.msgs.publish", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgPublishIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgPublishOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .publish(\n \"some_topic_name\".to_owned(),\n MsgPublishIn::new(vec![])\n .with_namespace(\"some_namespace\".to_owned())\n .with_idempotency_key(\"my_idempotency_key\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.stream.receive": { "post": { "tags": [ "Msgs" ], "summary": "Stream Receive", "description": "Receives messages from a topic using a consumer group.\n\nEach consumer in the group reads from all partitions. Messages are locked by leases for the\nspecified duration to prevent duplicate delivery within the same consumer group.", "operationId": "v1.msgs.stream.receive", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamReceiveIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamReceiveOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .stream()\n .receive(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgStreamReceiveIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_batch_size(1)\n .with_lease_duration(Duration::from_secs(30))\n .with_default_starting_position(SeekPosition::Earliest)\n .with_batch_wait(Duration::from_secs(30)),\n )\n .await?;" } ] } }, "/api/v1.msgs.stream.commit": { "post": { "tags": [ "Msgs" ], "summary": "Stream Commit", "description": "Commits an offset for a consumer group on a specific partition.\n\nThe topic must be a partition-level topic (e.g. `ns:my-topic~3`). The offset is the last\nsuccessfully processed offset; future receives will start after it.", "operationId": "v1.msgs.stream.commit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamCommitIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamCommitOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .stream()\n .commit(\n \"some_topic_name~0\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgStreamCommitIn::new(1)\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.stream.seek": { "post": { "tags": [ "Msgs" ], "summary": "Stream Seek", "description": "Repositions a consumer group's read cursor on a topic.\n\nProvide exactly one of `offset`, `position`, or `timestamp`. When using `offset`, the topic\nmust include a partition suffix (e.g. `ns:my-topic~0`). The `position` field accepts\n`\"earliest\"` or `\"latest\"` and may be used with or without a partition suffix. The `timestamp`\nfield accepts a Unix timestamp in milliseconds and seeks to the first message at or after that\ntime.", "operationId": "v1.msgs.stream.seek", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamSeekIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamSeekOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .stream()\n .seek(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgStreamSeekIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_offset(1)\n .with_position(SeekPosition::Earliest)\n .with_timestamp(\"2026-04-20 12:00:00\".parse()?),\n )\n .await?;" } ] } }, "/api/v1.msgs.stream.cancel-lease": { "post": { "tags": [ "Msgs" ], "summary": "Stream Cancel Lease", "description": "Cancels a current stream lease.\n\nUsed when a consumer cannot process a batch and wants to release it immediately rather than\nwait for lease expiration.", "operationId": "v1.msgs.stream.cancel-lease", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamCancelLeaseIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgStreamCancelLeaseOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .stream()\n .cancel_lease(\n \"some_topic_name~0\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgStreamCancelLeaseIn::new()\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.receive": { "post": { "tags": [ "Msgs" ], "summary": "Queue Receive", "description": "Receives messages from a topic as competing consumers.\n\nMessages are individually leased for the specified duration. Multiple consumers can receive\ndifferent messages from the same topic concurrently. Leased messages are skipped until they\nare acked or their lease expires.", "operationId": "v1.msgs.queue.receive", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueReceiveIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueReceiveOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .receive(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueReceiveIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_batch_size(1)\n .with_lease_duration(Duration::from_secs(30))\n .with_batch_wait(Duration::from_secs(30)),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.ack": { "post": { "tags": [ "Msgs" ], "summary": "Queue Ack", "description": "Acknowledges messages by their opaque msg_ids.\n\nAcked messages are permanently removed from the queue and will never be re-delivered.", "operationId": "v1.msgs.queue.ack", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueAckIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueAckOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .ack(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueAckIn::new(vec![])\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.extend-lease": { "post": { "tags": [ "Msgs" ], "summary": "Queue Extend Lease", "description": "Extends the lease on in-flight messages.\n\nConsumers that need more processing time can call this before the lease expires to prevent the\nmessage from being re-delivered to another consumer.", "operationId": "v1.msgs.queue.extend-lease", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueExtendLeaseIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueExtendLeaseOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .extend_lease(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueExtendLeaseIn::new(vec![])\n .with_namespace(\"some_namespace\".to_owned())\n .with_lease_duration(Duration::from_secs(30)),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.configure": { "post": { "tags": [ "Msgs" ], "summary": "Queue Configure", "description": "Configures retry and DLQ behavior for a consumer group on a topic.\n\n`retry_schedule` is a list of delays (in millis) between retries after a nack. Once exhausted,\nthe message is moved to the DLQ (or forwarded to `dlq_topic` if set).", "operationId": "v1.msgs.queue.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueConfigureIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueConfigureOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .configure(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueConfigureIn::new()\n .with_namespace(\"some_namespace\".to_owned())\n .with_retry_schedule(vec![])\n .with_dlq_topic(\"some_topic_name\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.nack": { "post": { "tags": [ "Msgs" ], "summary": "Queue Nack", "description": "Rejects messages, sending them to the dead-letter queue.\n\nNacked messages will not be re-delivered by `queue/receive`. Use `queue/redrive-dlq` to\nmove them back to the queue for reprocessing.", "operationId": "v1.msgs.queue.nack", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueNackIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueNackOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .nack(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueNackIn::new(vec![])\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.queue.redrive-dlq": { "post": { "tags": [ "Msgs" ], "summary": "Queue Redrive Dlq", "description": "Moves all dead-letter queue messages back to the main queue for reprocessing.", "operationId": "v1.msgs.queue.redrive-dlq", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueRedriveDlqIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgQueueRedriveDlqOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .queue()\n .redrive_dlq(\n \"some_topic_name\".to_owned(),\n \"some_consumer_group\".to_owned(),\n MsgQueueRedriveDlqIn::new()\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.msgs.topic.configure": { "post": { "tags": [ "Msgs" ], "summary": "Topic Configure", "description": "Configures the number of partitions for a topic.\n\nPartition count can only be increased, never decreased. The default for a new topic is 1.", "operationId": "v1.msgs.topic.configure", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgTopicConfigureIn" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MsgTopicConfigureOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.msgs()\n .topic()\n .configure(\n \"some_topic_name\".to_owned(),\n MsgTopicConfigureIn::new(1)\n .with_namespace(\"some_namespace\".to_owned()),\n )\n .await?;" } ] } }, "/api/v1.health.ping": { "get": { "tags": [ "Health" ], "summary": "Ping", "description": "Verify the server is up and running.", "operationId": "v1.health.ping", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PingOut" } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "let response = diom.health()\n .ping()\n .await?;" } ] } }, "/api/v1.health.error": { "post": { "tags": [ "Health" ], "summary": "Error", "description": "Intentionally return an error", "operationId": "v1.health.error", "responses": { "204": { "description": "no content" }, "400": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } }, "422": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorBody" } } } } }, "security": [ { "HTTPBearer": [] } ], "x-codeSamples": [ { "lang": "Rust", "label": "Rust", "source": "diom.health()\n .error()\n .await?;" } ] } } }, "components": { "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer", "description": "HTTP Bearer token passed in the `Authorization` header" } }, "schemas": { "AccessRule": { "type": "object", "properties": { "effect": { "$ref": "#/components/schemas/AccessRuleEffect" }, "resource": { "type": "string" }, "actions": { "type": "array", "items": { "type": "string" } } }, "required": [ "effect", "resource", "actions" ] }, "AccessRuleEffect": { "type": "string", "enum": [ "allow", "deny" ] }, "AdminAccessPolicyConfigureIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_access_policy" }, "description": { "type": "string", "example": "policy description…" }, "rules": { "type": "array", "items": { "$ref": "#/components/schemas/AccessRule" }, "default": [] } }, "required": [ "id", "description" ] }, "AdminAccessPolicyConfigureOut": { "type": "object", "properties": { "id": { "type": "string", "example": "some_access_policy" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "created", "updated" ] }, "AdminAccessPolicyDeleteIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_access_policy" } }, "required": [ "id" ] }, "AdminAccessPolicyDeleteOut": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "AdminAccessPolicyGetIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_access_policy" } }, "required": [ "id" ] }, "AdminAccessPolicyListIn": { "type": "object", "properties": { "limit": { "description": "Limit the number of returned items", "type": "integer", "format": "uint64", "minimum": 1, "maximum": 250, "default": 50 }, "iterator": { "description": "The iterator returned from a prior invocation", "type": "string", "example": "some_access_policy", "nullable": true } } }, "AdminAccessPolicyOut": { "type": "object", "properties": { "id": { "type": "string", "example": "some_access_policy" }, "description": { "type": "string" }, "rules": { "type": "array", "items": { "$ref": "#/components/schemas/AccessRule" } }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "description", "rules", "created", "updated" ] }, "AdminAuthTokenCreateIn": { "type": "object", "properties": { "name": { "type": "string", "example": "some token name" }, "role": { "type": "string", "example": "some token role" }, "expiry_ms": { "description": "Milliseconds from now until the token expires.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true }, "enabled": { "description": "Whether the token is enabled. Defaults to `true`.", "type": "boolean", "default": true } }, "required": [ "name", "role" ] }, "AdminAuthTokenCreateOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "token": { "type": "string" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "token", "created", "updated" ] }, "AdminAuthTokenDeleteIn": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" } }, "required": [ "id" ] }, "AdminAuthTokenDeleteOut": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "AdminAuthTokenExpireIn": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "expiry_ms": { "description": "Milliseconds from now until the token expires. `None` means expire immediately.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } }, "required": [ "id" ] }, "AdminAuthTokenExpireOut": { "type": "object" }, "AdminAuthTokenListIn": { "type": "object", "properties": { "limit": { "description": "Limit the number of returned items", "type": "integer", "format": "uint64", "minimum": 1, "maximum": 250, "default": 50 }, "iterator": { "description": "The iterator returned from a prior invocation", "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w", "nullable": true } } }, "AdminAuthTokenOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "name": { "type": "string" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "expiry": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true }, "role": { "type": "string" }, "enabled": { "description": "Whether this token is currently enabled.", "type": "boolean" }, "expired": { "description": "Whether this token has expired.\n\nExpired tokens may be pruned in the background at any time.", "type": "boolean" } }, "required": [ "id", "name", "created", "updated", "role", "enabled", "expired" ] }, "AdminAuthTokenRotateIn": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" } }, "required": [ "id" ] }, "AdminAuthTokenRotateOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "token": { "type": "string" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "token", "created", "updated" ] }, "AdminAuthTokenUpdateIn": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "name": { "type": "string", "nullable": true, "example": "some token name" }, "expiry_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true }, "enabled": { "type": "boolean", "nullable": true } }, "required": [ "id" ] }, "AdminAuthTokenUpdateOut": { "type": "object" }, "AdminAuthTokenWhoamiIn": { "type": "object" }, "AdminAuthTokenWhoamiOut": { "type": "object", "properties": { "role": { "type": "string", "example": "some_role_id" } }, "required": [ "role" ] }, "AdminRoleConfigureIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_role_id" }, "description": { "type": "string", "example": "role description…" }, "rules": { "type": "array", "items": { "$ref": "#/components/schemas/AccessRule" }, "default": [] }, "policies": { "type": "array", "items": { "type": "string", "example": "some_access_policy" }, "default": [] }, "context": { "type": "object", "default": {}, "additionalProperties": { "type": "string" } } }, "required": [ "id", "description" ] }, "AdminRoleConfigureOut": { "type": "object", "properties": { "id": { "type": "string", "example": "some_role_id" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "created", "updated" ] }, "AdminRoleDeleteIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_role_id" } }, "required": [ "id" ] }, "AdminRoleDeleteOut": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "AdminRoleGetIn": { "type": "object", "properties": { "id": { "type": "string", "example": "some_role_id" } }, "required": [ "id" ] }, "AdminRoleListIn": { "type": "object", "properties": { "limit": { "description": "Limit the number of returned items", "type": "integer", "format": "uint64", "minimum": 1, "maximum": 250, "default": 50 }, "iterator": { "description": "The iterator returned from a prior invocation", "type": "string", "example": "some_role_id", "nullable": true } } }, "AdminRoleOut": { "type": "object", "properties": { "id": { "type": "string", "example": "some_role_id" }, "description": { "type": "string" }, "rules": { "type": "array", "items": { "$ref": "#/components/schemas/AccessRule" } }, "policies": { "type": "array", "items": { "type": "string", "example": "some_access_policy" } }, "context": { "type": "object", "additionalProperties": { "type": "string" } }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "id", "description", "rules", "policies", "context", "created", "updated" ] }, "AuthTokenConfigureNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "AuthTokenConfigureNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "AuthTokenCreateIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "name": { "type": "string", "example": "some token name" }, "prefix": { "type": "string", "default": "sk" }, "suffix": { "type": "string", "nullable": true }, "expiry_ms": { "description": "Milliseconds from now until the token expires.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true }, "metadata": { "type": "object", "default": {}, "additionalProperties": { "type": "string" } }, "owner_id": { "type": "string", "example": "owner ID" }, "scopes": { "type": "array", "items": { "type": "string" }, "default": [] }, "enabled": { "description": "Whether the token is enabled. Defaults to `true`.", "type": "boolean", "default": true } }, "required": [ "name", "owner_id" ] }, "AuthTokenCreateOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "token": { "type": "string" } }, "required": [ "id", "created", "updated", "token" ] }, "AuthTokenDeleteIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" } }, "required": [ "id" ] }, "AuthTokenDeleteOut": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "AuthTokenExpireIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "expiry_ms": { "description": "Milliseconds from now until the token expires. `None` means expire immediately.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } }, "required": [ "id" ] }, "AuthTokenExpireOut": { "type": "object" }, "AuthTokenGetNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "AuthTokenGetNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "AuthTokenListIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "owner_id": { "type": "string" }, "limit": { "description": "Limit the number of returned items", "type": "integer", "format": "uint64", "minimum": 1, "maximum": 250, "default": 50 }, "iterator": { "description": "The iterator returned from a prior invocation", "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w", "nullable": true } }, "required": [ "owner_id" ] }, "AuthTokenOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "name": { "type": "string" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "expiry": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "owner_id": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "enabled": { "description": "Whether this token is currently enabled.", "type": "boolean" } }, "required": [ "id", "name", "created", "updated", "metadata", "owner_id", "scopes", "enabled" ] }, "AuthTokenRotateIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "prefix": { "type": "string", "default": "sk" }, "suffix": { "type": "string", "nullable": true }, "expiry_ms": { "description": "Milliseconds from now until the old token expires. `None` means expire immediately.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } }, "required": [ "id" ] }, "AuthTokenRotateOut": { "type": "object", "properties": { "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "token": { "type": "string" } }, "required": [ "id", "created", "updated", "token" ] }, "AuthTokenUpdateIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "id": { "type": "string", "example": "key_06etngr201xwv7qj08mt4cs03w" }, "name": { "type": "string", "nullable": true }, "expiry_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true }, "metadata": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "scopes": { "type": "array", "items": { "type": "string" }, "nullable": true }, "enabled": { "type": "boolean", "nullable": true } }, "required": [ "id" ] }, "AuthTokenUpdateOut": { "type": "object" }, "AuthTokenVerifyIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "nullable": true }, "token": { "type": "string" } }, "required": [ "token" ] }, "AuthTokenVerifyOut": { "type": "object", "properties": { "token": { "$ref": "#/components/schemas/AuthTokenOut", "nullable": true } } }, "CacheConfigureNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "eviction_policy": { "default": "no-eviction", "$ref": "#/components/schemas/EvictionPolicy" } }, "required": [ "name" ] }, "CacheConfigureNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "eviction_policy": { "$ref": "#/components/schemas/EvictionPolicy" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "eviction_policy", "created", "updated" ] }, "CacheDeleteIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" } }, "required": [ "key" ], "x-positional": [ "key" ] }, "CacheDeleteOut": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "CacheGetIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "consistency": { "default": "weak", "$ref": "#/components/schemas/Consistency" } }, "required": [ "key" ], "x-positional": [ "key" ] }, "CacheGetNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "CacheGetNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "eviction_policy": { "$ref": "#/components/schemas/EvictionPolicy" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "eviction_policy", "created", "updated" ] }, "CacheGetOut": { "type": "object", "properties": { "expiry": { "description": "Time of expiry", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 }, "nullable": true } } }, "CacheSetIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "ttl_ms": { "description": "Time to live in milliseconds", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs" } }, "required": [ "key", "value", "ttl_ms" ], "x-positional": [ "key", "value" ] }, "CacheSetOut": { "type": "object" }, "ClusterForceElectionIn": { "type": "object" }, "ClusterForceElectionOut": { "type": "object", "properties": { "previous_leader_id": { "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8", "nullable": true }, "new_leader_id": { "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8", "nullable": true } } }, "ClusterForceSnapshotIn": { "type": "object" }, "ClusterForceSnapshotOut": { "type": "object", "properties": { "snapshot_time": { "description": "The wall-clock time at which the snapshot was initiated", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "snapshot_log_index": { "description": "The log index at which the snapshot was initiated", "type": "integer", "format": "uint64", "minimum": 0 }, "snapshot_id": { "description": "If this is `null`, the snapshot is still building in the background", "type": "string", "nullable": true } }, "required": [ "snapshot_time", "snapshot_log_index" ] }, "ClusterInitializeIn": { "type": "object" }, "ClusterInitializeOut": { "type": "object", "properties": { "cluster_id": { "type": "string" } }, "required": [ "cluster_id" ] }, "ClusterRemoveNodeIn": { "type": "object", "properties": { "node_id": { "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8" } }, "required": [ "node_id" ] }, "ClusterRemoveNodeOut": { "type": "object", "properties": { "node_id": { "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8" } }, "required": [ "node_id" ] }, "ClusterStatusOut": { "type": "object", "properties": { "cluster_id": { "description": "The unique ID of this cluster.\n\nThis value is populated on cluster initialization and will never change.", "type": "string", "nullable": true }, "cluster_name": { "description": "The name of this cluster (as defined in the config)\n\nThis value is not replicated and should only be used for debugging.", "type": "string", "nullable": true }, "this_node_id": { "description": "The unique ID of the node servicing this request", "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8" }, "this_node_state": { "description": "The cluster state of the node servicing this request", "$ref": "#/components/schemas/ServerState" }, "this_node_last_committed_timestamp": { "description": "The timestamp of the last transaction committed on this node", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "this_node_last_snapshot_id": { "description": "The last snapshot taken on this node", "type": "string", "nullable": true }, "nodes": { "description": "A list of all nodes known to be in the cluster", "type": "array", "items": { "$ref": "#/components/schemas/NodeStatusOut" } } }, "required": [ "this_node_id", "this_node_state", "this_node_last_committed_timestamp", "nodes" ] }, "Consistency": { "description": "Consistency level for reads.\n\nStrong consistency (also known as linearizability) guarantees that a read will see all previous\nwrites. Weak consistency allows stale reads, but can save one or more round trip to the leader.", "type": "string", "enum": [ "strong", "weak" ] }, "ErrorBody": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/ErrorType" }, "code": { "type": "string" }, "detail": { "type": "string" }, "location": { "type": "string", "nullable": true } }, "required": [ "type", "code", "detail" ] }, "ErrorType": { "type": "string", "enum": [ "invalid-input", "operation-error", "server-error" ] }, "EvictionPolicy": { "type": "string", "enum": [ "no-eviction" ] }, "IdempotencyAbortIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" } }, "required": [ "key" ], "x-positional": [ "key" ] }, "IdempotencyAbortOut": { "type": "object" }, "IdempotencyCompleteIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "response": { "description": "The response to cache", "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "context": { "description": "Optional metadata to store alongside the response", "type": "object", "default": null, "additionalProperties": { "type": "string" }, "nullable": true }, "ttl_ms": { "description": "How long to keep the idempotency response for.", "type": "integer", "format": "uint64", "minimum": 1, "x-subtype": "DurationMs" } }, "required": [ "key", "response", "ttl_ms" ], "x-positional": [ "key" ] }, "IdempotencyCompleteOut": { "type": "object" }, "IdempotencyCompleted": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "context": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "required": [ "response" ] }, "IdempotencyConfigureNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "IdempotencyConfigureNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "IdempotencyGetNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "IdempotencyGetNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "IdempotencyStartIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "lock_period_ms": { "description": "How long to hold the lock on start before releasing it.", "type": "integer", "format": "uint64", "minimum": 1, "x-subtype": "DurationMs" } }, "required": [ "key", "lock_period_ms" ], "x-positional": [ "key" ] }, "IdempotencyStartOut": { "oneOf": [ { "description": "Lock acquired, request should proceed", "type": "object", "properties": { "status": { "type": "string", "enum": [ "started" ] } }, "required": [ "status" ] }, { "description": "Request is already in progress (locked)", "type": "object", "properties": { "status": { "type": "string", "enum": [ "locked" ] } }, "required": [ "status" ] }, { "description": "Request was already completed, cached response returned", "type": "object", "properties": { "status": { "type": "string", "enum": [ "completed" ] }, "data": { "$ref": "#/components/schemas/IdempotencyCompleted" } }, "required": [ "status", "data" ] } ] }, "KvConfigureNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "KvConfigureNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "KvDeleteIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "version": { "description": "If set, the delete only succeeds when the stored version matches this value.\nUse the `version` field from a prior `get` response.", "type": "integer", "format": "uint64", "minimum": 0, "nullable": true } }, "required": [ "key" ], "x-positional": [ "key" ] }, "KvDeleteOut": { "type": "object", "properties": { "success": { "description": "Whether the operation succeeded or was a noop due to pre-conditions.", "type": "boolean" } }, "required": [ "success" ] }, "KvGetIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "consistency": { "default": "strong", "$ref": "#/components/schemas/Consistency" } }, "required": [ "key" ], "x-positional": [ "key" ] }, "KvGetNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "KvGetNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "KvGetOut": { "type": "object", "properties": { "expiry": { "description": "Time of expiry", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 }, "nullable": true }, "version": { "description": "Opaque version token for optimistic concurrency control.\nPass as `version` in a subsequent `set` to perform a conditional write.", "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "version" ] }, "KvSetIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "ttl_ms": { "description": "Time to live in milliseconds", "type": "integer", "format": "uint64", "minimum": 1, "x-subtype": "DurationMs", "nullable": true }, "behavior": { "default": "upsert", "$ref": "#/components/schemas/OperationBehavior" }, "version": { "description": "If set, the write only succeeds when the stored version matches this value.\nUse the `version` field from a prior `get` response.", "type": "integer", "format": "uint64", "minimum": 0, "nullable": true } }, "required": [ "key", "value" ], "x-positional": [ "key", "value" ] }, "KvSetOut": { "type": "object", "properties": { "version": { "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "version" ] }, "ListResponseAdminAccessPolicyOut": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminAccessPolicyOut" } }, "iterator": { "type": "string", "nullable": true }, "prev_iterator": { "type": "string", "nullable": true }, "done": { "type": "boolean" } }, "required": [ "data", "done" ] }, "ListResponseAdminAuthTokenOut": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminAuthTokenOut" } }, "iterator": { "type": "string", "nullable": true }, "prev_iterator": { "type": "string", "nullable": true }, "done": { "type": "boolean" } }, "required": [ "data", "done" ] }, "ListResponseAdminRoleOut": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AdminRoleOut" } }, "iterator": { "type": "string", "nullable": true }, "prev_iterator": { "type": "string", "nullable": true }, "done": { "type": "boolean" } }, "required": [ "data", "done" ] }, "ListResponseAuthTokenOut": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AuthTokenOut" } }, "iterator": { "type": "string", "nullable": true }, "prev_iterator": { "type": "string", "nullable": true }, "done": { "type": "boolean" } }, "required": [ "data", "done" ] }, "MsgIn": { "type": "object", "properties": { "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "headers": { "type": "object", "default": {}, "additionalProperties": { "type": "string" } }, "key": { "description": "Optional partition key.\n\nMessages with the same key are routed to the same partition.", "type": "string", "nullable": true }, "delay_ms": { "description": "Optional delay in milliseconds.\n\nThe message will not be delivered to queue consumers\nuntil the delay has elapsed from the time of publish.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": null, "nullable": true } }, "required": [ "value" ] }, "MsgNamespaceConfigureIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "retention": { "default": { "period_ms": null, "size_bytes": null }, "$ref": "#/components/schemas/Retention" } }, "required": [ "name" ], "x-positional": [ "name" ] }, "MsgNamespaceConfigureOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "retention": { "$ref": "#/components/schemas/Retention" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "retention", "created", "updated" ] }, "MsgNamespaceGetIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ], "x-positional": [ "name" ] }, "MsgNamespaceGetOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "retention": { "$ref": "#/components/schemas/Retention" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "retention", "created", "updated" ] }, "MsgPublishIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "msgs": { "type": "array", "items": { "$ref": "#/components/schemas/MsgIn" } }, "idempotency_key": { "type": "string", "nullable": true, "default": null, "example": "my_idempotency_key" } }, "required": [ "topic", "msgs" ], "x-positional": [ "topic" ] }, "MsgPublishOut": { "type": "object", "properties": { "topics": { "type": "array", "items": { "$ref": "#/components/schemas/MsgPublishOutTopic" } } }, "required": [ "topics" ] }, "MsgPublishOutTopic": { "type": "object", "properties": { "topic": { "type": "string", "example": "some_topic_name~0" }, "start_offset": { "type": "integer", "format": "uint64", "minimum": 0 }, "offset": { "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "topic", "start_offset", "offset" ] }, "MsgQueueAckIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "msg_ids": { "type": "array", "items": { "type": "string" } } }, "required": [ "topic", "consumer_group", "msg_ids" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueAckOut": { "type": "object" }, "MsgQueueConfigureIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "retry_schedule": { "type": "array", "items": { "type": "integer", "format": "uint64", "minimum": 0 }, "default": [] }, "dlq_topic": { "type": "string", "example": "some_topic_name", "nullable": true } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueConfigureOut": { "type": "object", "properties": { "retry_schedule": { "type": "array", "items": { "type": "integer", "format": "uint64", "minimum": 0 } }, "dlq_topic": { "type": "string", "example": "some_topic_name", "nullable": true } }, "required": [ "retry_schedule" ] }, "MsgQueueExtendLeaseIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "msg_ids": { "type": "array", "items": { "type": "string" } }, "lease_duration_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": 30000 } }, "required": [ "topic", "consumer_group", "msg_ids" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueExtendLeaseOut": { "type": "object" }, "MsgQueueNackIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "msg_ids": { "type": "array", "items": { "type": "string" } } }, "required": [ "topic", "consumer_group", "msg_ids" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueNackOut": { "type": "object" }, "MsgQueueReceiveIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "batch_size": { "type": "integer", "format": "uint16", "minimum": 1, "maximum": 65535, "default": 10 }, "lease_duration_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": 30000 }, "batch_wait_ms": { "description": "Maximum time (in milliseconds) to wait for messages before returning.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": null, "nullable": true } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueReceiveOut": { "type": "object", "properties": { "msgs": { "type": "array", "items": { "$ref": "#/components/schemas/QueueMsgOut" } } }, "required": [ "msgs" ] }, "MsgQueueRedriveDlqIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgQueueRedriveDlqOut": { "type": "object" }, "MsgStreamCancelLeaseIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name~0" }, "consumer_group": { "type": "string", "example": "some_consumer_group" } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgStreamCancelLeaseOut": { "type": "object" }, "MsgStreamCommitIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name~0" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "offset": { "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "topic", "consumer_group", "offset" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgStreamCommitOut": { "type": "object" }, "MsgStreamReceiveIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "batch_size": { "type": "integer", "format": "uint16", "minimum": 1, "maximum": 65535, "default": 10 }, "lease_duration_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": 300000 }, "default_starting_position": { "default": "latest", "$ref": "#/components/schemas/SeekPosition" }, "batch_wait_ms": { "description": "Maximum time (in milliseconds) to wait for messages before returning.", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "default": null, "nullable": true } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgStreamReceiveOut": { "type": "object", "properties": { "msgs": { "type": "array", "items": { "$ref": "#/components/schemas/StreamMsgOut" } } }, "required": [ "msgs" ] }, "MsgStreamSeekIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "consumer_group": { "type": "string", "example": "some_consumer_group" }, "offset": { "type": "integer", "format": "uint64", "minimum": 0, "nullable": true }, "position": { "$ref": "#/components/schemas/SeekPosition", "nullable": true }, "timestamp": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true } }, "required": [ "topic", "consumer_group" ], "x-positional": [ "topic", "consumer_group" ] }, "MsgStreamSeekOut": { "type": "object" }, "MsgTopicConfigureIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "topic": { "type": "string", "example": "some_topic_name" }, "partitions": { "type": "integer", "format": "uint16", "minimum": 0, "maximum": 65535 } }, "required": [ "topic", "partitions" ], "x-positional": [ "topic" ] }, "MsgTopicConfigureOut": { "type": "object", "properties": { "partitions": { "type": "integer", "format": "uint16", "minimum": 0, "maximum": 65535 } }, "required": [ "partitions" ] }, "NodeStatusOut": { "type": "object", "properties": { "node_id": { "description": "A unique ID representing this node.\n\nThis will never change unless the node is erased and reset", "type": "string", "example": "a1a2a3a4b1b2c1c2d1d2d3d4d5d6d7d8" }, "address": { "description": "The advertised inter-server (cluster) address of this node.", "type": "string" }, "state": { "description": "The last known state of this node", "$ref": "#/components/schemas/ServerState" }, "last_committed_log_index": { "description": "The index of the last log applied on this node", "type": "integer", "format": "uint64", "minimum": 0, "nullable": true }, "last_committed_term": { "description": "The raft term of the last committed leadership", "type": "integer", "format": "uint64", "minimum": 0, "nullable": true } }, "required": [ "node_id", "address", "state" ] }, "OperationBehavior": { "type": "string", "enum": [ "upsert", "insert", "update" ] }, "PingOut": { "type": "object", "properties": { "ok": { "type": "boolean" } }, "required": [ "ok" ] }, "QueueMsgOut": { "type": "object", "properties": { "msg_id": { "type": "string" }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "timestamp": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "scheduled_at": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true } }, "required": [ "msg_id", "value", "headers", "timestamp" ] }, "RateLimitCheckIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "tokens": { "description": "Number of tokens to consume (default: 1)", "type": "integer", "format": "uint64", "minimum": 0, "default": 1 }, "config": { "description": "Rate limiter configuration", "$ref": "#/components/schemas/RateLimitConfig" } }, "required": [ "key", "config" ] }, "RateLimitCheckOut": { "type": "object", "properties": { "allowed": { "description": "Whether the request is allowed", "type": "boolean" }, "remaining": { "description": "Number of tokens remaining", "type": "integer", "format": "uint64", "minimum": 0 }, "retry_after_ms": { "description": "Milliseconds until enough tokens are available (only present when allowed is false)", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } }, "required": [ "allowed", "remaining" ] }, "RateLimitConfig": { "type": "object", "properties": { "capacity": { "description": "Maximum capacity of the bucket", "type": "integer", "format": "uint64", "minimum": 1 }, "refill_amount": { "description": "Number of tokens to add per refill interval", "type": "integer", "format": "uint64", "minimum": 1 }, "refill_interval_ms": { "description": "Interval in milliseconds between refills (minimum 1 millisecond)", "type": "integer", "format": "uint64", "minimum": 1, "x-subtype": "DurationMs", "default": 1000 } }, "required": [ "capacity", "refill_amount" ] }, "RateLimitConfigureNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "RateLimitConfigureNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "RateLimitGetNamespaceIn": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" } }, "required": [ "name" ] }, "RateLimitGetNamespaceOut": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace" }, "created": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "updated": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" } }, "required": [ "name", "created", "updated" ] }, "RateLimitGetRemainingIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "config": { "description": "Rate limiter configuration", "$ref": "#/components/schemas/RateLimitConfig" } }, "required": [ "key", "config" ] }, "RateLimitGetRemainingOut": { "type": "object", "properties": { "remaining": { "description": "Number of tokens remaining", "type": "integer", "format": "uint64", "minimum": 0 }, "retry_after_ms": { "description": "Milliseconds until at least one token is available (only present when remaining is 0)", "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } }, "required": [ "remaining" ] }, "RateLimitResetIn": { "type": "object", "properties": { "namespace": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+]+$", "example": "some_namespace", "default": null, "nullable": true }, "key": { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9\\-/_.=+:]+$", "example": "some_key" }, "config": { "description": "Rate limiter configuration", "$ref": "#/components/schemas/RateLimitConfig" } }, "required": [ "key", "config" ] }, "RateLimitResetOut": { "type": "object" }, "Retention": { "type": "object", "properties": { "period_ms": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "DurationMs", "nullable": true } } }, "SeekPosition": { "type": "string", "enum": [ "earliest", "latest" ] }, "ServerState": { "type": "string", "enum": [ "leader", "follower", "learner", "candidate", "shutdown", "unknown" ] }, "StreamMsgOut": { "type": "object", "properties": { "offset": { "type": "integer", "format": "uint64", "minimum": 0 }, "topic": { "type": "string", "example": "some_topic_name~0" }, "value": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0, "maximum": 255 } }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "timestamp": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs" }, "scheduled_at": { "type": "integer", "format": "uint64", "minimum": 0, "x-subtype": "UnixTimestampMs", "nullable": true } }, "required": [ "offset", "topic", "value", "headers", "timestamp" ] } } }, "tags": [ { "name": "Cache" }, { "name": "Idempotency" }, { "name": "Key Value Store" }, { "name": "Rate Limiter" }, { "name": "Stream" }, { "name": "Health" } ] }