Go API reference

Generated from eve-iac OpenAPI/semantics. Do not edit manually.

Public methods on *eveiac.Client. Module path: github.com/eve-iac/eve-iac/sdk/go/eveiac.

Pointer semantics:

  • nil pointer = omitted on the wire
  • eveiac.Ptr(false) = explicit false
  • eveiac.Ptr(0) = explicit zero
  • Typed structs may not represent every explicit-null case; Client.Do is the escape hatch

timeoutMs ...int overrides the operation timeout when a value is passed.

Every method takes context.Context. Cancel the context to abort the HTTP call.

Connection / Authentication

GetHealth

Signature

func (c *Client) GetHealth(ctx context.Context, timeoutMs ...int) (*HealthData, error)

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
timeoutMs ...int no Override the 15000 ms default.

Returns

HealthData

Field Go type Required Semantics
status (Status) *string no
tls (Tls) *bool no
version (Version) *string 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, err := client.GetHealth(ctx)
if err != nil {
    return err
}
_ = health

Login

Signature

func (c *Client) Login(ctx context.Context, body LoginRequest, timeoutMs ...int) (*LoginData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: LoginRequest

This request type is the same wire shape as LoginRequest.

Field Go type Required Semantics
username (Username) string yes
password (Password) string yes

Returns

LoginData

Field Go type Required Semantics
token (Token) *string no
username (Username) *string 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

session, err := client.Login(ctx, eveiac.LoginRequest{Username: "admin", Password: "secret"})
if err != nil {
    return err
}
token := ""
if session.Token != nil {
    token = *session.Token
}
client, err = eveiac.NewClient(eveiac.Config{URL: url, Token: token, CAPEM: caPEM})

Logout

Signature

func (c *Client) Logout(ctx context.Context, body LogoutRequest, timeoutMs ...int) (*StatusOkData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: LogoutRequest

This request type is the same wire shape as LogoutRequest.

No object fields (see type).

Returns

StatusOkData

Field Go type Required Semantics
status (Status) *string 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

_, err := client.Logout(ctx, eveiac.LogoutRequest{})

GetSession

Signature

func (c *Client) GetSession(ctx context.Context, timeoutMs ...int) (*SessionData, error)

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
timeoutMs ...int no Override the 15000 ms default.

Returns

SessionData

Field Go type Required Semantics
username (Username) *string 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, err := client.GetSession(ctx)

GetCapabilities

Signature

func (c *Client) GetCapabilities(ctx context.Context, timeoutMs ...int) (*CapabilitiesData, error)

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
timeoutMs ...int no Override the 15000 ms default.

Returns

CapabilitiesData

Field Go type Required Semantics
eveReachable (EveReachable) *bool no
eveBaseUrl (EveBaseUrl) *string no
features (Features) map[string]bool no
projectModes (ProjectModes) map[string]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

result, err := client.GetCapabilities(ctx)

Templates / Metadata

ListTemplates

Signature

func (c *Client) ListTemplates(ctx context.Context, query *ListTemplatesQuery, timeoutMs ...int) (*TemplatesData, error)

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) no Query object. Omit the argument to send no query string.
timeoutMs ...int no Override the 15000 ms default.

Query schema: ListTemplatesQuery

Field Go type Required Semantics
provisioned (Provisioned) *string no Only the string true filters to provisioned templates. Omitted means all.

Returns

TemplatesData

Field Go type Required Semantics
templates (Templates) []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

all, err := client.ListTemplates(ctx, nil)
listed, err := client.ListTemplates(ctx, &eveiac.ListTemplatesQuery{Provisioned: eveiac.Ptr("true")})

GetTemplate

Signature

func (c *Client) GetTemplate(ctx context.Context, id string, timeoutMs ...int) (*TemplateDetail, error)

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 string yes Path parameter
timeoutMs ...int no Override the 15000 ms default.

Returns

TemplateDetail

Field Go type Required Semantics
id (ID) *string no
description (Description) *string no
type (Type) *string no
provisioned (Provisioned) *bool no
configSupported (ConfigSupported) *bool no
images (Images) []TemplateImage no
default (Default) *string no
attributes (Attributes) []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, err := client.GetTemplate(ctx, "iol")

ListTemplateImages

Signature

func (c *Client) ListTemplateImages(ctx context.Context, id string, timeoutMs ...int) (*TemplateImagesData, error)

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 string yes Path parameter
timeoutMs ...int no Override the 15000 ms default.

Returns

TemplateImagesData

Field Go type Required Semantics
template (Template) *string no
type (Type) *string no
provisioned (Provisioned) *bool no
default (Default) *string no
images (Images) []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, err := client.ListTemplateImages(ctx, "iol")

ListTemplateAttributes

Signature

func (c *Client) ListTemplateAttributes(ctx context.Context, id string, timeoutMs ...int) (*TemplateAttributesData, error)

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 string yes Path parameter
timeoutMs ...int no Override the 15000 ms default.

Returns

TemplateAttributesData

Field Go type Required Semantics
template (Template) *string no
type (Type) *string no
attributes (Attributes) []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, err := client.ListTemplateAttributes(ctx, "iol")

ListNetworkTypes

Signature

func (c *Client) ListNetworkTypes(ctx context.Context, timeoutMs ...int) (*NetworkTypesData, error)

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
timeoutMs ...int no Override the 15000 ms default.

Returns

NetworkTypesData

Field Go type Required Semantics
types (Types) []NetworkType no
natOnly (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, err := client.ListNetworkTypes(ctx)

ListIcons

Signature

func (c *Client) ListIcons(ctx context.Context, timeoutMs ...int) (*IconsData, error)

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
timeoutMs ...int no Override the 15000 ms default.

Returns

IconsData

Field Go type Required Semantics
icons (Icons) []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, err := client.ListIcons(ctx)

CompleteLinkInterfaces

Signature

func (c *Client) CompleteLinkInterfaces(ctx context.Context, body CompleteLinkInterfacesRequest, timeoutMs ...int) (*LinkCompletionsData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: CompleteLinkInterfacesRequest

This request type is the same wire shape as AuthoringPayload.

Field Go type Required Semantics
dir (Dir) *string no Rejected when non-empty.
yaml (YAML) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
template (Template) *string no
attributes (Attributes) map[string]any no
excludeUsed (ExcludeUsed) *bool no
eth_format (EthFormat) *string no

Returns

LinkCompletionsData

Field Go type Required Semantics
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
items (Items) []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

data, err := client.CompleteLinkInterfaces(ctx, eveiac.CompleteLinkInterfacesRequest{Template: eveiac.Ptr("iol")})

PreviewInterfaces

Signature

func (c *Client) PreviewInterfaces(ctx context.Context, body PreviewInterfacesRequest, timeoutMs ...int) (*InterfacesPreviewData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: PreviewInterfacesRequest

This request type is the same wire shape as AuthoringPayload.

Field Go type Required Semantics
dir (Dir) *string no Rejected when non-empty.
yaml (YAML) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
template (Template) *string no
attributes (Attributes) map[string]any no
excludeUsed (ExcludeUsed) *bool no
eth_format (EthFormat) *string no

Returns

InterfacesPreviewData

Field Go type Required Semantics
items (Items) []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

data, err := client.PreviewInterfaces(ctx, eveiac.PreviewInterfacesRequest{Template: eveiac.Ptr("iol")})

Projects

ValidateProject

Signature

func (c *Client) ValidateProject(ctx context.Context, body ValidateProjectRequest, timeoutMs ...int) (*ValidateData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: ValidateProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ValidateData

Field Go type Required Semantics
status (Status) string 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

result, err := client.ValidateProject(ctx, eveiac.ValidateProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

ImportProject

Signature

func (c *Client) ImportProject(ctx context.Context, body ImportProjectRequest, timeoutMs ...int) (*ImportData, error)

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.
timeoutMs ...int 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 Go type Required Semantics
lab (Lab) string yes
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ImportData

Field Go type Required Semantics
name (Name) *string no
yaml (YAML) *string no
files (Files) map[string]string no
mode (Mode) *string no
source_lab (SourceLab) *string no
managed_lab (ManagedLab) *string no
lab (Lab) *string no
state (State) any no
source (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

imported, err := client.ImportProject(ctx, eveiac.ImportProjectRequest{
    Lab:      "/IaC/example.unl",
    Manifest: eveiac.Ptr(manifest),
    YAML:     eveiac.Ptr(yaml),
    Files:    files,
})
// Import clones source_lab. It is not reconcile from_eve.

PlanProject

Signature

func (c *Client) PlanProject(ctx context.Context, body PlanProjectRequest, timeoutMs ...int) (*PlanData, error)

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.
timeoutMs ...int no Override the 180000 ms default.

Request schema: PlanProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

PlanData

Field Go type Required Semantics
lab (Lab) *string no
exists (Exists) *bool no
summary (Summary) *PlanSummary no
operations (Operations) []PlanAction no
actions (Actions) []PlanAction no
applicable (Applicable) *bool no
blocked (Blocked) []PlanAction no
text (Text) *string no
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
locked (Locked) *bool no
lock (Lock) *int no
direction (Direction) *string no omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import
unsupported (Unsupported) []string 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

result, err := client.PlanProject(ctx, eveiac.PlanProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

DeployProject

Signature

func (c *Client) DeployProject(ctx context.Context, body DeployProjectRequest, timeoutMs ...int) (*DeployData, error)

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.
timeoutMs ...int no Override the 300000 ms default.

Request schema: DeployProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

DeployData

Field Go type Required Semantics
lab (Lab) *string no
nodes (Nodes) *int no
links (Links) *int no
state (State) any no
unsupported (Unsupported) []string 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

result, err := client.DeployProject(ctx, eveiac.DeployProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

ReconcileProject

Signature

func (c *Client) ReconcileProject(ctx context.Context, body ReconcileProjectRequest, timeoutMs ...int) (*ReconcileData, error)

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.
timeoutMs ...int no Override the 300000 ms default.

Request schema: ReconcileProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ReconcileData

Field Go type Required Semantics
lab (Lab) *string no
applied (Applied) *int no
skippedPrune (SkippedPrune) *int no
fullDeploy (FullDeploy) *bool no
applicable (Applicable) *bool no
summary (Summary) *PlanSummary no
operations (Operations) []PlanAction no
blocked (Blocked) []PlanAction no
direction (Direction) *string no omitted: resolves to to_eve. empty string: resolves to to_eve. from_eve is not Import
state (State) any no
yaml (YAML) *string no
files (Files) map[string]string no
source (Source) any no
manifest (Manifest) *string 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

result, err := client.ReconcileProject(ctx, eveiac.ReconcileProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

DestroyProject

Signature

func (c *Client) DestroyProject(ctx context.Context, body DestroyProjectRequest, timeoutMs ...int) (*DestroyData, error)

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.
timeoutMs ...int no Override the 180000 ms default.

Request schema: DestroyProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

DestroyData

Field Go type Required Semantics
lab (Lab) *string 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

result, err := client.DestroyProject(ctx, eveiac.DestroyProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

GetProjectStatus

Signature

func (c *Client) GetProjectStatus(ctx context.Context, body GetProjectStatusRequest, timeoutMs ...int) (*ProjectStatusData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: GetProjectStatusRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ProjectStatusData

Field Go type Required Semantics
mode (Mode) *string no
source_lab (SourceLab) *string no
managed_lab (ManagedLab) *string no
runtime_lab (RuntimeLab) *string no
capabilities (Capabilities) *ProjectModeCaps no
locked (Locked) *bool no
lock (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

result, err := client.GetProjectStatus(ctx, eveiac.GetProjectStatusRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

InspectProject

Signature

func (c *Client) InspectProject(ctx context.Context, body InspectProjectRequest, timeoutMs ...int) (*InspectionData, error)

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.
timeoutMs ...int no Override the 120000 ms default.

Request schema: InspectProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

InspectionData

Field Go type Required Semantics
observation (Observation) *bool no
desired_state (DesiredState) *bool no
mode (Mode) *string no
source_lab (SourceLab) any no
managed_lab (ManagedLab) any no
runtime_lab (RuntimeLab) *string no
capabilities (Capabilities) *ProjectModeCaps no
cached (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

result, err := client.InspectProject(ctx, eveiac.InspectProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

OpenProject

Signature

func (c *Client) OpenProject(ctx context.Context, body OpenProjectRequest, timeoutMs ...int) (*OpenData, error)

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.
timeoutMs ...int no Override the 30000 ms default.

Request schema: OpenProjectRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

OpenData

Field Go type Required Semantics
url (URL) *string no
ttl (TTL) *int no
lab (Lab) *string 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, err := client.OpenProject(ctx, eveiac.OpenProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

Execution / Consoles

ListProjectConsoles

Signature

func (c *Client) ListProjectConsoles(ctx context.Context, body ListProjectConsolesRequest, timeoutMs ...int) (*ConsolesData, error)

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.
timeoutMs ...int no Override the 30000 ms default.

Request schema: ListProjectConsolesRequest

This request type is the same wire shape as ProjectPayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ConsolesData

Field Go type Required Semantics
lab (Lab) *string no
html5 (Html5) *bool no
consoles (Consoles) []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

result, err := client.ListProjectConsoles(ctx, eveiac.ListProjectConsolesRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files})

ExecProject

Signature

func (c *Client) ExecProject(ctx context.Context, body ExecProjectRequest, timeoutMs ...int) (*BulkResult, error)

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.
timeoutMs ...int no Override the 180000 ms default.

Request schema: ExecProjectRequest

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
source (Source) any no
manifest (Manifest) *string no
prune (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 (Wipe) *bool no explicit false: destroy lab without wiping nodes. omitted on destroy: server pointer nil means wipe nodes (true)
action (Action) string yes
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
id (ID) *int no
stopmode (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 (Refresh) *bool no omitted: Go bool zero = false; inspect may use the session cache. explicit true: bypass inspect cache
replace (Replace) *bool no omitted: Go bool zero = false; existing managed lab returns 409 lab_exists. explicit true: stop/wipe/delete then recreate
plan_identity (PlanIdentity) *string no omitted: recompute the live plan. present: opaque token from the last plan of the same direction
direction (Direction) *string 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 (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

BulkResult

Field Go type Required Semantics
requested (Requested) int yes
started (Started) int yes
already_running (AlreadyRunning) int yes
already_starting (AlreadyStarting) int yes
stopped (Stopped) int yes
already_stopped (AlreadyStopped) int yes
wiped (Wiped) int yes
failed (Failed) int yes
invalid (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

result, err := client.ExecProject(ctx, eveiac.ExecProjectRequest{Lab: eveiac.Ptr(lab), Manifest: eveiac.Ptr(manifest), YAML: eveiac.Ptr(yaml), Files: files, Action: "start"})

ExecConsole

Signature

func (c *Client) ExecConsole(ctx context.Context, body ExecConsoleRequest, timeoutMs ...int) (*ConsoleExecData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: ExecConsoleRequest

This request type is the same wire shape as ConsolePayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
manifest (Manifest) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
command (Command) *string no
timeout_ms (TimeoutMs) *int no
targets (Targets) []ConsoleTarget no
dir (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ConsoleExecData

Field Go type Required Semantics
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
name (Name) *string no
console_type (ConsoleType) *string no
command (Command) *string no
output (Output) *string no
duration_ms (DurationMs) *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

data, err := client.ExecConsole(ctx, eveiac.ExecConsoleRequest{Lab: eveiac.Ptr(lab), Node: eveiac.Ptr("n_1"), Command: eveiac.Ptr("show version")})

ExecConsoleMany

Signature

func (c *Client) ExecConsoleMany(ctx context.Context, body ExecConsoleManyRequest, timeoutMs ...int) (*ConsoleExecManyData, error)

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.
timeoutMs ...int no Override the 15000 ms default.

Request schema: ExecConsoleManyRequest

This request type is the same wire shape as ConsolePayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
manifest (Manifest) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
command (Command) *string no
timeout_ms (TimeoutMs) *int no
targets (Targets) []ConsoleTarget no
dir (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ConsoleExecManyData

Field Go type Required Semantics
results (Results) []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

data, err := client.ExecConsoleMany(ctx, eveiac.ExecConsoleManyRequest{Lab: eveiac.Ptr(lab)})

AttachConsole

Signature

func (c *Client) AttachConsole(ctx context.Context, body AttachConsoleRequest, timeoutMs ...int) (*ConsoleAttachData, error)

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.
timeoutMs ...int no Override the 30000 ms default.

Request schema: AttachConsoleRequest

This request type is the same wire shape as ConsolePayload.

Field Go type Required Semantics
lab (Lab) *string no
yaml (YAML) *string no
files (Files) map[string]string no
state (State) any no
manifest (Manifest) *string no
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
command (Command) *string no
timeout_ms (TimeoutMs) *int no
targets (Targets) []ConsoleTarget no
dir (Dir) *string no Rejected when non-empty.
out (Out) *string no Rejected when non-empty.

Returns

ConsoleAttachData

Field Go type Required Semantics
node (Node) *string no omitted: all nodes. empty string: all nodes. named: that IaC node key
name (Name) *string no
console_type (ConsoleType) *string no
stream (Stream) *string no
transport (Transport) *string 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

attached, err := client.AttachConsole(ctx, eveiac.AttachConsoleRequest{Lab: eveiac.Ptr(lab), Node: eveiac.Ptr("n_1")})

StreamConsole

Signature

func (c *Client) StreamConsole(ctx context.Context, ticket string, timeoutMs ...int) (net.Conn, error)

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 string yes Path parameter
timeoutMs ...int no Override the 15000 ms default.

Returns

net.Conn — upgraded telnet byte stream.

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

conn, err := client.StreamConsole(ctx, ticket)