Releases: stackitcloud/stackit-sdk-go
Release (2024-02-27)
Highlights
core
: v0.10.0- Feature: Add package
runtime
, which implements methods to be used when performing API requests. - Feature: Add method
WithCaptureHTTPResponse
to packageruntime
, which does the same asconfig.WithCaptureHTTPResponse
. Method was moved to avoid confusion due to it not being a configuration option, and will be removed in a later release. - Feature: Add configuration option that, for the key flow, enables a goroutine to be spawned that will refresh the access token when it's close to expiring
- Deprecation: Mark method
config.WithCaptureHTTPResponse
as deprecated, to avoid confusion due to it not being a configuration option. Useruntime.WithCaptureHTTPResponse
instead. - Deprecation: Mark method
config.WithJWKSEndpoint
and fieldconfig.Configuration.JWKSCustomUrl
as deprecated. Validation using JWKS was removed, for being redundant with token validation done in the APIs. These have no effect. - Deprecation:
- Methods:
config.WithMaxRetries
config.WithWaitBetweenCalls
config.WithRetryTimeout
clients.NewRetryConfig
- Fields:
clients.KeyFlowConfig.ClientRetry
clients.TokenFlowConfig.ClientRetry
clients.NoAuthFlowConfig.ClientRetry
clients.RetryConfig
- Retry options removed to reduce complexity of the clients. If this functionality is needed, you can provide your own custom HTTP client.
- Methods:
- Breaking Change: Change signature of
auth.NoAuth
, which no longer takesclients.RetryConfig
as argument. - Breaking Change:
- Methods:
clients.KeyFlow.Clone
clients.TokenFlow.Clone
clients.NoAuthFlow.Clone
clients.Do
- Fields:
clients.DefaultRetryMaxRetries
clients.DefaultRetryWaitBetweenCalls
clients.DefaultRetryTimeout
- Constants:
clients.ClientTimeoutErr
clients.ClientContextDeadlineErr
clients.ClientConnectionRefusedErr
clients.ClientEOFError
clients.Environment
- Removed to reduce complexity of the clients, they were no longer being used.
- Methods:
- Feature: Add package
What's Changed
- Replace membership example with authentication by @hcsa73 in #320
- Update module golang.org/x/oauth2 to v0.17.0 by @stackit-pipeline in #321
- Add LICENSE to root by @vicentepinto98 in #322
- Update GitHub actions by @joaopalet in #323
- Move
WithCaptureHTTPResponse
by @hcsa73 in #324 - Deprecate
config.WithCaptureHTTPResponse
by @hcsa73 in #325 - Update module github.com/stackitcloud/stackit-sdk-go/core to v0.8.0 by @stackit-pipeline in #326
- Remove token validation using JWKS in KeyFlow by @hcsa73 in #328
- Remove Key Flow unused methods by @hcsa73 in #327
- Undo removal of
JWKSCustomUrl
field by @hcsa73 in #330 - Remove golang.org/x/oauth2 core dependency by @joaopalet in #329
- Release 2024-02-19 by @hcsa73 in #331
- Update module github.com/stackitcloud/stackit-sdk-go/core to v0.9.0 by @stackit-pipeline in #332
- Add token refresh in background by @hcsa73 in #333
- Fix key flow bugs by @hcsa73 in #334
- Add example for background token refresh by @hcsa73 in #336
- Automatic tag helper script by @vicentepinto98 in #335
- Bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 in /scripts by @dependabot in #338
- Update module golang.org/x/mod to v0.15.0 by @stackit-pipeline in #340
- Read password from terminal in automatic tag script by @vicentepinto98 in #339
- Remove backoff dependency and deprecate RetryOptions by @vicentepinto98 in #337
- Ask for confirmation in automatic script tags by @vicentepinto98 in #341
New Contributors
- @dependabot made their first contribution in #338
Full Changelog: release-2024-02-07...release-2024-02-27
Release (2024-02-07)
Warning
The membership
module has been replaced with the authorization
module, which connects to the same API.
This module will receive no further updates. Use github.com/stackitcloud/stackit-sdk-go/services/authorization
instead.
Highlights
Release (2024-02-06)
Warning
The STACKIT PostgreSQL service will reach its end of support on June 30th 2024. All calls done to the API after that will stop working.
Use github.com/stackitcloud/stackit-sdk-go/services/postgresflex
instead. For more details, check https://docs.stackit.cloud/stackit/en/bring-your-data-to-stackit-postgresql-flex-138347648.html.
Highlights
postgresql
: v0.12.0- Add deprecation note
ske
: v0.10.0- Feature: New endpoints for credentials rotation.
StartCredentialsRotation
CompleteCredentialsRotation
CreateKubeconfig
- These endpoints replace
GetCredentials
andTriggerRotateCredentials
, which are deprecated and will not work for clusters with Kubernetes v1.27+, or if the new endpoints for kubeconfig or credentials rotation have already been used. For more information, see How to rotate SKE credentials.
- Feature: New endpoints for credentials rotation.
Release (2024-02-05)
Highlights
logme
: v0.10.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
mariadb
: v0.10.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
opensearch
: v0.10.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
postgresflex
: v0.9.0- Feature: New API method
UpdateUser
to update user - Feature: New API method
PartialUpdateUser
to patch update user - Feature: New API method
ResetUser
to reset a user's password
- Feature: New API method
postgresql
: v0.11.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
rabbitmq
: v0.10.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
redis
: v0.10.0- Feature:
Instance
has a new fieldOfferingName
- Feature:
Release (2024-01-24)
Highlights
loadbalancer
: v0.9.0- Feature: Server Name Indicator (SNI) support
- Feature: Layer 4 Session Persistance
Release (2024-01-09)
Highlights
core
: v0.7.5- Improvement: When using the key flow, the SDK will extract the private key from the service account key and use it, if no private key is provided in the configuration, through environment variable or in the credentials file. This makes it simpler to use the key flow: if you create a service account key including the private key, you don't need to provide the private key separately anymore
dns
: v0.8.0- Feature:
Zone
has a new filedLabels
, which is an array of labels (key-value pairs) associated to a zone - Feature:
ListZones
can be filtered by label keys or values - Feature:
CloneZonePayload
has a flagAdjustRecords
to adjust the record set content of the cloned zone (replaces the dns name of the original zone with the new dns name of the cloned zone)
- Feature:
logme
: v0.9.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
mariadb
: v0.9.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
mongodbflex
: v0.10.0- Breaking Change: Added method
ListMetrics
(which accepts the desired metric:cpu
,database
,disk-iops
,disk-use
, orexec-time
) as an argument and replacesListCPUMetrics
,ListDatabaseStorageMetrics
,ListDiskIOPSMetrics
,ListDiskUsageMetrics
, andListExecutionTimesMetrics
, respectivelly - Breaking Change: Removes the previously deprecated method
GetStorage
, replaced byListStorages
- Breaking Change: Added method
opensearch
: v0.9.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
postgresql
: v0.10.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
rabbitmq
: v0.9.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
redis
: v0.9.0- Feature:
PartialUpdateInstance
can be used to update the instance's name - Feature:
InstanceParameters
has a new settingMaxDiskThreshold
- Feature:
ListMetricsResponse
has new fields regarding ephemeral disk
- Feature:
ske
: v0.9.0- Improvement: Add details on credentials for old clusters
- Feature:
ClusterStatus
now has a fieldCredentialsRotation
with credentials' details
Release (2023-12-22)
Highlights
mongodbflex
: v0.9.0- Added struct
ApiListStoragesRequest
, which will replaceApiGetStorageRequest
ApiGetStorageRequest
has been marked as deprecated, and will be removed in the next minor update
- Added method
ListStorages
, which will replaceGetStorage
GetStorage
has been marked as deprecated, and will be removed in the next minor update
- Added
CloneInstanceWaitHandler
, to wait forCloneInstance
async operation to be completed
- Added struct
Release (2023-12-20)
API methods, structs and waiters were renamed to have the same look and feel across all services and according to user feedback.
Most significant changes:
- Methods to get multiple instances of the same resource are now named
List[Resource Name]
- Methods to fully update a resource are now named
Update[Resource Name]
- Methods to update some fields of a resource are now named
PartialUpdate[Resource Name]
- Methods relative to API service enablement are now named
GetServiceStatus
,EnableService
andDisableService
- Several common terms, such as
ACL
andCredentials
, have been standardized - Structs only used in method responses are named
[Method Name]Response
- Waiters for a given method are now named
[Method name]WaitHandler
Highlights
Below is the list of changes for the API methods. For each service, you can check out the full changelog.
argus
: v0.8.0CreateCredential
renamed toCreateCredentials
CreateInstanceAlertConfigReceiver
renamed toCreateAlertConfigReceiver
DeleteCredential
renamed toDeleteCredentials
DeleteCredentialRemoteWriteConfig
renamed toDeleteCredentialsRemoteWriteConfig
DeleteInstanceAlertConfigReceiver
renamed toDeleteAlertConfigReceiver
DeleteInstanceAlertConfigRouteReceiver
renamed toDeleteAlertConfigRoute
GetCredential
renamed toGetCredentials
GetCredentialRemoteWriteConfig
renamed toGetCredentialsRemoteWriteConfig
GetCredentials
renamed toListCredentials
GetInstanceAcl
renamed toListACL
GetInstanceAlertConfigReceiver
renamed toGetAlertConfigReceiver
GetInstanceAlertConfigReceivers
renamed toListAlertConfigReceivers
GetInstanceAlertConfigRoutes
renamed toListAlertConfigRoute
GetInstanceAlertConfigs
renamed toGetAlertConfigs
GetInstanceGrafanaConfigs
renamed toGetGrafanaConfigs
GetInstances
renamed toListInstances
GetPlans
renamed toListPlans
GetScrapeConfigs
renamed toListScrapeConfigs
UpdateCredentialRemoteWriteConfig
renamed toUpdateCredentialsRemoteWriteConfig
UpdateInstanceAcl
renamed toUpdateACL
UpdateInstanceAlertConfigReceiver
renamed toUpdateAlertConfigReceiver
UpdateInstanceAlertConfigRouteReceiver
renamed toUpdateAlertConfigRoute
UpdateInstanceAlertConfigs
renamed toUpdateAlertConfigs
UpdateInstanceGrafanaConfigs
renamed toUpdateGrafanaConfigs
dns
: v0.7.0GetRecordSets
renamed toListRecordSets
GetZones
renamed toListZones
UpdateRecord
renamed toPartialUpdateRecord
UpdateRecordSet
renamed toPartialUpdateRecordSet
UpdateZone
renamed toPartialUpdateZone
loadbalancer
: v0.8.0DisableLoadBalancing
renamed toDisableService
EnableLoadBalancing
renamed toEnableService
GetProjectStatus
renamed toGetServiceStatus
logme
: v0.8.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
mariadb
: v0.8.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
membership
: v0.3.0DeleteMembers
renamed toRemoveMembers
GetMembers
renamed toListMembers
GetMemberships
renamed toListUserMemberships
GetPermissions
renamed toListPermissions
GetRoles
renamed toListRoles
UpdateMembers
renamed toAddMembers
mongodbflex
: v0.8.0DeleteProject
renamed toDisableService
GetBackups
renamed toListBackups
GetCPUMetrics
renamed toListCPUMetrics
GetDatabaseStorageMetrics
renamed toListDatabaseStorageMetrics
GetDiskIOPSMetrics
renamed toListDiskIOPSMetrics
GetDiskUsageMetrics
renamed toListDiskUsageMetrics
GetExecutionTimesMetrics
renamed toListExecutionTimesMetrics
GetFlavors
renamed toListFlavors
GetInstanceRestores
renamed toListRestoreJobs
GetInstances
renamed toListInstances
GetMemoryMetrics
renamed toListMemoryMetrics
GetUsers
renamed toListUsers
objectstorage
: v0.8.0CreateProject
renamed toEnableService
DeleteProject
renamed toDisableService
GetAccessKeys
renamed toListAccessKeys
GetBuckets
renamed toListBuckets
GetCredentialsGroups
renamed toListCredentialsGroups
GetProject
renamed toGetServiceStatus
opensearch
: v0.8.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
postgresflex
: v0.8.0GetBackups
renamed toListBackups
GetFlavors
renamed toListFlavors
GetInstances
renamed toListInstances
GetStorages
renamed toListStorages
GetUsers
renamed toListUsers
GetVersions
renamed toListVersions
UpdateInstance
renamed toPartialUpdateInstance
postgresql
: v0.9.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
rabbitmq
: v0.8.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
redis
: v0.8.0GetCredentialsIds
renamed toListCredentials
GetInstances
renamed toListInstances
GetOfferings
renamed toListOfferings
UpdateInstance
renamed toPartialUpdateInstance
resourcemanager
: v0.7.0GetProjects
renamed toListProjects
UpdateProject
renamed toPartialUpdateProject
secretsmanager
: v0.5.0CreateAcl
renamed toCreateACL
DeleteAcl
renamed toDeleteACL
GetAcl
renamed toGetACL
GetAcls
renamed toListACLs
GetInstances
renamed toListInstances
UpdateAcl
renamed toUpdateACL
serviceaccount
: v0.3.0GetAccessTokens
renamed toListAccessTokens
GetServiceAccountJWKS
renamed toGetJWKS
GetServiceAccountKeys
renamed toListServiceAccountKeys
GetServiceAccounts
renamed toListServiceAccounts
GetUsers
renamed toListUsers
UpdateServiceAccountKey
renamed toPartialUpdateServiceAccountKey
ske
: v0.8.0CreateProject
renamed toEnableService
DeleteProject
renamed toDisableService
GetClusters
renamed toListClusters
GetOptions
renamed toListProviderOptions
GetProject
renamed toGetServiceStatus
Release (2023-12-18)
This is the first GitHub release of the STACKIT Go SDK.
Highlights
List of modules:
core
: v0.7.3auth
: setup authentication, specifically using the service account key or token flows. Check our authentication exampleclients
: baseline http client implementations to support different use cases, such as the different authentication flowsconfig
: configuration for the SDK clients, such as custom endpoints, region and custom http client configuration. Check our configuration exampleoapierror
: open api error definition and handlingutils
: utilities, such as thePtr
method to return a pointer to a variable of any type, which can be useful for creating payloadswait
: functionality to wait until a specific async operation has finished. Check our waiter example
argus
: v0.7.0- Manage your STACKIT Argus resources:
Instance
,Credentials
,ScrapeConfig
,Acl
,Alertconfig
,GrafanaConfig
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateScrapeConfigWaitHandler
,DeleteScrapeConfigWaitHandler
- Usage example
- Manage your STACKIT Argus resources:
dns
: v0.6.0- Manage your STACKIT DNS resources:
Zones
,RecordSet
- Waiters for async operations:
CreateZoneWaitHandler
,UpdateZoneWaitHandler
,DeleteZoneWaitHandler
,CreateRecordSetWaitHandler
,UpdateRecordSetWaitHandler
,DeleteRecordSetWaitHandler
- Usage example
- Manage your STACKIT DNS resources:
loadbalancer
: v0.7.0- Manage your STACKIT Load Balancer resources:
LoadBalancer
,Credentials
- Waiters for async operations:
CreateLoadBalancerWaitHandler
,DeleteLoadBalancerWaitHandler
,EnableLoadBalancingWaitHandler
- Usage example
- Manage your STACKIT Load Balancer resources:
logme
: v0.7.0- Manage your STACKIT Logme resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT Logme resources:
mariadb
: v0.7.0- Manage your STACKIT MariaDB resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT MariaDB resources:
membership
: v0.2.0- Manage membership of your STACKIT resources
- Usage example
mongodbflex
: v0.7.0- Manage your STACKIT MongoDB Flex resources:
Instance
,Flavors
,Metrics
,User
,Storages
,Versions
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
- Usage example
- Manage your STACKIT MongoDB Flex resources:
objectstorage
: v0.7.0- Manage your STACKIT Object Storage resources:
Bucket
,AccessKey
,CredentialGroup
- Waiters for async operations:
CreateBucketWaitHandler
,DeleteBucketWaitHandler
- Usage example
- Manage your STACKIT Object Storage resources:
opensearch
: v0.7.0- Manage your STACKIT OpenSearch resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT OpenSearch resources:
postgresflex
: v0.7.0- Manage your STACKIT PostgreSQL Flex resources:
Instance
,Versions
,Flavors
,User
,Storages
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,DeleteUserWaitHandler
- Usage example
- Manage your STACKIT PostgreSQL Flex resources:
postgresql
: v0.8.0- Manage your STACKIT PostgreSQL resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT PostgreSQL resources:
rabbitmq
: v0.7.0- Manage your STACKIT RabbitMQ resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT RabbitMQ resources:
redis
: v0.7.0- Manage your STACKIT Redis resources:
Instance
,Credentials
,Offerings
- Waiters for async operations:
CreateInstanceWaitHandler
,UpdateInstanceWaitHandler
,DeleteInstanceWaitHandler
,CreateCredentialsWaitHandler
,DeleteCredentialsWaitHandler
- Usage example
- Manage your STACKIT Redis resources:
resourcemanager
: v0.6.0- Manage your STACKIT projects
- Waiters for async operations:
CreateProjectWaitHandler
,DeleteProjectWaitHandler
- Usage example
secretsmanager
: v0.4.0- Manage your STACKIT Secrets Manager resources:
Instance
,Acl
,User
- Usage example
- Manage your STACKIT Secrets Manager resources:
serviceaccount
: v0.2.0- Manage your STACKIT service accounts
- Usage example
ske
: v0.7.0- Manage your STACKIT Kubernetes Engine resources:
Project
,Cluster
,Credentials
,Options
- Waiters for async operations:
CreateOrUpdateClusterWaitHandler
,DeleteClusterWaitHandler
,CreateProjectWaitHandler
,DeleteProjectWaitHandler
,RotateCredentialsWaitHandler
- Usage example
- Manage your STACKIT Kubernetes Engine resources: