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()

Templates / Metadata

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()

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)