diff --git a/CHANGELOG.md b/CHANGELOG.md index ff6ebe5..75b6afb 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 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 66a4c4a..4c421bf 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", @@ -125,9 +126,10 @@ 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) @@ -189,7 +191,8 @@ func TestAADatabase_Update(t *testing.T) { } ], "dataEvictionPolicy": "allkeys-lru", - "queryPerformanceFactor": "6x" + "queryPerformanceFactor": "6x", + "autoMinorVersionUpgrade": true }`, "update-task", "databaseUpdateRequest", @@ -246,8 +249,9 @@ 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) } @@ -274,6 +278,7 @@ func TestAADatabase_List(t *testing.T) { "useExternalEndpointForOSSClusterApi": false, "replication": true, "dataEvictionPolicy": "noeviction", + "autoMinorVersionUpgrade": true, "modules": [], "crdbDatabases": [ { @@ -416,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/database_test.go b/database_test.go index cb74eeb..07a6aa4 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", @@ -417,8 +420,9 @@ 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) } diff --git a/service/databases/model.go b/service/databases/model.go index 33e0e93..11f7fb4 100644 --- a/service/databases/model.go +++ b/service/databases/model.go @@ -23,18 +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"` + 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 { @@ -55,33 +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"` + 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 { @@ -173,11 +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"` + 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 { diff --git a/service/databases/model_active_active.go b/service/databases/model_active_active.go index c425388..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 { @@ -81,6 +82,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 +117,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 {