Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
20 changes: 13 additions & 7 deletions active_active_database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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)

Expand Down Expand Up @@ -189,7 +191,8 @@ func TestAADatabase_Update(t *testing.T) {
}
],
"dataEvictionPolicy": "allkeys-lru",
"queryPerformanceFactor": "6x"
"queryPerformanceFactor": "6x",
"autoMinorVersionUpgrade": true
}`,
"update-task",
"databaseUpdateRequest",
Expand Down Expand Up @@ -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)
}
Expand All @@ -274,6 +278,7 @@ func TestAADatabase_List(t *testing.T) {
"useExternalEndpointForOSSClusterApi": false,
"replication": true,
"dataEvictionPolicy": "noeviction",
"autoMinorVersionUpgrade": true,
"modules": [],
"crdbDatabases": [
{
Expand Down Expand Up @@ -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{
{
Expand Down
12 changes: 8 additions & 4 deletions database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ func TestDatabase_Create(t *testing.T) {
{
"name": "RedisSearch"
}
]
],
"autoMinorVersionUpgrade": true
}`, `{
"taskId": "task",
"commandType": "databaseCreateRequest",
Expand Down Expand Up @@ -122,6 +123,7 @@ func TestDatabase_Create(t *testing.T) {
Name: redis.String("RedisSearch"),
},
},
AutoMinorVersionUpgrade: redis.Bool(true),
})
require.NoError(t, err)

Expand Down Expand Up @@ -377,7 +379,8 @@ func TestDatabase_Update(t *testing.T) {
}
],
"enableDefaultUser": false,
"queryPerformanceFactor": "2x"
"queryPerformanceFactor": "2x",
"autoMinorVersionUpgrade": true
}`,
"task",
"databaseUpdateRequest",
Expand Down Expand Up @@ -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)
}
Expand Down
91 changes: 47 additions & 44 deletions service/databases/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down
3 changes: 3 additions & 0 deletions service/databases/model_active_active.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down