Skip to content
Closed
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
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See updating [Changelog example here](https://keepachangelog.com/en/1.0.0/)

# 2.3.2 (22nd August 2025)

### Changed

- Refactoring and cleaning up of code.

# 2.3.1 (21st August 2025)

### Changed

- Updating and fixing documentation.

# 2.3.0 (19th August 2025)

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ require (
github.com/hashicorp/go-cty v1.5.0
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0
github.com/stretchr/testify v1.10.0
golang.org/x/net v0.43.0
)

require (
Expand Down Expand Up @@ -57,7 +58,6 @@ require (
github.com/zclconf/go-cty v1.16.2 // indirect
golang.org/x/crypto v0.41.0 // indirect
golang.org/x/mod v0.27.0 // indirect
golang.org/x/net v0.43.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/text v0.28.0 // indirect
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
package provider
package account

import (
"context"
"strconv"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/cloud_accounts"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
"strconv"
)

func dataSourceRedisCloudCloudAccount() *schema.Resource {
func DataSourceRedisCloudCloudAccount() *schema.Resource {
return &schema.Resource{
Description: "The Cloud Account data source allows access to the ID of a Cloud Account configuration. This ID can be used when creating Subscription resources.",
ReadContext: dataSourceRedisCloudCloudAccountRead,
Expand Down Expand Up @@ -46,9 +48,9 @@ func dataSourceRedisCloudCloudAccount() *schema.Resource {

func dataSourceRedisCloudCloudAccountRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

accounts, err := client.client.CloudAccount.List(ctx)
accounts, err := client.Client.CloudAccount.List(ctx)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package provider
package account

import (
"context"
"fmt"
"regexp"
"strconv"
"time"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/account"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
"regexp"
"strconv"
"time"
)

func dataSourceRedisCloudPaymentMethod() *schema.Resource {
func DataSourceRedisCloudPaymentMethod() *schema.Resource {
return &schema.Resource{
Description: "The Payment Method data source allows access to the ID of a Payment Method configured against your Redis Enterprise Cloud account. This ID can be used when creating Subscription resources.",
ReadContext: dataSourceRedisCloudPaymentMethodRead,
Expand Down Expand Up @@ -45,9 +47,9 @@ func dataSourceRedisCloudPaymentMethod() *schema.Resource {

func dataSourceRedisCloudPaymentMethodRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

methods, err := client.client.Account.ListPaymentMethods(ctx)
methods, err := client.Client.Account.ListPaymentMethods(ctx)

if err != nil {
return diag.FromErr(err)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package provider
package account

import (
"context"
"log"
"strconv"
"time"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/cloud_accounts"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
"log"
"strconv"
"time"
)

func resourceRedisCloudCloudAccount() *schema.Resource {
func ResourceRedisCloudCloudAccount() *schema.Resource {
return &schema.Resource{
Description: "Creates a Cloud Account resource representing the access credentials to a cloud provider account, (`AWS` or `GCP`). Your Redis Enterprise Cloud account uses these credentials to provision databases within your infrastructure. ",
CreateContext: resourceRedisCloudCloudAccountCreate,
Expand Down Expand Up @@ -88,7 +90,7 @@ func resourceRedisCloudCloudAccount() *schema.Resource {
}

func resourceRedisCloudCloudAccountCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

accessKey := d.Get("access_key_id").(string)
secretKey := d.Get("access_secret_key").(string)
Expand All @@ -98,7 +100,7 @@ func resourceRedisCloudCloudAccountCreate(ctx context.Context, d *schema.Resourc
provider := d.Get("provider_type").(string)
signInLoginUrl := d.Get("sign_in_login_url").(string)

id, err := client.client.CloudAccount.Create(ctx, cloud_accounts.CreateCloudAccount{
id, err := client.Client.CloudAccount.Create(ctx, cloud_accounts.CreateCloudAccount{
AccessKeyID: redis.String(accessKey),
AccessSecretKey: redis.String(secretKey),
ConsoleUsername: redis.String(consoleUsername),
Expand All @@ -121,7 +123,7 @@ func resourceRedisCloudCloudAccountCreate(ctx context.Context, d *schema.Resourc
return resourceRedisCloudCloudAccountRead(ctx, d, meta)
}

func waitForCloudAccountToBeActive(ctx context.Context, id int, client *apiClient) error {
func waitForCloudAccountToBeActive(ctx context.Context, id int, client *utils.ApiClient) error {
wait := &retry.StateChangeConf{
Delay: 10 * time.Second,
Pending: []string{cloud_accounts.StatusDraft, cloud_accounts.StatusChangeDraft},
Expand All @@ -131,7 +133,7 @@ func waitForCloudAccountToBeActive(ctx context.Context, id int, client *apiClien
Refresh: func() (result interface{}, state string, err error) {
log.Printf("[DEBUG] Waiting for cloud account %d to be active", id)

account, err := client.client.CloudAccount.Get(ctx, id)
account, err := client.Client.CloudAccount.Get(ctx, id)
if err != nil {
return nil, "", err
}
Expand All @@ -148,7 +150,7 @@ func waitForCloudAccountToBeActive(ctx context.Context, id int, client *apiClien
}

func resourceRedisCloudCloudAccountRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

var diags diag.Diagnostics

Expand All @@ -157,7 +159,7 @@ func resourceRedisCloudCloudAccountRead(ctx context.Context, d *schema.ResourceD
return diag.FromErr(err)
}

account, err := client.client.CloudAccount.Get(ctx, id)
account, err := client.Client.CloudAccount.Get(ctx, id)
if err != nil {
if _, ok := err.(*cloud_accounts.NotFound); ok {
d.SetId("")
Expand All @@ -183,7 +185,7 @@ func resourceRedisCloudCloudAccountRead(ctx context.Context, d *schema.ResourceD
}

func resourceRedisCloudCloudAccountUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

id, err := strconv.Atoi(d.Id())
if err != nil {
Expand All @@ -197,7 +199,7 @@ func resourceRedisCloudCloudAccountUpdate(ctx context.Context, d *schema.Resourc
name := d.Get("name").(string)
signInLoginUrl := d.Get("sign_in_login_url").(string)

err = client.client.CloudAccount.Update(ctx, id, cloud_accounts.UpdateCloudAccount{
err = client.Client.CloudAccount.Update(ctx, id, cloud_accounts.UpdateCloudAccount{
AccessKeyID: redis.String(accessKey),
AccessSecretKey: redis.String(secretKey),
ConsoleUsername: redis.String(consoleUsername),
Expand All @@ -214,14 +216,14 @@ func resourceRedisCloudCloudAccountUpdate(ctx context.Context, d *schema.Resourc
}

func resourceRedisCloudCloudAccountDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*apiClient)
client := meta.(*utils.ApiClient)

id, err := strconv.Atoi(d.Id())
if err != nil {
return diag.FromErr(err)
}

err = client.client.CloudAccount.Delete(ctx, id)
err = client.Client.CloudAccount.Delete(ctx, id)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package provider
package acl

import (
"context"
"strconv"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/access_control_lists/roles"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"strconv"
)

func dataSourceRedisCloudAclRole() *schema.Resource {
func DataSourceRedisCloudAclRole() *schema.Resource {
return &schema.Resource{
Description: "The ACL Role grants a number of permissions to databases",
ReadContext: dataSourceRedisCloudAclRoleRead,
Expand Down Expand Up @@ -67,7 +69,7 @@ func dataSourceRedisCloudAclRole() *schema.Resource {

func dataSourceRedisCloudAclRoleRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
api := meta.(*apiClient)
api := meta.(*utils.ApiClient)

var filters []func(role *roles.GetRoleResponse) bool
if v, ok := d.GetOk("name"); ok {
Expand All @@ -76,7 +78,7 @@ func dataSourceRedisCloudAclRoleRead(ctx context.Context, d *schema.ResourceData
})
}

list, err := api.client.Roles.List(ctx)
list, err := api.Client.Roles.List(ctx)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package provider
package acl

import (
"context"
"strconv"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/access_control_lists/redis_rules"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"strconv"
)

func dataSourceRedisCloudAclRule() *schema.Resource {
func DataSourceRedisCloudAclRule() *schema.Resource {
return &schema.Resource{
Description: "The ACL Rule (known also as RedisRule) allows fine-grained permissions to be assigned to a subset of ACL Users",
ReadContext: dataSourceRedisCloudAclRuleRead,
Expand All @@ -31,7 +33,7 @@ func dataSourceRedisCloudAclRule() *schema.Resource {

func dataSourceRedisCloudAclRuleRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
api := meta.(*apiClient)
api := meta.(*utils.ApiClient)

var filters []func(rule *redis_rules.GetRedisRuleResponse) bool
if v, ok := d.GetOk("name"); ok {
Expand All @@ -40,7 +42,7 @@ func dataSourceRedisCloudAclRuleRead(ctx context.Context, d *schema.ResourceData
})
}

list, err := api.client.RedisRules.List(ctx)
list, err := api.Client.RedisRules.List(ctx)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package provider
package acl

import (
"context"
"strconv"

"github.com/RedisLabs/rediscloud-go-api/redis"
"github.com/RedisLabs/rediscloud-go-api/service/access_control_lists/users"
"github.com/RedisLabs/terraform-provider-rediscloud/provider/utils"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"strconv"
)

func dataSourceRedisCloudAclUser() *schema.Resource {
func DataSourceRedisCloudAclUser() *schema.Resource {
return &schema.Resource{
Description: "The ACL User is an authenticated entity whose permissions are described by an associated Role",
ReadContext: dataSourceRedisCloudAclUserRead,
Expand All @@ -31,7 +33,7 @@ func dataSourceRedisCloudAclUser() *schema.Resource {

func dataSourceRedisCloudAclUserRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
api := meta.(*apiClient)
api := meta.(*utils.ApiClient)

var filters []func(user *users.GetUserResponse) bool
if v, ok := d.GetOk("name"); ok {
Expand All @@ -40,7 +42,7 @@ func dataSourceRedisCloudAclUserRead(ctx context.Context, d *schema.ResourceData
})
}

list, err := api.client.Users.List(ctx)
list, err := api.Client.Users.List(ctx)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Loading
Loading