Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,16 @@
## Release (2026-MM-DD)

- `mongodbflex`:
- [v1.11.0](services/mongodbflex/CHANGELOG.md#v1110)
- `v1api`:
- **Breaking change:** Introduce validators for `name`, `database` and `username`
- `v2api`:
- **Breaking change:** Introduce validators for `name`, `database` and `username`
- `postgresflex`:
- [v1.10.0](services/postgresflex/CHANGELOG.md#v1100)
- `v3alpha1api`: Align package to latest API specification

## Release (2026-06-18)
- `core`:
- [v0.25.0](core/CHANGELOG.md#v0250)
- Minimal go version is now Go 1.25
Expand Down Expand Up @@ -252,6 +264,14 @@
- `v1api`: **Improvement**: Use new `WaiterHandler` struct in the LogMe WaitHandler
- [v0.30.0](services/logme/CHANGELOG.md#v0300)
- **Feature:** Introduce enums for various attributes
- [v1.0.0](services/logme/CHANGELOG.md#v100)
- `v2api`:
- New package which can be used for communication with the logme v2 API
- **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- **Deprecation:** `FluentdTls`, `FluentdTlsCiphers`, `FluentdTlsMaxVersion`, `FluentdTlsMinVersion`, `FluentdTlsVersion`, `OpensearchTlsCiphers`, `OpensearchTlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-12.
- `v1api`:
- **Feature:** Added optional `CreateCredentialsPayload` to `ApiCreateCredentialsRequest`.
- **Deprecation:** `FluentdTls`, `FluentdTlsCiphers`, `FluentdTlsMaxVersion`, `FluentdTlsMinVersion`, `FluentdTlsVersion`, `OpensearchTlsCiphers`, `OpensearchTlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-12.
- `logs`:
- [v0.7.3](services/logs/CHANGELOG.md#v073)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand All @@ -278,9 +298,18 @@
- **Improvement:** Use new WaiterHelper for Logs waiters
- [v0.30.0](services/mariadb/CHANGELOG.md#v0300)
- **Feature:** Introduce enums for various attributes
- [v1.0.0](services/mariadb/CHANGELOG.md#v100)
- **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v2api`:
- New package which can be used for communication with the mariadb v2 API
- The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v1api`:
- **Feature:** Added optional `CreateCredentialsPayload` to `ApiCreateCredentialsRequest`.
- `modelexperiments`:
- [v0.1.0](services/modelexperiments/CHANGELOG.md#v010)
- **New**: API for STACKIT modelexperiments
- [v0.2.0](services/modelexperiments/CHANGELOG.md#v020)
- **New**: STACKIT Model Experiments module wait handler added.
- `modelserving`:
- [v0.8.3](services/modelserving/CHANGELOG.md#v083)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand Down Expand Up @@ -348,6 +377,14 @@
- **Improvement:** Use new WaiterHelper for opensearch waiters
- [v0.29.0](services/opensearch/CHANGELOG.md#v0290)
- **Feature:** Introduce enums for various attributes
- [v1.0.0](services/opensearch/CHANGELOG.md#v100)
- `v2api`:
- New package which can be used for communication with the opensearch v2 API
- **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- **Deprecation:** `TlsCiphers`, `TlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-12.
- `v1api`:
- **Feature:** Added optional `CreateCredentialsPayload` to `ApiCreateCredentialsRequest`.
- **Deprecation:** `TlsCiphers`, `TlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-12.
- `postgresflex`:
- [v1.6.3](services/postgresflex/CHANGELOG.md#v163)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand Down Expand Up @@ -376,6 +413,14 @@
- `v1api`: **Improvement**: Use new `WaiterHandler` struct in the RabbitMQ WaitHandler
- [v0.31.0](services/rabbitmq/CHANGELOG.md#v0310)
- **Feature:** Introduce enums for various attributes
- [v1.0.0](services/rabbitmq/CHANGELOG.md#v100)
- **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v2api`:
- New package which can be used for communication with the rabbitmq v2 API
- The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v1api`:
- **Feature:** Added optional `CreateCredentialsPayload` to `ApiCreateCredentialsRequest`.
- **Deprecation:** `Roles`, `TlsCiphers`, `TlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-11.
- `redis`:
- [v0.27.3](services/redis/CHANGELOG.md#v0273)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand All @@ -389,6 +434,14 @@
- **Feature:** Introduce enums for various attributes
- [v0.30.0](services/redis/CHANGELOG.md#v0300)
- `v1api`: **Improvement**: Use new `WaiterHandler` struct in the Redis WaitHandler
- [v1.0.0](services/redis/CHANGELOG.md#v100)
- **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v2api`:
- New package which can be used for communication with the redis v2 API
- The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request.
- `v1api`:
- **Feature:** Added optional `CreateCredentialsPayload` to `ApiCreateCredentialsRequest`.
- **Deprecation:** `TlsCiphers`, `TlsCiphersuites`, `TlsProtocols` from `InstanceParameters` model are deprecated and will be removed 2026-12-10.
- `resourcemanager`:
- [v0.21.2](services/resourcemanager/CHANGELOG.md#v0212)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand Down Expand Up @@ -549,6 +602,10 @@
- **Feature:** Introduce enums for various attributes
- [v1.17.0](services/ske/CHANGELOG.md#v1170)
- **Feature:** New field `ServiceAccountIssuer` for `ClusterStatus` model struct
- [v1.18.0](services/ske/CHANGELOG.md#v1180)
- `v2api`:
- **Improvement:** Use new WaiterHelper for ske waiters
- **Deprecation:** `CreateOrUpdateClusterWaitHandler` will be removed after 2026-12-08. Use the `CreateClusterWaitHandler` or `UpdateClusterWaitHandler` instead.
- `sqlserverflex`:
- [v1.6.3](services/sqlserverflex/CHANGELOG.md#v163)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand Down
14 changes: 14 additions & 0 deletions examples/modelexperiments/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module github.com/stackitcloud/stackit-sdk-go/examples/modelexperiments

go 1.25

// This is not needed in production. This is only here to point the golangci linter to the local version instead of the last release on GitHub.
replace github.com/stackitcloud/stackit-sdk-go/services/modelexperiments => ../../services/modelexperiments

require github.com/stackitcloud/stackit-sdk-go/services/modelexperiments v0.2.0

require (
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/stackitcloud/stackit-sdk-go/core v0.26.0 // indirect
)
8 changes: 8 additions & 0 deletions examples/modelexperiments/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/stackitcloud/stackit-sdk-go/core v0.26.0 h1:jQEb9gkehfp6VCP6TcYk7BI10cz4l0KM2L6hqYBH2QA=
github.com/stackitcloud/stackit-sdk-go/core v0.26.0/go.mod h1:WU1hhxnjXw2EV7CYa1nlEvNpMiRY6CvmIOaHuL3pOaA=
149 changes: 149 additions & 0 deletions examples/modelexperiments/modelexperiments.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
package main

import (
"context"
"log"

modelexperiments "github.com/stackitcloud/stackit-sdk-go/services/modelexperiments/v1api"
"github.com/stackitcloud/stackit-sdk-go/services/modelexperiments/v1api/wait"
)

func main() {
Comment thread
paul-sffrth marked this conversation as resolved.
projectId := "PROJECT_ID" // the uuid of your STACKIT project
region := "eu01"
instanceName := "instance"
newInstanceName := "newInstance"
newTokenName := "newTokenName"
description := "description"
ctx := context.Background()

modelexperimentsClient, err := modelexperiments.NewAPIClient()
if err != nil {
log.Fatalf("[Model Experiments] Creating API client: %v\n", err)
}

// Create a Model Experiments Instance
log.Printf("[Model Experiments] Creating Model Experiments Instance.\n")
createInstancePayload := modelexperiments.CreateInstancePayload{
Name: instanceName,
Description: &description,
}
createInstanceResp, err := modelexperimentsClient.DefaultAPI.CreateInstance(ctx, projectId, region).CreateInstancePayload(createInstancePayload).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `CreateInstance`: %v\n", err)
}
log.Printf("[Model Experiments] Triggered creation of Model Experiments Instance with ID: %q.\n", createInstanceResp.Instance.Id)

Comment thread
paul-sffrth marked this conversation as resolved.
// Wait for the Model Experiments Instance to be ready
log.Printf("[Model Experiments] Waiting for Model Experiments Instance to be created.\n")
_, err = wait.CreateInstanceWaitHandler(ctx, modelexperimentsClient.DefaultAPI, region, projectId, createInstanceResp.Instance.Id).WaitWithContext(ctx)
if err != nil {
log.Fatalf("[Model Experiments] Error when waiting for creation: %v\n", err)
}
log.Printf("[Model Experiments] Model Experiments Instance %q has been successfully created.\n", createInstanceResp.Instance.Id)

// Get the created Model Experiments Instance
log.Printf("[Model Experiments] Retrieving Model Experiments Instance.\n")
getInstanceResp, err := modelexperimentsClient.DefaultAPI.GetInstance(ctx, projectId, region, createInstanceResp.Instance.Id).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `GetInstance`: %v\n", err)
}
log.Printf("[Model Experiments] Retrieved Model Experiments Instance with ID: %q and display name: %q\n", getInstanceResp.Instance.Id, getInstanceResp.Instance.Name)

// List Model Experiments Instances
Comment thread
GokceGK marked this conversation as resolved.
log.Printf("[Model Experiments] Listing Model Experiments Instances.\n")
listInstanceResp, err := modelexperimentsClient.DefaultAPI.ListInstances(ctx, projectId, region).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `ListInstances`: %v\n", err)
}
log.Printf("[Model Experiments] Retrieved %d instances\n", len(listInstanceResp.Instances))

// Update a Model Experiments Instance
log.Printf("[Model Experiments] Updating Model Experiments Instance.\n")
partialUpdateInstancePayload := modelexperiments.PartialUpdateInstancePayload{
Name: &newInstanceName,
}
partialUpdateInstanceResp, err := modelexperimentsClient.DefaultAPI.PartialUpdateInstance(ctx, projectId, region, getInstanceResp.Instance.Id).PartialUpdateInstancePayload(partialUpdateInstancePayload).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `PartialUpdateInstance`: %v\n", err)
}
log.Printf("[Model Experiments] Updated Model Experiments Instance with ID: %q and display name: %q\n", partialUpdateInstanceResp.Instance.Id, partialUpdateInstanceResp.Instance.Name)

// Create a Model Experiments Instance Token
log.Printf("[Model Experiments] Creating Model Experiments Instance Token.\n")
createTokenPayload := modelexperiments.CreateInstanceTokenPayload{
Name: "token-name",
}
createTokenResp, err := modelexperimentsClient.DefaultAPI.CreateInstanceToken(ctx, projectId, region, createInstanceResp.Instance.Id).CreateInstanceTokenPayload(createTokenPayload).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `CreateToken`: %v\n", err)
}
log.Printf("[Model Experiments] Triggered creation of Model Experiments Instance Token: %+v\n", createTokenResp.Token)

// Wait for the Model Experiments Instance Token to be ready
log.Printf("[Model Experiments] Waiting for Model Experiments Instance Token to be created.\n")
_, err = wait.CreateInstanceTokenWaitHandler(ctx, modelexperimentsClient.DefaultAPI, region, projectId, getInstanceResp.Instance.Id, createTokenResp.Token.Id).WaitWithContext(ctx)
if err != nil {
log.Fatalf("[Model Experiments] Error when waiting for creation: %v\n", err)
}
log.Printf("[Model Experiments] Model Experiments Instance Token %q has been successfully created.\n", createTokenResp.Token.Id)

// Get the created Model Experiments Instance Token
log.Printf("[Model Experiments] Retrieving Model Experiments Instance Token.\n")
getTokenResp, err := modelexperimentsClient.DefaultAPI.GetInstanceToken(ctx, projectId, region, createTokenResp.Token.Id, getInstanceResp.Instance.Id).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `GetInstanceToken`: %v\n", err)
}
log.Printf("[Model Experiments] Retrieved Model Experiments Instance Token with ID: %q and display name: %q\n", getTokenResp.Token.Id, getTokenResp.Token.Name)

// List Model Experiments Instance Tokens
log.Printf("[Model Experiments] Listing Model Experiments Instance Tokens.\n")
listTokenResp, err := modelexperimentsClient.DefaultAPI.ListInstanceTokens(ctx, projectId, region, getInstanceResp.Instance.Id).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `ListInstanceTokens`: %v\n", err)
}
log.Printf("[Model Experiments] Retrieved %d Instance tokens\n", len(listTokenResp.Tokens))

// Update a Model Experiments Instance Token
log.Printf("[Model Experiments] Updating Model Experiments Instance Token.\n")
partialUpdateInstanceTokenPayload := modelexperiments.PartialUpdateInstanceTokenPayload{
Name: &newTokenName,
}
partialUpdateTokenResp, err := modelexperimentsClient.DefaultAPI.PartialUpdateInstanceToken(ctx, projectId, region, getTokenResp.Token.Id, getInstanceResp.Instance.Id).PartialUpdateInstanceTokenPayload(partialUpdateInstanceTokenPayload).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `PartialUpdateInstanceToken`: %v\n", err)
}
log.Printf("[Model Experiments] Updated Model Experiments Instance Token with ID: %q and display name: %q\n", partialUpdateTokenResp.Token.Id, partialUpdateTokenResp.Token.Name)

// Delete a Model Experiments Instance Token
log.Printf("[Model Experiments] Deleting Model Experiments Instance Token.\n")
deleteTokenResp, err := modelexperimentsClient.DefaultAPI.DeleteInstanceToken(ctx, projectId, region, getTokenResp.Token.Id, getInstanceResp.Instance.Id).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `DeleteInstanceToken`: %v\n", err)
}
log.Printf("[Model Experiments] Triggered deletion of Model Experiments Instance Token with ID: %q and display name: %q\n", deleteTokenResp.Token.Id, deleteTokenResp.Token.Name)

// Wait for the Model Experiments Instance Token to be deleted
log.Printf("[Model Experiments] Waiting for Model Experiments Instance Token to be deleted.\n")
_, err = wait.DeleteInstanceTokenWaitHandler(ctx, modelexperimentsClient.DefaultAPI, region, projectId, getInstanceResp.Instance.Id, deleteTokenResp.Token.Id).WaitWithContext(ctx)
if err != nil {
log.Fatalf("[Model Experiments] Error when waiting for deletion: %v\n", err)
}
log.Printf("[Model Experiments] Model Experiments Instance Token %q has been successfully deleted.\n", deleteTokenResp.Token.Id)

// Delete a Model Experiments Instance
log.Printf("[Model Experiments] Deleting Model Experiments Instance.\n")
deleteInstanceResp, err := modelexperimentsClient.DefaultAPI.DeleteInstance(ctx, projectId, region, getInstanceResp.Instance.Id).Execute()
if err != nil {
log.Fatalf("[Model Experiments] Error when calling `DeleteInstance`: %v\n", err)
}
log.Printf("[Model Experiments] Triggered deletion of Model Experiments Instance with ID: %q and display name: %q\n", deleteInstanceResp.Instance.Id, deleteInstanceResp.Instance.Name)

// Wait for the Model Experiments Instance to be deleted
log.Printf("[Model Experiments] Waiting for Model Experiments Instance to be deleted.\n")
_, err = wait.DeleteInstanceWaitHandler(ctx, modelexperimentsClient.DefaultAPI, region, projectId, getInstanceResp.Instance.Id).WaitWithContext(ctx)
if err != nil {
log.Fatalf("[Model Experiments] Error when waiting for deletion: %v\n", err)
}
log.Printf("[Model Experiments] Model Experiments Instance %q has been successfully deleted.\n", deleteInstanceResp.Instance.Id)
}
Comment thread
paul-sffrth marked this conversation as resolved.
2 changes: 1 addition & 1 deletion examples/ske/ske.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func main() {
}

// Wait for cluster creation to complete
_, err = wait.CreateOrUpdateClusterWaitHandler(context.Background(), skeClient.DefaultAPI, projectId, region, clusterName).WaitWithContext(context.Background())
_, err = wait.CreateClusterWaitHandler(context.Background(), skeClient.DefaultAPI, projectId, region, clusterName).WaitWithContext(context.Background())
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `CreateOrUpdateCluster`: %v\n", err)
} else {
Expand Down
1 change: 1 addition & 0 deletions go.work
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ use (
./examples/logs
./examples/mariadb
./examples/middleware
./examples/modelexperiments
./examples/mongodbflex
./examples/objectstorage
./examples/observability
Expand Down
Loading
Loading