Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,10 +425,12 @@
- [v0.2.0](services/telemetryrouter/CHANGELOG.md#v020)
- **Feature:** Added `_UNKNOWN_DEFAULT_OPEN_API` fallback value to all enums to handle unknown API values gracefully.
- [v0.2.1](services/telemetryrouter/CHANGELOG.md#v021)
- **Improvement**: Use new `WaiterHandler` struct in the DNS WaitHandler
- **Improvement**: Use new `WaiterHandler` struct in the TelemetryRouter WaitHandler
- `telemetrylink`:
- [v0.1.0](services/telemetrylink/CHANGELOG.md#v010)
- **New**: API for STACKIT Telemetry Link
- [v0.1.1](services/telemetryrouter/CHANGELOG.md#v021)
- **Improvement**: Use new `WaiterHandler` struct in the TelemetryLink WaitHandler
- `vpn`:
- [v0.4.2](services/vpn/CHANGELOG.md#v042)
- **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1`
Expand Down
16 changes: 16 additions & 0 deletions examples/telemetrylink/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module github.com/stackitcloud/stackit-sdk-go/examples/telemetrylink

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/telemetrylink => ../../services/telemetrylink

require (
github.com/stackitcloud/stackit-sdk-go/core v0.26.0
github.com/stackitcloud/stackit-sdk-go/services/telemetrylink v0.1.0
)

require (
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
github.com/google/uuid v1.6.0 // indirect
)
8 changes: 8 additions & 0 deletions examples/telemetrylink/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=
311 changes: 311 additions & 0 deletions examples/telemetrylink/telemetrylink.go

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions go.work
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ use (
./examples/sfs
./examples/ske
./examples/sqlserverflex
./examples/telemetrylink
./examples/telemetryrouter
./examples/waiter
./services/alb
Expand Down
3 changes: 3 additions & 0 deletions services/telemetrylink/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
## v0.2.1
- **Improvement**: Use new `WaiterHandler` struct in the TelemetryLink WaitHandler

## v0.1.0
- **New**: API for STACKIT Telemetry Link
2 changes: 1 addition & 1 deletion services/telemetrylink/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.1.0
v0.1.1
5 changes: 4 additions & 1 deletion services/telemetrylink/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ module github.com/stackitcloud/stackit-sdk-go/services/telemetrylink

go 1.25

require github.com/stackitcloud/stackit-sdk-go/core v0.26.0
require (
github.com/google/go-cmp v0.7.0
github.com/stackitcloud/stackit-sdk-go/core v0.26.0
)

require (
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
Expand Down
177 changes: 177 additions & 0 deletions services/telemetrylink/v1betaapi/wait/wait.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
package wait

import (
"context"
"errors"
"net/http"
"time"

"github.com/stackitcloud/stackit-sdk-go/core/wait"
telemetrylink "github.com/stackitcloud/stackit-sdk-go/services/telemetrylink/v1betaapi"
)

const (
TELEMETRYLINK_ACTIVE = "active"
)

// CreateOrUpdateOrganizationTelemetryLinkWaitHandler will wait for organization TelemetryLink creation or update
func CreateOrUpdateOrganizationTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, organizationId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetOrganizationTelemetryLink(ctx, organizationId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// PartialUpdateOrganizationTelemetryLinkWaitHandler will wait for organization TelemetryLink partial update
func PartialUpdateOrganizationTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, organizationId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetOrganizationTelemetryLink(ctx, organizationId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// DeleteOrganizationTelemetryLinkWaitHandler will wait for organization TelemetryLink deletion
func DeleteOrganizationTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, organizationId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetOrganizationTelemetryLink(ctx, organizationId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
DeleteHttpErrorStatusCodes: []int{http.StatusNotFound},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// CreateOrUpdateFolderTelemetryLinkWaitHandler will wait for folder TelemetryLink creation or update
func CreateOrUpdateFolderTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, folderId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetFolderTelemetryLink(ctx, folderId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// PartialUpdateFolderTelemetryLinkWaitHandler will wait for folder TelemetryLink partial update
func PartialUpdateFolderTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, folderId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetFolderTelemetryLink(ctx, folderId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// DeleteFolderTelemetryLinkWaitHandler will wait for folder TelemetryLink deletion
func DeleteFolderTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, folderId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetFolderTelemetryLink(ctx, folderId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
DeleteHttpErrorStatusCodes: []int{http.StatusNotFound},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// CreateOrUpdateProjectTelemetryLinkWaitHandler will wait for project TelemetryLink creation or update
func CreateOrUpdateProjectTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, projectId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetProjectTelemetryLink(ctx, projectId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// PartialUpdateProjectTelemetryLinkWaitHandler will wait for project TelemetryLink partial update
func PartialUpdateProjectTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, projectId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetProjectTelemetryLink(ctx, projectId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
ActiveState: []string{TELEMETRYLINK_ACTIVE},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}

// DeleteProjectTelemetryLinkWaitHandler will wait for project TelemetryLink deletion
func DeleteProjectTelemetryLinkWaitHandler(ctx context.Context, a telemetrylink.DefaultAPI, projectId, region string) *wait.AsyncActionHandler[telemetrylink.TelemetryLinkResponse] {
waitConfig := wait.WaiterHelper[telemetrylink.TelemetryLinkResponse, string]{
FetchInstance: a.GetProjectTelemetryLink(ctx, projectId, region).Execute,
GetState: func(d *telemetrylink.TelemetryLinkResponse) (string, error) {
if d == nil {
return "", errors.New("empty response")
}
return d.Status, nil
},
DeleteHttpErrorStatusCodes: []int{http.StatusNotFound},
}

handler := wait.New(waitConfig.Wait())
handler.SetTimeout(10 * time.Minute)
return handler
}
Loading