diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 2d52253..79bcae4 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -13,20 +13,20 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/appwrite/terraform-provider-appwrite/internal/common" - "github.com/appwrite/terraform-provider-appwrite/internal/services/backup" - "github.com/appwrite/terraform-provider-appwrite/internal/services/bucket" - "github.com/appwrite/terraform-provider-appwrite/internal/services/column" - "github.com/appwrite/terraform-provider-appwrite/internal/services/database" - appwritefile "github.com/appwrite/terraform-provider-appwrite/internal/services/file" - "github.com/appwrite/terraform-provider-appwrite/internal/services/index" - messagingprovider "github.com/appwrite/terraform-provider-appwrite/internal/services/provider" - "github.com/appwrite/terraform-provider-appwrite/internal/services/row" - "github.com/appwrite/terraform-provider-appwrite/internal/services/subscriber" - "github.com/appwrite/terraform-provider-appwrite/internal/services/table" - "github.com/appwrite/terraform-provider-appwrite/internal/services/team" - "github.com/appwrite/terraform-provider-appwrite/internal/services/topic" - "github.com/appwrite/terraform-provider-appwrite/internal/services/user" - "github.com/appwrite/terraform-provider-appwrite/internal/services/webhook" + backupsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/backup" + bucketsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/bucket" + columnsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/column" + databasesvc "github.com/appwrite/terraform-provider-appwrite/internal/services/database" + filesvc "github.com/appwrite/terraform-provider-appwrite/internal/services/file" + indexsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/index" + providersvc "github.com/appwrite/terraform-provider-appwrite/internal/services/provider" + rowsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/row" + subscribersvc "github.com/appwrite/terraform-provider-appwrite/internal/services/subscriber" + tablesvc "github.com/appwrite/terraform-provider-appwrite/internal/services/table" + teamsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/team" + topicsvc "github.com/appwrite/terraform-provider-appwrite/internal/services/topic" + usersvc "github.com/appwrite/terraform-provider-appwrite/internal/services/user" + webhooksvc "github.com/appwrite/terraform-provider-appwrite/internal/services/webhook" ) var _ provider.Provider = &appwriteProvider{} @@ -138,26 +138,26 @@ func (p *appwriteProvider) Configure(ctx context.Context, req provider.Configure func (p *appwriteProvider) Resources(_ context.Context) []func() resource.Resource { return []func() resource.Resource{ - database.NewDatabaseResource, - table.NewTableResource, - column.NewColumnResource, - index.NewIndexResource, - bucket.NewBucketResource, - topic.NewTopicResource, - messagingprovider.NewProviderResource, - user.NewUserResource, - team.NewTeamResource, - backup.NewPolicyResource, - row.NewRowResource, - webhook.NewWebhookResource, - subscriber.NewSubscriberResource, - appwritefile.NewFileResource, + databasesvc.NewDatabaseResource, + tablesvc.NewTableResource, + columnsvc.NewColumnResource, + indexsvc.NewIndexResource, + bucketsvc.NewBucketResource, + topicsvc.NewTopicResource, + providersvc.NewProviderResource, + usersvc.NewUserResource, + teamsvc.NewTeamResource, + backupsvc.NewPolicyResource, + rowsvc.NewRowResource, + webhooksvc.NewWebhookResource, + subscribersvc.NewSubscriberResource, + filesvc.NewFileResource, } } func (p *appwriteProvider) DataSources(_ context.Context) []func() datasource.DataSource { return []func() datasource.DataSource{ - database.NewDatabaseDataSource, + databasesvc.NewDatabaseDataSource, } } diff --git a/internal/services/backup/resource.go b/internal/services/backup/resource.go index 34ea51a..beeba3b 100644 --- a/internal/services/backup/resource.go +++ b/internal/services/backup/resource.go @@ -56,7 +56,7 @@ func (r *policyResource) Schema(_ context.Context, _ resource.SchemaRequest, res Description: "The backup policy ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The backup policy name.", diff --git a/internal/services/bucket/resource.go b/internal/services/bucket/resource.go index 7eb207c..f4e7736 100644 --- a/internal/services/bucket/resource.go +++ b/internal/services/bucket/resource.go @@ -58,12 +58,10 @@ func (r *bucketResource) Schema(_ context.Context, _ resource.SchemaRequest, res Description: "Manages an Appwrite storage bucket.", Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "The bucket ID. Must be unique within the project.", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The bucket ID. Must be unique within the project.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The bucket name.", diff --git a/internal/services/column/resource.go b/internal/services/column/resource.go index 56ffae4..69bbb34 100644 --- a/internal/services/column/resource.go +++ b/internal/services/column/resource.go @@ -79,7 +79,7 @@ func (r *columnResource) Schema(_ context.Context, _ resource.SchemaRequest, res Description: "The column key (name).", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "type": schema.StringAttribute{ Description: "The column type. One of: " + allColumnTypes + ".", diff --git a/internal/services/database/resource.go b/internal/services/database/resource.go index 88cecff..5fe4ce4 100644 --- a/internal/services/database/resource.go +++ b/internal/services/database/resource.go @@ -47,12 +47,10 @@ func (r *databaseResource) Schema(_ context.Context, _ resource.SchemaRequest, r Description: "Manages an Appwrite database.", Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "The database ID. Must be unique within the project.", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The database ID. Must be unique within the project.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The database name.", diff --git a/internal/services/file/resource.go b/internal/services/file/resource.go index 9dc6cce..3f23d42 100644 --- a/internal/services/file/resource.go +++ b/internal/services/file/resource.go @@ -57,7 +57,7 @@ func (r *fileResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "The file ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "bucket_id": schema.StringAttribute{ Description: "The bucket ID.", diff --git a/internal/services/index/resource.go b/internal/services/index/resource.go index 8ba117f..23fee5a 100644 --- a/internal/services/index/resource.go +++ b/internal/services/index/resource.go @@ -64,7 +64,7 @@ func (r *indexResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "The index key (name).", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "type": schema.StringAttribute{ Description: "Index type: key, unique, or fulltext.", diff --git a/internal/services/provider/resource.go b/internal/services/provider/resource.go index 5bc7295..cbfde9c 100644 --- a/internal/services/provider/resource.go +++ b/internal/services/provider/resource.go @@ -75,23 +75,19 @@ func (r *providerResource) Schema(_ context.Context, _ resource.SchemaRequest, r Description: "Manages an Appwrite messaging provider.", Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "The provider ID.", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The provider ID.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The provider name.", Required: true, }, "type": schema.StringAttribute{ - Description: "The provider type. One of: sendgrid, mailgun, smtp, resend, twilio, vonage, msg91, telesign, textmagic, apns, fcm.", - Required: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The provider type. One of: sendgrid, mailgun, smtp, resend, twilio, vonage, msg91, telesign, textmagic, apns, fcm.", + Required: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, }, "enabled": schema.BoolAttribute{ Description: "Whether the provider is enabled.", diff --git a/internal/services/row/resource.go b/internal/services/row/resource.go index c5932f9..2b74157 100644 --- a/internal/services/row/resource.go +++ b/internal/services/row/resource.go @@ -55,7 +55,7 @@ func (r *rowResource) Schema(_ context.Context, _ resource.SchemaRequest, resp * Description: "The row ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "database_id": schema.StringAttribute{ Description: "The database ID.", diff --git a/internal/services/subscriber/resource.go b/internal/services/subscriber/resource.go index b9d3f0a..1eb4180 100644 --- a/internal/services/subscriber/resource.go +++ b/internal/services/subscriber/resource.go @@ -50,7 +50,7 @@ func (r *subscriberResource) Schema(_ context.Context, _ resource.SchemaRequest, Description: "The subscriber ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "topic_id": schema.StringAttribute{ Description: "The topic ID to subscribe to.", diff --git a/internal/services/table/resource.go b/internal/services/table/resource.go index 5d44f54..92ecffc 100644 --- a/internal/services/table/resource.go +++ b/internal/services/table/resource.go @@ -52,19 +52,15 @@ func (r *tableResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "Manages an Appwrite table within a database.", Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "The table ID. Must be unique within the database.", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The table ID. Must be unique within the database.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "database_id": schema.StringAttribute{ - Description: "The ID of the database this table belongs to.", - Required: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The ID of the database this table belongs to.", + Required: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, }, "name": schema.StringAttribute{ Description: "The table name.", @@ -83,13 +79,11 @@ func (r *tableResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Default: booldefault.StaticBool(false), }, "permissions": schema.ListAttribute{ - Description: "Table-level permissions.", - Optional: true, - Computed: true, - ElementType: types.StringType, - PlanModifiers: []planmodifier.List{ - listplanmodifier.UseStateForUnknown(), - }, + Description: "Table-level permissions.", + Optional: true, + Computed: true, + ElementType: types.StringType, + PlanModifiers: []planmodifier.List{listplanmodifier.UseStateForUnknown()}, }, "created_at": schema.StringAttribute{ Description: "The table creation timestamp.", diff --git a/internal/services/team/resource.go b/internal/services/team/resource.go index 21c46ec..a49d765 100644 --- a/internal/services/team/resource.go +++ b/internal/services/team/resource.go @@ -49,7 +49,7 @@ func (r *teamResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "The team ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The team name.", diff --git a/internal/services/topic/resource.go b/internal/services/topic/resource.go index 9491ce1..d191443 100644 --- a/internal/services/topic/resource.go +++ b/internal/services/topic/resource.go @@ -46,12 +46,10 @@ func (r *topicResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "Manages an Appwrite messaging topic.", Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - Description: "The topic ID.", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ - stringplanmodifier.RequiresReplace(), - }, + Description: "The topic ID.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The topic name.", diff --git a/internal/services/user/resource.go b/internal/services/user/resource.go index 6da7c48..22d82f5 100644 --- a/internal/services/user/resource.go +++ b/internal/services/user/resource.go @@ -58,7 +58,7 @@ func (r *userResource) Schema(_ context.Context, _ resource.SchemaRequest, resp Description: "The user ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The user name.", diff --git a/internal/services/webhook/resource.go b/internal/services/webhook/resource.go index 46e2583..e60bed9 100644 --- a/internal/services/webhook/resource.go +++ b/internal/services/webhook/resource.go @@ -58,7 +58,7 @@ func (r *webhookResource) Schema(_ context.Context, _ resource.SchemaRequest, re Description: "The webhook ID.", Optional: true, Computed: true, - PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace()}, + PlanModifiers: []planmodifier.String{stringplanmodifier.RequiresReplace(), stringplanmodifier.UseStateForUnknown()}, }, "name": schema.StringAttribute{ Description: "The webhook name.",