Python API reference
Generated from eve-iac OpenAPI/semantics. Do not edit manually.
Public methods on EveIacClient. Import models from eveiac.
Omitted optional fields use UNSET (or are left off a mapping) and are not serialized. None is JSON null. False, 0, and "" are explicit values.
Pass timeout_ms to override the operation timeout from semantics. None uses the operation default.
Connection / Authentication
get_health
Signature
get_health(
timeout_ms: int | None = None
) -> HealthData
Description
GET /api/v1/health. operationId getHealth. Timeout 15000ms.
- HTTP:
GET /api/v1/health
- operationId:
getHealth
- Authentication: none
- Default timeout: 15000 ms
Parameters
| Parameter |
Type |
Required |
Description |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
HealthData
| Field |
Python type |
Required |
Semantics |
status |
str |
no |
|
tls |
bool |
no |
|
version |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
health = client.get_health()
print(health.status)
login
Signature
login(
body: LoginRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> LoginData
Description
POST /api/v1/login. operationId login. Timeout 15000ms.
- HTTP:
POST /api/v1/login
- operationId:
login
- Authentication: none
- Default timeout: 15000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
LoginRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: LoginRequest
LoginRequest is the same wire shape as LoginRequest.
| Field |
Python type |
Required |
Semantics |
username |
str |
yes |
|
password |
str |
yes |
|
Returns
LoginData
| Field |
Python type |
Required |
Semantics |
token |
str |
no |
|
username |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
invalid_credentials |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
Example
from eveiac import LoginRequest
session = client.login(LoginRequest(username="admin", password="secret"))
client = EveIacClient(url=url, token=session.token, ca_pem=ca_pem)
logout
Signature
logout(
body: LogoutRequest | Mapping[str, Any] | None = None,
timeout_ms: int | None = None
) -> StatusOkData
Description
POST /api/v1/logout. operationId logout. Timeout 15000ms.
- HTTP:
POST /api/v1/logout
- operationId:
logout
- Authentication: Bearer token required
- Default timeout: 15000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
LogoutRequest |
no |
Optional; empty object is sent when omitted. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: LogoutRequest
LogoutRequest is the same wire shape as LogoutRequest.
No object fields (see type).
Returns
StatusOkData
| Field |
Python type |
Required |
Semantics |
status |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
client.logout()
get_session
Signature
get_session(
timeout_ms: int | None = None
) -> SessionData
Description
GET /api/v1/session. operationId getSession. Timeout 15000ms.
- HTTP:
GET /api/v1/session
- operationId:
getSession
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
SessionData
| Field |
Python type |
Required |
Semantics |
username |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
session = client.get_session()
get_capabilities
Signature
get_capabilities(
timeout_ms: int | None = None
) -> CapabilitiesData
Description
GET /api/v1/capabilities. operationId getCapabilities. Timeout 15000ms.
- HTTP:
GET /api/v1/capabilities
- operationId:
getCapabilities
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
CapabilitiesData
| Field |
Python type |
Required |
Semantics |
eveReachable |
bool |
no |
|
eveBaseUrl |
str |
no |
|
features |
dict[str, bool] |
no |
|
projectModes |
dict[str, ProjectModeCaps] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
caps = client.get_capabilities()
list_templates
Signature
list_templates(
query: ListTemplatesQuery | Mapping[str, Any] | None = None,
timeout_ms: int | None = None
) -> TemplatesData
Description
GET /api/v1/templates. operationId listTemplates. Timeout 15000ms.
- HTTP:
GET /api/v1/templates
- operationId:
listTemplates
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
query |
ListTemplatesQuery (ListTemplatesQuery \| Mapping \| None) |
no |
Query object. Omit the argument to send no query string. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Query schema: ListTemplatesQuery
| Field |
Python type |
Required |
Semantics |
provisioned |
str |
no |
Only the string true filters to provisioned templates. Omitted means all. |
Returns
TemplatesData
| Field |
Python type |
Required |
Semantics |
templates |
list[Template] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ListTemplatesQuery
templates = client.list_templates()
provisioned = client.list_templates(ListTemplatesQuery(provisioned="true"))
get_template
Signature
get_template(
id: str,
timeout_ms: int | None = None
) -> TemplateDetail
Description
GET /api/v1/templates/{id}. operationId getTemplate. Timeout 15000ms.
- HTTP:
GET /api/v1/templates/{id}
- operationId:
getTemplate
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
id |
str |
yes |
Path parameter |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
TemplateDetail
| Field |
Python type |
Required |
Semantics |
id |
str |
no |
|
description |
str |
no |
|
type |
str |
no |
|
provisioned |
bool |
no |
|
configSupported |
bool |
no |
|
images |
list[TemplateImage] |
no |
|
default |
str |
no |
|
attributes |
list[TemplateAttribute] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
detail = client.get_template("iol")
list_template_images
Signature
list_template_images(
id: str,
timeout_ms: int | None = None
) -> TemplateImagesData
Description
GET /api/v1/templates/{id}/images. operationId listTemplateImages. Timeout 15000ms.
- HTTP:
GET /api/v1/templates/{id}/images
- operationId:
listTemplateImages
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
id |
str |
yes |
Path parameter |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
TemplateImagesData
| Field |
Python type |
Required |
Semantics |
template |
str |
no |
|
type |
str |
no |
|
provisioned |
bool |
no |
|
default |
str |
no |
|
images |
list[TemplateImage] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
data = client.list_template_images("iol")
list_template_attributes
Signature
list_template_attributes(
id: str,
timeout_ms: int | None = None
) -> TemplateAttributesData
Description
GET /api/v1/templates/{id}/attributes. operationId listTemplateAttributes. Timeout 15000ms.
- HTTP:
GET /api/v1/templates/{id}/attributes
- operationId:
listTemplateAttributes
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
id |
str |
yes |
Path parameter |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
TemplateAttributesData
| Field |
Python type |
Required |
Semantics |
template |
str |
no |
|
type |
str |
no |
|
attributes |
list[TemplateAttribute] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
data = client.list_template_attributes("iol")
list_network_types
Signature
list_network_types(
timeout_ms: int | None = None
) -> NetworkTypesData
Description
GET /api/v1/network-types. operationId listNetworkTypes. Timeout 15000ms.
- HTTP:
GET /api/v1/network-types
- operationId:
listNetworkTypes
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
NetworkTypesData
| Field |
Python type |
Required |
Semantics |
types |
list[NetworkType] |
no |
|
natOnly |
bool |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
result = client.list_network_types()
list_icons
Signature
list_icons(
timeout_ms: int | None = None
) -> IconsData
Description
GET /api/v1/icons. operationId listIcons. Timeout 15000ms.
- HTTP:
GET /api/v1/icons
- operationId:
listIcons
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
IconsData
| Field |
Python type |
Required |
Semantics |
icons |
list[Icon] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
result = client.list_icons()
complete_link_interfaces
Signature
complete_link_interfaces(
body: CompleteLinkInterfacesRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> LinkCompletionsData
Description
POST /api/v1/authoring/link-completions. operationId completeLinkInterfaces. Timeout 15000ms.
- HTTP:
POST /api/v1/authoring/link-completions
- operationId:
completeLinkInterfaces
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
CompleteLinkInterfacesRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: CompleteLinkInterfacesRequest
CompleteLinkInterfacesRequest is the same wire shape as AuthoringPayload.
| Field |
Python type |
Required |
Semantics |
dir |
str |
no |
Rejected when non-empty. |
yaml |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
template |
str |
no |
|
attributes |
Mapping[str, Any] |
no |
|
excludeUsed |
bool |
no |
|
eth_format |
str |
no |
|
Returns
LinkCompletionsData
| Field |
Python type |
Required |
Semantics |
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
items |
list[Iface] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import CompleteLinkInterfacesRequest
data = client.complete_link_interfaces(CompleteLinkInterfacesRequest(template="iol"))
preview_interfaces
Signature
preview_interfaces(
body: PreviewInterfacesRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> InterfacesPreviewData
Description
POST /api/v1/authoring/interfaces. operationId previewInterfaces. Timeout 15000ms.
- HTTP:
POST /api/v1/authoring/interfaces
- operationId:
previewInterfaces
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
PreviewInterfacesRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: PreviewInterfacesRequest
PreviewInterfacesRequest is the same wire shape as AuthoringPayload.
| Field |
Python type |
Required |
Semantics |
dir |
str |
no |
Rejected when non-empty. |
yaml |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
template |
str |
no |
|
attributes |
Mapping[str, Any] |
no |
|
excludeUsed |
bool |
no |
|
eth_format |
str |
no |
|
Returns
InterfacesPreviewData
| Field |
Python type |
Required |
Semantics |
items |
list[Iface] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import PreviewInterfacesRequest
data = client.preview_interfaces(PreviewInterfacesRequest(template="iol"))
Projects
validate_project
Signature
validate_project(
body: ValidateProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ValidateData
Description
POST /api/v1/projects/validate. operationId validateProject. Timeout 15000ms.
- HTTP:
POST /api/v1/projects/validate
- operationId:
validateProject
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
ValidateProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: ValidateProjectRequest
ValidateProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ValidateData
| Field |
Python type |
Required |
Semantics |
status |
str |
yes |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ValidateProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.validate_project(ValidateProjectRequest(**packed.payload))
import_project
Signature
import_project(
body: ImportProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ImportData
Description
POST /api/v1/projects/import. operationId importProject. Timeout 120000ms. Clones source_lab into a managed working copy. Does not mutate source_lab. from_eve is not this operation.
- HTTP:
POST /api/v1/projects/import
- operationId:
importProject
- Authentication: Bearer token required
- Default timeout: 120000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
ImportProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 120000 ms default. |
Request schema: ImportProjectRequest
lab is required. Import clones source_lab into a managed working copy. It does not mutate source_lab. It is not from_eve reconcile.
| Field |
Python type |
Required |
Semantics |
lab |
str |
yes |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ImportData
| Field |
Python type |
Required |
Semantics |
name |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
mode |
str |
no |
|
source_lab |
str |
no |
|
managed_lab |
str |
no |
|
lab |
str |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
operation_not_allowed |
Contractual/known for this call or its transport |
lab_busy |
Contractual/known for this call or its transport |
lab_locked |
Contractual/known for this call or its transport |
lab_locked_mid_apply |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ImportProjectRequest, pack_lab
packed = pack_lab("./imported-lab")
imported = client.import_project(ImportProjectRequest(**packed.payload))
# Import clones source_lab. It is not reconcile from_eve.
plan_project
Signature
plan_project(
body: PlanProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> PlanData
Description
POST /api/v1/projects/plan. operationId planProject. Timeout 180000ms. Dry-run. Omitted direction is to_eve. Never writes Local files or EVE.
- HTTP:
POST /api/v1/projects/plan
- operationId:
planProject
- Authentication: Bearer token required
- Default timeout: 180000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
PlanProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 180000 ms default. |
Request schema: PlanProjectRequest
PlanProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
PlanData
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
exists |
bool |
no |
|
summary |
PlanSummary |
no |
|
operations |
list[PlanAction] |
no |
|
actions |
list[PlanAction] |
no |
|
applicable |
bool |
no |
|
blocked |
list[PlanAction] |
no |
|
text |
str |
no |
|
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
locked |
bool |
no |
|
lock |
int |
no |
|
direction |
str |
no |
omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
unsupported |
list[str] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
invalid_direction |
Contractual/known for this call or its transport |
plan_stale |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import PlanProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.plan_project(PlanProjectRequest(**packed.payload))
deploy_project
Signature
deploy_project(
body: DeployProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> DeployData
Description
POST /api/v1/projects/deploy. operationId deployProject. Timeout 300000ms.
- HTTP:
POST /api/v1/projects/deploy
- operationId:
deployProject
- Authentication: Bearer token required
- Default timeout: 300000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
DeployProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 300000 ms default. |
Request schema: DeployProjectRequest
DeployProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
DeployData
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
nodes |
int |
no |
|
links |
int |
no |
|
state |
Any |
no |
|
unsupported |
list[str] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
lab_exists |
Contractual/known for this call or its transport |
operation_not_allowed |
Contractual/known for this call or its transport |
lab_busy |
Contractual/known for this call or its transport |
lab_locked |
Contractual/known for this call or its transport |
lab_locked_mid_apply |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import DeployProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.deploy_project(DeployProjectRequest(**packed.payload))
reconcile_project
Signature
reconcile_project(
body: ReconcileProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ReconcileData
Description
POST /api/v1/projects/reconcile. operationId reconcileProject. Timeout 300000ms. to_eve mutates EVE. from_eve updates Local from the managed lab with no mutating EVE writes. from_eve is not Import.
- HTTP:
POST /api/v1/projects/reconcile
- operationId:
reconcileProject
- Authentication: Bearer token required
- Default timeout: 300000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
ReconcileProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 300000 ms default. |
Request schema: ReconcileProjectRequest
ReconcileProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ReconcileData
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
applied |
int |
no |
|
skippedPrune |
int |
no |
|
fullDeploy |
bool |
no |
|
applicable |
bool |
no |
|
summary |
PlanSummary |
no |
|
operations |
list[PlanAction] |
no |
|
blocked |
list[PlanAction] |
no |
|
direction |
str |
no |
omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
state |
Any |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
invalid_direction |
Contractual/known for this call or its transport |
plan_stale |
Contractual/known for this call or its transport |
operation_not_allowed |
Contractual/known for this call or its transport |
lab_busy |
Contractual/known for this call or its transport |
lab_locked |
Contractual/known for this call or its transport |
lab_locked_mid_apply |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ReconcileProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.reconcile_project(ReconcileProjectRequest(**packed.payload))
destroy_project
Signature
destroy_project(
body: DestroyProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> DestroyData
Description
POST /api/v1/projects/destroy. operationId destroyProject. Timeout 180000ms.
- HTTP:
POST /api/v1/projects/destroy
- operationId:
destroyProject
- Authentication: Bearer token required
- Default timeout: 180000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
DestroyProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 180000 ms default. |
Request schema: DestroyProjectRequest
DestroyProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
DestroyData
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
operation_not_allowed |
Contractual/known for this call or its transport |
lab_busy |
Contractual/known for this call or its transport |
lab_locked |
Contractual/known for this call or its transport |
lab_locked_mid_apply |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import DestroyProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.destroy_project(DestroyProjectRequest(**packed.payload))
get_project_status
Signature
get_project_status(
body: GetProjectStatusRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ProjectStatusData
Description
POST /api/v1/projects/status. operationId getProjectStatus. Timeout 15000ms.
- HTTP:
POST /api/v1/projects/status
- operationId:
getProjectStatus
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
GetProjectStatusRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: GetProjectStatusRequest
GetProjectStatusRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ProjectStatusData
| Field |
Python type |
Required |
Semantics |
mode |
str |
no |
|
source_lab |
str |
None |
no |
managed_lab |
str |
None |
no |
runtime_lab |
str |
None |
no |
capabilities |
ProjectModeCaps |
no |
|
locked |
bool |
no |
|
lock |
int |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import GetProjectStatusRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.get_project_status(GetProjectStatusRequest(**packed.payload))
inspect_project
Signature
inspect_project(
body: InspectProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> InspectionData
Description
POST /api/v1/projects/inspect. operationId inspectProject. Timeout 120000ms. Observation, not desired state.
- HTTP:
POST /api/v1/projects/inspect
- operationId:
inspectProject
- Authentication: Bearer token required
- Default timeout: 120000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
InspectProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 120000 ms default. |
Request schema: InspectProjectRequest
InspectProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
InspectionData
| Field |
Python type |
Required |
Semantics |
observation |
bool |
no |
|
desired_state |
bool |
no |
|
mode |
str |
no |
|
source_lab |
Any |
no |
|
managed_lab |
Any |
no |
|
runtime_lab |
str |
no |
|
capabilities |
ProjectModeCaps |
no |
|
cached |
bool |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import InspectProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.inspect_project(InspectProjectRequest(**packed.payload))
open_project
Signature
open_project(
body: OpenProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> OpenData
Description
POST /api/v1/projects/open. operationId openProject. Timeout 30000ms.
- HTTP:
POST /api/v1/projects/open
- operationId:
openProject
- Authentication: Bearer token required
- Default timeout: 30000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
OpenProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 30000 ms default. |
Request schema: OpenProjectRequest
OpenProjectRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
OpenData
| Field |
Python type |
Required |
Semantics |
url |
str |
no |
|
ttl |
int |
no |
|
lab |
str |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import OpenProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.open_project(OpenProjectRequest(**packed.payload))
Execution / Consoles
list_project_consoles
Signature
list_project_consoles(
body: ListProjectConsolesRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ConsolesData
Description
POST /api/v1/projects/consoles. operationId listProjectConsoles. Timeout 30000ms.
- HTTP:
POST /api/v1/projects/consoles
- operationId:
listProjectConsoles
- Authentication: Bearer token required
- Default timeout: 30000 ms
- Auth replay: read/idempotent calls may retry once after agent re-auth
Parameters
| Parameter |
Type |
Required |
Description |
body |
ListProjectConsolesRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 30000 ms default. |
Request schema: ListProjectConsolesRequest
ListProjectConsolesRequest is the same wire shape as ProjectPayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ConsolesData
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
html5 |
bool |
no |
|
consoles |
list[ConsoleRecord] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ListProjectConsolesRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.list_project_consoles(ListProjectConsolesRequest(**packed.payload))
exec_project
Signature
exec_project(
body: ExecProjectRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> BulkResult
Description
POST /api/v1/projects/exec. operationId execProject. Timeout 180000ms. action is start|stop|wipe. Omitted or empty node means all nodes. Success data is BulkResult with stable lowercase keys. Omitted stopmode is 3; explicit 0 is graceful.
- HTTP:
POST /api/v1/projects/exec
- operationId:
execProject
- Authentication: Bearer token required
- Default timeout: 180000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
ExecProjectRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 180000 ms default. |
Request schema: ExecProjectRequest
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
source |
Any |
no |
|
manifest |
str |
no |
|
prune |
bool |
no |
omitted: Go bool zero = false; extras are not deleted. explicit false: same semantic as omitted, distinct on the wire. explicit true: delete extra live objects on to_eve |
wipe |
bool |
no |
explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true) |
action |
str |
yes |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
id |
int |
no |
|
stopmode |
int |
no |
0=graceful 1=poweroff 2=hibernate 3=auto. Omitted uses lifecycle.DefaultStopMode (3). Explicit 0 is graceful. No OpenAPI default. omitted: lifecycle.DefaultStopMode (3, Vue auto). explicit 0: graceful stop (0); distinct from omission. values: 0=graceful 1=poweroff 2=hibernate 3=auto |
refresh |
bool |
no |
omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache |
replace |
bool |
no |
omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate |
plan_identity |
str |
no |
omitted: recompute the live plan. present: opaque token from the last plan of the same direction |
direction |
str |
no |
Wire string. Valid values are documented in semantics.yaml, not as an OpenAPI enum, so omitted vs to_eve vs empty vs invalid remain distinct on the wire. omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import |
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
BulkResult
| Field |
Python type |
Required |
Semantics |
requested |
int |
yes |
|
started |
int |
yes |
|
already_running |
int |
yes |
|
already_starting |
int |
yes |
|
stopped |
int |
yes |
|
already_stopped |
int |
yes |
|
wiped |
int |
yes |
|
failed |
int |
yes |
|
invalid |
int |
yes |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
operation_not_allowed |
Contractual/known for this call or its transport |
lab_busy |
Contractual/known for this call or its transport |
lab_locked |
Contractual/known for this call or its transport |
lab_locked_mid_apply |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ExecProjectRequest, pack_lab
packed = pack_lab("./my-lab")
result = client.exec_project(ExecProjectRequest(**{**packed.payload, "action": "start"}))
exec_console
Signature
exec_console(
body: ExecConsoleRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ConsoleExecData
Description
POST /api/v1/console/exec. operationId execConsole. Timeout 15000ms.
- HTTP:
POST /api/v1/console/exec
- operationId:
execConsole
- Authentication: Bearer token required
- Default timeout: 15000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
ExecConsoleRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: ExecConsoleRequest
ExecConsoleRequest is the same wire shape as ConsolePayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
manifest |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
command |
str |
no |
|
timeout_ms |
int |
no |
|
targets |
list[ConsoleTarget] |
no |
|
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ConsoleExecData
| Field |
Python type |
Required |
Semantics |
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
name |
str |
no |
|
console_type |
str |
no |
|
command |
str |
no |
|
output |
str |
no |
|
duration_ms |
int |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ExecConsoleRequest, pack_lab
packed = pack_lab("./my-lab")
data = client.exec_console(ExecConsoleRequest(**{**packed.payload, "node": "n_1", "command": "show version"}))
exec_console_many
Signature
exec_console_many(
body: ExecConsoleManyRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ConsoleExecManyData
Description
POST /api/v1/console/exec-many. operationId execConsoleMany. Timeout 15000ms.
- HTTP:
POST /api/v1/console/exec-many
- operationId:
execConsoleMany
- Authentication: Bearer token required
- Default timeout: 15000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
ExecConsoleManyRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Request schema: ExecConsoleManyRequest
ExecConsoleManyRequest is the same wire shape as ConsolePayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
manifest |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
command |
str |
no |
|
timeout_ms |
int |
no |
|
targets |
list[ConsoleTarget] |
no |
|
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ConsoleExecManyData
| Field |
Python type |
Required |
Semantics |
results |
list[Mapping[str, Any]] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
Example
from eveiac import ExecConsoleManyRequest, pack_lab
packed = pack_lab("./my-lab")
data = client.exec_console_many(ExecConsoleManyRequest(**packed.payload))
attach_console
Signature
attach_console(
body: AttachConsoleRequest | Mapping[str, Any],
timeout_ms: int | None = None
) -> ConsoleAttachData
Description
POST /api/v1/console/attach. operationId attachConsole. Timeout 30000ms.
- HTTP:
POST /api/v1/console/attach
- operationId:
attachConsole
- Authentication: Bearer token required
- Default timeout: 30000 ms
Parameters
| Parameter |
Type |
Required |
Description |
body |
AttachConsoleRequest |
yes |
Request body. |
timeout_ms |
int \| None |
no |
Override the 30000 ms default. |
Request schema: AttachConsoleRequest
AttachConsoleRequest is the same wire shape as ConsolePayload.
| Field |
Python type |
Required |
Semantics |
lab |
str |
no |
|
yaml |
str |
no |
|
files |
dict[str, str] |
no |
|
state |
Any |
no |
|
manifest |
str |
no |
|
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
command |
str |
no |
|
timeout_ms |
int |
no |
|
targets |
list[ConsoleTarget] |
no |
|
dir |
str |
no |
Rejected when non-empty. |
out |
str |
no |
Rejected when non-empty. |
Returns
ConsoleAttachData
| Field |
Python type |
Required |
Semantics |
node |
str |
no |
omitted: all nodes. empty string: all nodes. named: that IaC node key |
name |
str |
no |
|
console_type |
str |
no |
|
stream |
str |
no |
|
transport |
Literal["eve-telnet"] |
no |
|
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
browser_token_invalid |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
Example
from eveiac import AttachConsoleRequest, pack_lab
packed = pack_lab("./my-lab")
attached = client.attach_console(AttachConsoleRequest(**{**packed.payload, "node": "n_1"}))
stream_console
Signature
stream_console(
ticket: str,
timeout_ms: int | None = None
) -> Any
Description
GET /api/v1/console/stream/{ticket}. operationId streamConsole. Timeout 15000ms. Success is 101 Switching Protocols, not a JSON envelope.
- HTTP:
GET /api/v1/console/stream/{ticket}
- operationId:
streamConsole
- Authentication: Bearer token required
- Default timeout: 15000 ms
- Success is HTTP 101 Switching Protocols, not a JSON envelope
Parameters
| Parameter |
Type |
Required |
Description |
ticket |
str |
yes |
Path parameter |
timeout_ms |
int \| None |
no |
Override the 15000 ms default. |
Returns
Transport upgrade object (socket). Not a JSON model.
Errors
JSON failures become AgentError with message, status, code, and optional data. The error string is diagnostic only; key off code and HTTP status.
| code |
When |
unauthenticated |
Contractual/known for this call or its transport |
expired_agent_session |
Contractual/known for this call or its transport |
expired_eve_session |
Contractual/known for this call or its transport |
browser_token_invalid |
Contractual/known for this call or its transport |
tls_required |
Contractual/known for this call or its transport |
tls_untrusted |
Contractual/known for this call or its transport |
tls_pin_mismatch |
Contractual/known for this call or its transport |
Example
sock = client.stream_console(ticket)