Skip to content

Commit 416e73d

Browse files
authored
Add example usage for service enablement (#631)
* Add examples usage for service enablement * Add region configuration * get serviceId from ListServices reply
1 parent 3430cfa commit 416e73d

File tree

4 files changed

+92
-0
lines changed

4 files changed

+92
-0
lines changed

examples/serviceenablement/go.mod

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module github.com/stackitcloud/stackit-sdk-go/examples/serviceenablement
2+
3+
go 1.18
4+
5+
require (
6+
github.com/stackitcloud/stackit-sdk-go/core v0.12.0
7+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.2.0
8+
)
9+
10+
require (
11+
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
12+
github.com/google/uuid v1.6.0 // indirect
13+
)

examples/serviceenablement/go.sum

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
2+
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
3+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
4+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
5+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6+
github.com/stackitcloud/stackit-sdk-go/core v0.12.0 h1:auIzUUNRuydKOScvpICP4MifGgvOajiDQd+ncGmBL0U=
7+
github.com/stackitcloud/stackit-sdk-go/core v0.12.0/go.mod h1:mDX1mSTsB3mP+tNBGcFNx6gH1mGBN4T+dVt+lcw7nlw=
8+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.2.0 h1:HAEFciLgeCY+kIcGcb+/zFUF3zt3z326v6JCen6fSjs=
9+
github.com/stackitcloud/stackit-sdk-go/services/serviceenablement v0.2.0/go.mod h1:z6XdA+ndaWzcPW/P0QrUIcTXJzKlajxgGZ5+EwXNS+c=
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
8+
"github.com/stackitcloud/stackit-sdk-go/core/config"
9+
"github.com/stackitcloud/stackit-sdk-go/services/serviceenablement"
10+
"github.com/stackitcloud/stackit-sdk-go/services/serviceenablement/wait"
11+
)
12+
13+
func main() {
14+
// Specify the project ID
15+
projectId := "PROJECT_ID"
16+
17+
// Create a new API client, that uses default authentication and configuration
18+
client, err := serviceenablement.NewAPIClient(
19+
config.WithRegion("eu01"),
20+
)
21+
if err != nil {
22+
fmt.Fprintf(os.Stderr, "Creating API client: %v\n", err)
23+
os.Exit(1)
24+
}
25+
26+
// List Services
27+
listServicesResp, err := client.ListServiceStatusExecute(context.Background(), projectId)
28+
if err != nil {
29+
fmt.Fprintf(os.Stderr, "Error when calling `ListServices`: %v\n", err)
30+
} else {
31+
fmt.Printf("Number of services: %v\n", len(*listServicesResp.Items))
32+
}
33+
34+
// Get Service Id from the list of services
35+
serviceId := (*listServicesResp.Items)[0].ServiceId
36+
37+
getServiceStatusResp, err := client.GetServiceStatus(context.Background(), projectId, *serviceId).Execute()
38+
if err != nil {
39+
fmt.Fprintf(os.Stderr, "Error when calling `GetServiceStatus`: %v\n", err)
40+
} else {
41+
fmt.Printf("Service state: %s\n", *getServiceStatusResp.State)
42+
}
43+
44+
// Enable Service
45+
err = client.EnableService(context.Background(), projectId, *serviceId).Execute()
46+
if err != nil {
47+
fmt.Fprintf(os.Stderr, "Error when calling `EnableService`: %v\n", err)
48+
}
49+
// Wait for the service to be enabled
50+
status, err := wait.EnableServiceWaitHandler(context.Background(), client, projectId, *serviceId).WaitWithContext(context.Background())
51+
if err != nil {
52+
fmt.Fprintf(os.Stderr, "Error when waiting for service to be enabled: %v\n", err)
53+
} else {
54+
fmt.Printf("Service %q is now enabled\n", *status.ServiceId)
55+
}
56+
57+
// Disable Service
58+
err = client.DisableService(context.Background(), projectId, *serviceId).Execute()
59+
if err != nil {
60+
fmt.Fprintf(os.Stderr, "Error when calling `DisableService`: %v\n", err)
61+
}
62+
// Wait for the service to be disabled
63+
status, err = wait.DisableServiceWaitHandler(context.Background(), client, projectId, *serviceId).WaitWithContext(context.Background())
64+
if err != nil {
65+
fmt.Fprintf(os.Stderr, "Error when waiting for service to be disabled: %v\n", err)
66+
} else {
67+
fmt.Printf("Service %q is now disabled\n", *status.ServiceId)
68+
}
69+
}

go.work

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use (
2424
./examples/runtime
2525
./examples/secretsmanager
2626
./examples/serviceaccount
27+
./examples/serviceenablement
2728
./examples/ske
2829
./examples/sqlserverflex
2930
./examples/waiter

0 commit comments

Comments
 (0)