Skip to content
Closed
Show file tree
Hide file tree
Changes from 8 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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ 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.1 (21st August 2025)

### Changed

- Updating and fixing documentation
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to see an entry noting that a refactor/movement of the Terraform code has taken place. This is more to mark a point in time if there was a future issue.


# 2.3.0 (19th August 2025)

### Added
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