diff --git a/examples/mongodbflex/mongodbflex.go b/examples/mongodbflex/mongodbflex.go index 9eb232740..7f7e01deb 100644 --- a/examples/mongodbflex/mongodbflex.go +++ b/examples/mongodbflex/mongodbflex.go @@ -27,7 +27,7 @@ func main() { // Get the MongoDB Flex instances for your project getInstancesResp, err := mongodbflexClient.ListInstances(context.Background(), projectId).Tag("tag").Execute() if err != nil { - fmt.Fprintf(os.Stderr, "Error when calling `GetInstances`: %v\n", err) + fmt.Fprintf(os.Stderr, "Error when calling `ListInstances`: %v\n", err) os.Exit(1) } items := *getInstancesResp.Items diff --git a/examples/postgresflex/postgresflex.go b/examples/postgresflex/postgresflex.go index c9ed559d0..609f441f1 100644 --- a/examples/postgresflex/postgresflex.go +++ b/examples/postgresflex/postgresflex.go @@ -26,7 +26,7 @@ func main() { // Get the postgresql instances for your project getInstancesResp, err := postgresflexClient.ListInstances(context.Background(), projectId).Execute() if err != nil { - fmt.Fprintf(os.Stderr, "Error when calling `GetInstances`: %v\n", err) + fmt.Fprintf(os.Stderr, "Error when calling `ListInstances`: %v\n", err) os.Exit(1) } items := *getInstancesResp.Items diff --git a/examples/sqlserverflex/go.mod b/examples/sqlserverflex/go.mod new file mode 100644 index 000000000..7e3c29b91 --- /dev/null +++ b/examples/sqlserverflex/go.mod @@ -0,0 +1,11 @@ +module github.com/stackitcloud/stackit-sdk-go/examples/sqlserverflex + +go 1.18 + +require github.com/stackitcloud/stackit-sdk-go/core v0.12.0 + +require ( + github.com/golang-jwt/jwt/v5 v5.2.1 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.2.0 +) diff --git a/examples/sqlserverflex/go.sum b/examples/sqlserverflex/go.sum new file mode 100644 index 000000000..f1be617ce --- /dev/null +++ b/examples/sqlserverflex/go.sum @@ -0,0 +1,9 @@ +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +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.12.0 h1:auIzUUNRuydKOScvpICP4MifGgvOajiDQd+ncGmBL0U= +github.com/stackitcloud/stackit-sdk-go/core v0.12.0/go.mod h1:mDX1mSTsB3mP+tNBGcFNx6gH1mGBN4T+dVt+lcw7nlw= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.2.0 h1:aIXxXx6u4+6C02MPb+hdItigeKeen7m+hEEG+Ej9sNs= +github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v0.2.0/go.mod h1:fQJOQMfasStZ8J9iGX0vTjyJoQtLqMXJ5Npb03QJk84= diff --git a/examples/sqlserverflex/sqlserverflex.go b/examples/sqlserverflex/sqlserverflex.go new file mode 100644 index 000000000..524453d9a --- /dev/null +++ b/examples/sqlserverflex/sqlserverflex.go @@ -0,0 +1,74 @@ +package main + +import ( + "context" + "fmt" + "os" + + "github.com/stackitcloud/stackit-sdk-go/core/config" + "github.com/stackitcloud/stackit-sdk-go/core/utils" + "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" + "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait" +) + +func main() { + // Specify the project ID + projectId := "PROJECT_ID" + + // Specify instance configuration options + flavorId := "FLAVOR_ID" + version := "VERSION" + + ctx := context.Background() + + // Create a new API client, that uses default authentication and configuration + sqlserverflexClient, err := sqlserverflex.NewAPIClient( + config.WithRegion("eu01"), + ) + if err != nil { + fmt.Fprintf(os.Stderr, "Creating API client: %v\n", err) + os.Exit(1) + } + + // Get the SQLServer Flex instances for your project + getInstancesResp, err := sqlserverflexClient.ListInstances(ctx, projectId).Execute() + if err != nil { + fmt.Fprintf(os.Stderr, "Error when calling `ListInstances`: %v\n", err) + os.Exit(1) + } + items := *getInstancesResp.Items + fmt.Printf("Number of instances: %v\n", len(items)) + + // Create an instance + createInstancePayload := sqlserverflex.CreateInstancePayload{ + Name: utils.Ptr("my-instance"), + FlavorId: utils.Ptr(flavorId), + Version: utils.Ptr(version), + } + instance, err := sqlserverflexClient.CreateInstance(ctx, projectId).CreateInstancePayload(createInstancePayload).Execute() + if err != nil { + fmt.Fprintf(os.Stderr, "Error creating SQL Server Flex instance: %v\n", err) + } + instanceId := *instance.Id + + _, err = wait.CreateInstanceWaitHandler(ctx, sqlserverflexClient, projectId, instanceId).WaitWithContext(ctx) + if err != nil { + fmt.Fprintf(os.Stderr, "Error when waiting for SQL Server Flex instance creation: %v\n", err) + } + + fmt.Printf("Created SQL Server Flex instance \"%s\".\n", instanceId) + + // Delete an instance + err = sqlserverflexClient.DeleteInstance(ctx, projectId, instanceId).Execute() + + if err != nil { + fmt.Fprintf(os.Stderr, "Error deleting SQL Server Flex instance: %v\n", err) + } + + _, err = wait.DeleteInstanceWaitHandler(ctx, sqlserverflexClient, projectId, instanceId).WaitWithContext(ctx) + if err != nil { + fmt.Fprintf(os.Stderr, "Error when waiting for SQL Server Flex instance deletion: %v\n", err) + } + + fmt.Printf("Deleted SQL Server Flex instance \"%s\".\n", instanceId) +} diff --git a/go.work b/go.work index 8d3e808b6..49d3244df 100644 --- a/go.work +++ b/go.work @@ -26,6 +26,7 @@ use ( ./examples/secretsmanager ./examples/serviceaccount ./examples/ske + ./examples/sqlserverflex ./examples/waiter ./scripts ./services/argus