From d806e714fae85758f7526194aa7fcdc8062402c8 Mon Sep 17 00:00:00 2001 From: Matthew Long Date: Tue, 21 Oct 2025 16:25:08 +0100 Subject: [PATCH 1/5] feat: auto minor version upgrade --- CHANGELOG.md | 4 ++++ service/databases/model.go | 7 +++++-- service/databases/model_active_active.go | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff6ebe5..7e24d01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. See updating [Changelog example here](https://keepachangelog.com/en/1.0.0/). +## 0.39.0 (21st October 2025) + +### Added: +* Added `AutoMinorVersionUpgrade` to Pro and Active Active models, for both upgrade and create endpoints. ## 0.38.0 (15th October 2025) diff --git a/service/databases/model.go b/service/databases/model.go index 33e0e93..0768f25 100644 --- a/service/databases/model.go +++ b/service/databases/model.go @@ -33,8 +33,9 @@ type CreateDatabase struct { EnableTls *bool `json:"enableTls,omitempty"` PortNumber *int `json:"port,omitempty"` RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` - QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` - RedisVersion *string `json:"redisVersion,omitempty"` + QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + RedisVersion *string `json:"redisVersion,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o CreateDatabase) String() string { @@ -82,6 +83,7 @@ type Database struct { Backup *Backup `json:"backup,omitempty"` QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` RedisVersion *string `json:"redisVersion,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o Database) String() string { @@ -178,6 +180,7 @@ type UpdateDatabase struct { RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` EnableDefaultUser *bool `json:"enableDefaultUser,omitempty"` QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o UpdateDatabase) String() string { diff --git a/service/databases/model_active_active.go b/service/databases/model_active_active.go index c425388..1535ddd 100644 --- a/service/databases/model_active_active.go +++ b/service/databases/model_active_active.go @@ -81,6 +81,7 @@ type CreateActiveActiveDatabase struct { PortNumber *int `json:"port,omitempty"` QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` RedisVersion *string `json:"redisVersion,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o CreateActiveActiveDatabase) String() string { @@ -115,6 +116,7 @@ type UpdateActiveActiveDatabase struct { Regions []*LocalRegionProperties `json:"regions,omitempty"` DataEvictionPolicy *string `json:"dataEvictionPolicy,omitempty"` QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o UpdateActiveActiveDatabase) String() string { From a52468c7cf83e57c5af2fe4d6c96bdd3a4906210 Mon Sep 17 00:00:00 2001 From: Matthew Long Date: Tue, 21 Oct 2025 17:06:23 +0100 Subject: [PATCH 2/5] chore: fmt --- service/databases/model.go | 94 +++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/service/databases/model.go b/service/databases/model.go index 0768f25..11f7fb4 100644 --- a/service/databases/model.go +++ b/service/databases/model.go @@ -23,19 +23,19 @@ type CreateDatabase struct { AverageItemSizeInBytes *int `json:"averageItemSizeInBytes,omitempty"` ReplicaOf []*string `json:"replicaOf,omitempty"` // Deprecated: Use RemoteBackup instead - PeriodicBackupPath *string `json:"periodicBackupPath,omitempty"` - SourceIP []*string `json:"sourceIp,omitempty"` - ClientSSLCertificate *string `json:"clientSslCertificate,omitempty"` - ClientTLSCertificates *[]*string `json:"clientTlsCertificates,omitempty"` - Password *string `json:"password,omitempty"` - Alerts []*Alert `json:"alerts,omitempty"` - Modules []*Module `json:"modules,omitempty"` - EnableTls *bool `json:"enableTls,omitempty"` - PortNumber *int `json:"port,omitempty"` - RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` - QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` - RedisVersion *string `json:"redisVersion,omitempty"` - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` + PeriodicBackupPath *string `json:"periodicBackupPath,omitempty"` + SourceIP []*string `json:"sourceIp,omitempty"` + ClientSSLCertificate *string `json:"clientSslCertificate,omitempty"` + ClientTLSCertificates *[]*string `json:"clientTlsCertificates,omitempty"` + Password *string `json:"password,omitempty"` + Alerts []*Alert `json:"alerts,omitempty"` + Modules []*Module `json:"modules,omitempty"` + EnableTls *bool `json:"enableTls,omitempty"` + PortNumber *int `json:"port,omitempty"` + RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` + QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + RedisVersion *string `json:"redisVersion,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o CreateDatabase) String() string { @@ -56,34 +56,34 @@ type Database struct { Name *string `json:"name,omitempty"` Protocol *string `json:"protocol,omitempty"` // For filtering out active-active entries, this property should not be present in the JSON response - ActiveActiveRedis *bool `json:"activeActiveRedis,omitempty"` - Provider *string `json:"provider,omitempty"` - Region *string `json:"region,omitempty"` - Status *string `json:"status,omitempty"` - MemoryLimitInGB *float64 `json:"memoryLimitInGb,omitempty"` - DatasetSizeInGB *float64 `json:"datasetSizeInGb,omitempty"` - MemoryUsedInMB *float64 `json:"memoryUsedInMb,omitempty"` - SupportOSSClusterAPI *bool `json:"supportOSSClusterApi,omitempty"` - RespVersion *string `json:"respVersion,omitempty"` - DataPersistence *string `json:"dataPersistence,omitempty"` - Replication *bool `json:"replication,omitempty"` - DataEvictionPolicy *string `json:"dataEvictionPolicy,omitempty"` - ThroughputMeasurement *Throughput `json:"throughputMeasurement,omitempty"` - ReplicaOf *ReplicaOf `json:"replicaOf,omitempty"` - Clustering *Clustering `json:"clustering,omitempty"` - Security *Security `json:"security,omitempty"` - Modules []*Module `json:"modules,omitempty"` - Alerts []*Alert `json:"alerts,omitempty"` - ActivatedOn *time.Time `json:"activatedOn,omitempty"` - LastModified *time.Time `json:"lastModified,omitempty"` - MemoryStorage *string `json:"memoryStorage,omitempty"` - PrivateEndpoint *string `json:"privateEndpoint,omitempty"` - PublicEndpoint *string `json:"publicEndpoint,omitempty"` - RedisVersionCompliance *string `json:"redisVersionCompliance,omitempty"` - Backup *Backup `json:"backup,omitempty"` - QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` - RedisVersion *string `json:"redisVersion,omitempty"` - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` + ActiveActiveRedis *bool `json:"activeActiveRedis,omitempty"` + Provider *string `json:"provider,omitempty"` + Region *string `json:"region,omitempty"` + Status *string `json:"status,omitempty"` + MemoryLimitInGB *float64 `json:"memoryLimitInGb,omitempty"` + DatasetSizeInGB *float64 `json:"datasetSizeInGb,omitempty"` + MemoryUsedInMB *float64 `json:"memoryUsedInMb,omitempty"` + SupportOSSClusterAPI *bool `json:"supportOSSClusterApi,omitempty"` + RespVersion *string `json:"respVersion,omitempty"` + DataPersistence *string `json:"dataPersistence,omitempty"` + Replication *bool `json:"replication,omitempty"` + DataEvictionPolicy *string `json:"dataEvictionPolicy,omitempty"` + ThroughputMeasurement *Throughput `json:"throughputMeasurement,omitempty"` + ReplicaOf *ReplicaOf `json:"replicaOf,omitempty"` + Clustering *Clustering `json:"clustering,omitempty"` + Security *Security `json:"security,omitempty"` + Modules []*Module `json:"modules,omitempty"` + Alerts []*Alert `json:"alerts,omitempty"` + ActivatedOn *time.Time `json:"activatedOn,omitempty"` + LastModified *time.Time `json:"lastModified,omitempty"` + MemoryStorage *string `json:"memoryStorage,omitempty"` + PrivateEndpoint *string `json:"privateEndpoint,omitempty"` + PublicEndpoint *string `json:"publicEndpoint,omitempty"` + RedisVersionCompliance *string `json:"redisVersionCompliance,omitempty"` + Backup *Backup `json:"backup,omitempty"` + QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + RedisVersion *string `json:"redisVersion,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o Database) String() string { @@ -175,12 +175,12 @@ type UpdateDatabase struct { // It's important to use a pointer here, because the terraform user may want to send an empty list. // In that case, the developer must pass a (pointer to a) non-nil, zero-length slice // If the developer really wants to omit this value, passing a nil slice value would work - Alerts *[]*Alert `json:"alerts,omitempty"` - EnableTls *bool `json:"enableTls,omitempty"` - RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` - EnableDefaultUser *bool `json:"enableDefaultUser,omitempty"` - QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` + Alerts *[]*Alert `json:"alerts,omitempty"` + EnableTls *bool `json:"enableTls,omitempty"` + RemoteBackup *DatabaseBackupConfig `json:"remoteBackup,omitempty"` + EnableDefaultUser *bool `json:"enableDefaultUser,omitempty"` + QueryPerformanceFactor *string `json:"queryPerformanceFactor,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o UpdateDatabase) String() string { From 745e827f476e473d244808f9f5dff5e94ac8d04a Mon Sep 17 00:00:00 2001 From: Matthew Long Date: Tue, 21 Oct 2025 17:32:54 +0100 Subject: [PATCH 3/5] test: adding properties to test --- active_active_database_test.go | 8 ++++++-- database_test.go | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/active_active_database_test.go b/active_active_database_test.go index 66a4c4a..6422db0 100644 --- a/active_active_database_test.go +++ b/active_active_database_test.go @@ -56,7 +56,8 @@ func TestAADatabase_Create(t *testing.T) { ], "port": 12000, "queryPerformanceFactor": "Standard", - "redisVersion": "7.2" + "redisVersion": "7.2", + "autoMinorVersionUpgrade": true }`, `{ "taskId": "task", "commandType": "databaseCreateRequest", @@ -128,6 +129,7 @@ func TestAADatabase_Create(t *testing.T) { PortNumber: redis.Int(12000), QueryPerformanceFactor: redis.String("Standard"), RedisVersion: redis.String("7.2"), + AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) @@ -189,7 +191,8 @@ func TestAADatabase_Update(t *testing.T) { } ], "dataEvictionPolicy": "allkeys-lru", - "queryPerformanceFactor": "6x" + "queryPerformanceFactor": "6x", + "autoMinorVersionUpgrade": true }`, "update-task", "databaseUpdateRequest", @@ -248,6 +251,7 @@ func TestAADatabase_Update(t *testing.T) { }, DataEvictionPolicy: redis.String("allkeys-lru"), QueryPerformanceFactor: redis.String("6x"), + AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) } diff --git a/database_test.go b/database_test.go index cb74eeb..1540808 100644 --- a/database_test.go +++ b/database_test.go @@ -54,7 +54,8 @@ func TestDatabase_Create(t *testing.T) { { "name": "RedisSearch" } - ] + ], + "autoMinorVersionUpgrade": true }`, `{ "taskId": "task", "commandType": "databaseCreateRequest", @@ -122,6 +123,7 @@ func TestDatabase_Create(t *testing.T) { Name: redis.String("RedisSearch"), }, }, + AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) @@ -377,7 +379,8 @@ func TestDatabase_Update(t *testing.T) { } ], "enableDefaultUser": false, - "queryPerformanceFactor": "2x" + "queryPerformanceFactor": "2x", + "autoMinorVersionUpgrade": true }`, "task", "databaseUpdateRequest", @@ -419,6 +422,7 @@ func TestDatabase_Update(t *testing.T) { }, EnableDefaultUser: redis.Bool(false), QueryPerformanceFactor: redis.String("2x"), + AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) } From 576de166b78b8da6a9a0417aab0b02fd06e5fd77 Mon Sep 17 00:00:00 2001 From: Matthew Long Date: Wed, 22 Oct 2025 12:50:05 +0100 Subject: [PATCH 4/5] feat: Adding to read as well --- CHANGELOG.md | 2 +- active_active_database_test.go | 2 ++ service/databases/model_active_active.go | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e24d01..75b6afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ See updating [Changelog example here](https://keepachangelog.com/en/1.0.0/). ## 0.39.0 (21st October 2025) ### Added: -* Added `AutoMinorVersionUpgrade` to Pro and Active Active models, for both upgrade and create endpoints. +* Added `AutoMinorVersionUpgrade` to Pro and Active Active models, for upgrade and create endpoints. ## 0.38.0 (15th October 2025) diff --git a/active_active_database_test.go b/active_active_database_test.go index 6422db0..0f65363 100644 --- a/active_active_database_test.go +++ b/active_active_database_test.go @@ -278,6 +278,7 @@ func TestAADatabase_List(t *testing.T) { "useExternalEndpointForOSSClusterApi": false, "replication": true, "dataEvictionPolicy": "noeviction", + "autoMinorVersionUpgrade": true, "modules": [], "crdbDatabases": [ { @@ -420,6 +421,7 @@ func TestAADatabase_List(t *testing.T) { UseExternalEndpointForOSSClusterAPI: redis.Bool(false), Replication: redis.Bool(true), DataEvictionPolicy: redis.String("noeviction"), + AutoMinorVersionUpgrade: redis.Bool(true), Modules: []*databases.Module{}, CrdbDatabases: []*databases.CrdbDatabase{ { diff --git a/service/databases/model_active_active.go b/service/databases/model_active_active.go index 1535ddd..dcad08a 100644 --- a/service/databases/model_active_active.go +++ b/service/databases/model_active_active.go @@ -23,6 +23,7 @@ type ActiveActiveDatabase struct { Security *Security `json:"security,omitempty"` Modules []*Module `json:"modules,omitempty"` CrdbDatabases []*CrdbDatabase `json:"crdbDatabases,omitempty"` + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` } func (o ActiveActiveDatabase) String() string { From 80adeb5c54042146cbd642621b38a2e9c7880088 Mon Sep 17 00:00:00 2001 From: Matthew Long Date: Wed, 22 Oct 2025 12:54:30 +0100 Subject: [PATCH 5/5] chore: make fmt --- active_active_database_test.go | 10 +++++----- database_test.go | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/active_active_database_test.go b/active_active_database_test.go index 0f65363..4c421bf 100644 --- a/active_active_database_test.go +++ b/active_active_database_test.go @@ -126,9 +126,9 @@ func TestAADatabase_Create(t *testing.T) { ReadOperationsPerSecond: redis.Int(1000), }, }, - PortNumber: redis.Int(12000), - QueryPerformanceFactor: redis.String("Standard"), - RedisVersion: redis.String("7.2"), + PortNumber: redis.Int(12000), + QueryPerformanceFactor: redis.String("Standard"), + RedisVersion: redis.String("7.2"), AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) @@ -249,8 +249,8 @@ func TestAADatabase_Update(t *testing.T) { }, }, }, - DataEvictionPolicy: redis.String("allkeys-lru"), - QueryPerformanceFactor: redis.String("6x"), + DataEvictionPolicy: redis.String("allkeys-lru"), + QueryPerformanceFactor: redis.String("6x"), AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err) diff --git a/database_test.go b/database_test.go index 1540808..07a6aa4 100644 --- a/database_test.go +++ b/database_test.go @@ -420,8 +420,8 @@ func TestDatabase_Update(t *testing.T) { Value: redis.Int(80), }, }, - EnableDefaultUser: redis.Bool(false), - QueryPerformanceFactor: redis.String("2x"), + EnableDefaultUser: redis.Bool(false), + QueryPerformanceFactor: redis.String("2x"), AutoMinorVersionUpgrade: redis.Bool(true), }) require.NoError(t, err)