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