pub struct Client { /* private fields */ }Expand description
Client for Alien Manager API
Control plane for Alien applications. Manages deployments, releases, commands, and telemetry.
Version: 1.0.0
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(baseurl: &str) -> Self
pub fn new(baseurl: &str) -> Self
Create a new client.
baseurl is the base URL provided to the internal
reqwest::Client, and should include a scheme and hostname,
as well as port and a path stem if applicable.
Sourcepub fn new_with_client(baseurl: &str, client: Client) -> Self
pub fn new_with_client(baseurl: &str, client: Client) -> Self
Construct a new client with an existing reqwest::Client,
allowing more control over its configuration.
baseurl is the base URL provided to the internal
reqwest::Client, and should include a scheme and hostname,
as well as port and a path stem if applicable.
Source§impl Client
impl Client
Sourcepub fn health(&self) -> Health<'_>
pub fn health(&self) -> Health<'_>
Sends a GET request to /health
let response = client.health()
.send()
.await;Sourcepub fn create_command(&self) -> CreateCommand<'_>
pub fn create_command(&self) -> CreateCommand<'_>
Create a new command
Sends a POST request to /v1/commands
let response = client.create_command()
.body(body)
.send()
.await;Sourcepub fn acquire_leases(&self) -> AcquireLeases<'_>
pub fn acquire_leases(&self) -> AcquireLeases<'_>
Acquire leases for polling deployments
Sends a POST request to /v1/commands/leases
let response = client.acquire_leases()
.body(body)
.send()
.await;Sourcepub fn release_lease(&self) -> ReleaseLease<'_>
pub fn release_lease(&self) -> ReleaseLease<'_>
Release a lease
Sends a POST request to /v1/commands/leases/{lease_id}/release
Arguments:
lease_id: Lease identifier
let response = client.release_lease()
.lease_id(lease_id)
.send()
.await;Sourcepub fn get_command_status(&self) -> GetCommandStatus<'_>
pub fn get_command_status(&self) -> GetCommandStatus<'_>
Get command status
Sends a GET request to /v1/commands/{command_id}
Arguments:
command_id: Command identifier
let response = client.get_command_status()
.command_id(command_id)
.send()
.await;Sourcepub fn get_command_payload(&self) -> GetCommandPayload<'_>
pub fn get_command_payload(&self) -> GetCommandPayload<'_>
Get command payload (params and response) from KV
Returns the raw params and response data stored in the manager’s KV store. Returns 404 if neither params nor response exist for this command.
Sends a GET request to /v1/commands/{command_id}/payload
Arguments:
command_id: Command identifier
let response = client.get_command_payload()
.command_id(command_id)
.send()
.await;Sourcepub fn store_command_payload(&self) -> StoreCommandPayload<'_>
pub fn store_command_payload(&self) -> StoreCommandPayload<'_>
Store command payload data (params and/or response) directly into KV
Bypasses the command registry — useful for populating demo data or migrating payload data. Does not validate command existence or state.
Sends a PUT request to /v1/commands/{command_id}/payload
Arguments:
command_id: Command identifierbody
let response = client.store_command_payload()
.command_id(command_id)
.body(body)
.send()
.await;Sourcepub fn submit_response(&self) -> SubmitResponse<'_>
pub fn submit_response(&self) -> SubmitResponse<'_>
Submit response from deployment
Sends a PUT request to /v1/commands/{command_id}/response
Arguments:
command_id: Command identifierbody
let response = client.submit_response()
.command_id(command_id)
.body(body)
.send()
.await;Sourcepub fn upload_complete(&self) -> UploadComplete<'_>
pub fn upload_complete(&self) -> UploadComplete<'_>
Mark upload as complete
Sends a POST request to /v1/commands/{command_id}/upload-complete
Arguments:
command_id: Command identifierbody
let response = client.upload_complete()
.command_id(command_id)
.body(body)
.send()
.await;Sourcepub fn list_deployment_groups(&self) -> ListDeploymentGroups<'_>
pub fn list_deployment_groups(&self) -> ListDeploymentGroups<'_>
Sends a GET request to /v1/deployment-groups
let response = client.list_deployment_groups()
.send()
.await;Sourcepub fn create_deployment_group(&self) -> CreateDeploymentGroup<'_>
pub fn create_deployment_group(&self) -> CreateDeploymentGroup<'_>
Every handler in this file runs auth::require_auth(&state, &headers)
and then threads &subject into the DeploymentStore calls — see the
trait doc on [DeploymentStore] for the convention
POST /v1/deployment-groups — Inbound: workspace bearer.
Sends a POST request to /v1/deployment-groups
let response = client.create_deployment_group()
.body(body)
.send()
.await;Sourcepub fn get_deployment_group(&self) -> GetDeploymentGroup<'_>
pub fn get_deployment_group(&self) -> GetDeploymentGroup<'_>
Sends a GET request to /v1/deployment-groups/{id}
Arguments:
id: Deployment group ID
let response = client.get_deployment_group()
.id(id)
.send()
.await;Sourcepub fn create_deployment_group_token(&self) -> CreateDeploymentGroupToken<'_>
pub fn create_deployment_group_token(&self) -> CreateDeploymentGroupToken<'_>
Sends a POST request to /v1/deployment-groups/{id}/tokens
Arguments:
id: Deployment group ID
let response = client.create_deployment_group_token()
.id(id)
.send()
.await;Sourcepub fn list_deployments(&self) -> ListDeployments<'_>
pub fn list_deployments(&self) -> ListDeployments<'_>
Sends a GET request to /v1/deployments
Arguments:
deployment_group_id: Filter by deployment group IDinclude: Include related resources (e.g. deploymentGroup)
let response = client.list_deployments()
.deployment_group_id(deployment_group_id)
.include(include)
.send()
.await;Sourcepub fn create_deployment(&self) -> CreateDeployment<'_>
pub fn create_deployment(&self) -> CreateDeployment<'_>
Every handler in this file runs auth::require_auth(&state, &headers)
and then threads &subject into the DeploymentStore calls. Embedders
that proxy to an upstream API can use the subject’s bearer_token for
passthrough; single-tenant impls ignore it. See the trait doc on
[DeploymentStore] for the full convention
POST /v1/deployments — Inbound: workspace / project / dg bearer (or
authenticated user). Deployment-scoped tokens cannot create deployments.
Sends a POST request to /v1/deployments
let response = client.create_deployment()
.body(body)
.send()
.await;Sourcepub fn get_deployment(&self) -> GetDeployment<'_>
pub fn get_deployment(&self) -> GetDeployment<'_>
Sends a GET request to /v1/deployments/{id}
Arguments:
id: Deployment ID
let response = client.get_deployment()
.id(id)
.send()
.await;Sourcepub fn delete_deployment(&self) -> DeleteDeployment<'_>
pub fn delete_deployment(&self) -> DeleteDeployment<'_>
Sends a POST request to /v1/deployments/{id}/delete
Arguments:
id: Deployment IDbody
let response = client.delete_deployment()
.id(id)
.body(body)
.send()
.await;Sourcepub fn get_deployment_info(&self) -> GetDeploymentInfo<'_>
pub fn get_deployment_info(&self) -> GetDeploymentInfo<'_>
Sends a GET request to /v1/deployments/{id}/info
Arguments:
id: Deployment ID
let response = client.get_deployment_info()
.id(id)
.send()
.await;Sourcepub fn redeploy(&self) -> Redeploy<'_>
pub fn redeploy(&self) -> Redeploy<'_>
Sends a POST request to /v1/deployments/{id}/redeploy
Arguments:
id: Deployment ID
let response = client.redeploy()
.id(id)
.send()
.await;Sourcepub fn retry_deployment(&self) -> RetryDeployment<'_>
pub fn retry_deployment(&self) -> RetryDeployment<'_>
Sends a POST request to /v1/deployments/{id}/retry
Arguments:
id: Deployment ID
let response = client.retry_deployment()
.id(id)
.send()
.await;Sourcepub fn initialize(&self) -> Initialize<'_>
pub fn initialize(&self) -> Initialize<'_>
POST /v1/initialize — Inbound: deployment-group bearer (typical),
or workspace bearer for self-hosted operator workflows. New deployments
are created via DeploymentStore::create_deployment(caller, …) so
embedders that proxy to an upstream API write the row in the dg’s
workspace, not the manager’s
Sends a POST request to /v1/initialize
let response = client.initialize()
.body(body)
.send()
.await;Sourcepub fn list_releases(&self) -> ListReleases<'_>
pub fn list_releases(&self) -> ListReleases<'_>
GET /v1/releases — Inbound: workspace / project bearer (or authenticated
user). Outbound: caller bearer (passthrough). Returns only releases the
caller may read
Sends a GET request to /v1/releases
let response = client.list_releases()
.send()
.await;Sourcepub fn create_release(&self) -> CreateRelease<'_>
pub fn create_release(&self) -> CreateRelease<'_>
Sends a POST request to /v1/releases
let response = client.create_release()
.body(body)
.send()
.await;Sourcepub fn get_latest_release(&self) -> GetLatestRelease<'_>
pub fn get_latest_release(&self) -> GetLatestRelease<'_>
Sends a GET request to /v1/releases/latest
let response = client.get_latest_release()
.send()
.await;Sourcepub fn get_release(&self) -> GetRelease<'_>
pub fn get_release(&self) -> GetRelease<'_>
Sends a GET request to /v1/releases/{id}
Arguments:
id: Release ID
let response = client.get_release()
.id(id)
.send()
.await;Sourcepub fn resolve_credentials(&self) -> ResolveCredentials<'_>
pub fn resolve_credentials(&self) -> ResolveCredentials<'_>
Sends a POST request to /v1/resolve-credentials
let response = client.resolve_credentials()
.body(body)
.send()
.await;Sourcepub fn stack_import(&self) -> StackImport<'_>
pub fn stack_import(&self) -> StackImport<'_>
POST /v1/stack/import — Inbound: deployment-group bearer
The body’s deploymentGroupToken field is informational (mirrored back
for log correlation) — actual authentication is the standard Authorization Bearer header processed by [auth::require_auth]. The handler tolerates
the body field being either the raw token or empty; it never reads
credentials from the body to make the secret path uniform with every
other endpoint.
Sends a POST request to /v1/stack/import
let response = client.stack_import()
.body(body)
.send()
.await;Sourcepub fn agent_sync(&self) -> AgentSync<'_>
pub fn agent_sync(&self) -> AgentSync<'_>
POST /v1/sync — Inbound: deployment bearer. The agent-driven sync
path; caller: &Subject is threaded into the store so embedders see
the agent’s own scope
Sends a POST request to /v1/sync
let response = client.agent_sync()
.body(body)
.send()
.await;Sourcepub fn acquire(&self) -> Acquire<'_>
pub fn acquire(&self) -> Acquire<'_>
POST /v1/sync/acquire — Inbound: workspace / dg / deployment bearer.
caller: &Subject is threaded into DeploymentStore::acquire so
embedders can authorize against the inbound caller’s scope
Sends a POST request to /v1/sync/acquire
let response = client.acquire()
.body(body)
.send()
.await;Sourcepub fn reconcile(&self) -> Reconcile<'_>
pub fn reconcile(&self) -> Reconcile<'_>
POST /v1/sync/reconcile — Inbound: workspace / dg / deployment
bearer. caller: &Subject is threaded into DeploymentStore::reconcile
Sends a POST request to /v1/sync/reconcile
let response = client.reconcile()
.body(body)
.send()
.await;