Go SDK

Module path (identity, enforced by packaging checks):

github.com/eve-iac/eve-iac/sdk/go

Import the client package:

github.com/eve-iac/eve-iac/sdk/go/eveiac

There is no public module proxy. Download the tarball (GitLab generic package, same file as the Release):

curl -fsSL -O https://gitlab.com/api/v4/projects/eve-ng-dev%2Feve-iac/packages/generic/eve-iac/0.9.0/eve-iac-sdk-go-0.9.0.tar.gz
tar xzf eve-iac-sdk-go-0.9.0.tar.gz
go mod edit -replace github.com/eve-iac/eve-iac/sdk/go=./eve-iac-sdk-go-0.9.0
go get github.com/eve-iac/eve-iac/sdk/go@v0.0.0

Do not change this repository's go.mod to a GitLab path. Details: Install packages.

Create a client

client, err := eveiac.NewClient(eveiac.Config{
    URL:       "https://eve.example:8787",
    Token:     "",
    CAPEM:     caPEM,
    TimeoutMs: 15000,
})

HTTPS is required. Pin CAPEM. NewClientWithTransport injects a fake transport in tests.

Pointers

  • nil pointer = omitted
  • 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 for a raw operationId + body

Every method takes context.Context. Optional timeoutMs ...int overrides the semantics timeout.

Responses

Methods return (*Model, error). CLI --json matches the success data object (not the HTTP envelope).

Documentation map

Two trees are merged at site build time:

Page Git source (hand-written) Git source (generated)
Getting started (this page) site/pages/developers/go/index.md —
Authentication site/pages/developers/go/authentication.md —
How-to — sdk/generated/site/developers/go/howto.md
Examples — sdk/generated/site/developers/go/examples.md
API reference — sdk/generated/site/developers/go/api.md
Models — sdk/generated/site/developers/go/models.md

Links below use relative names (examples.md, …). They work on eve-iac.io and in site/_stage/ after make site. In a checkout, Examples / API / Models are not under site/pages/developers/go/ — open the generated paths above (sdk/generated/site/developers/go/). Regenerate with make sdk-generate.

Next