From 0ae347422e75176ac5764b86c86a68b209ac2aea Mon Sep 17 00:00:00 2001 From: Ramon Snir Date: Thu, 13 Jun 2024 09:21:19 -0400 Subject: [PATCH] rename account to team --- docs/data-sources/dns_zone.md | 4 +- docs/data-sources/site.md | 2 +- docs/data-sources/sites.md | 4 +- docs/data-sources/{account.md => team.md} | 4 +- docs/resources/dns_zone.md | 4 +- docs/resources/environment_variable.md | 2 +- docs/resources/site_firewall_traffic_rules.md | 2 +- ...ules.md => team_firewall_traffic_rules.md} | 6 +- examples/dns/main.tf | 6 +- examples/env_vars/main.tf | 28 ++++----- examples/firewall_traffic_rules/main.tf | 6 +- examples/log_drains/main.tf | 4 +- examples/site_data_sources/main.tf | 8 +-- examples/site_settings/main.tf | 4 +- internal/provider/dns_zone_data_source.go | 22 +++---- internal/provider/dns_zone_resource.go | 20 +++---- .../provider/environment_variable_resource.go | 34 +++++------ .../firewall_traffic_rules_resource.go | 60 +++++++++---------- internal/provider/provider.go | 2 +- internal/provider/site_data_source.go | 14 ++--- internal/provider/sites_data_source.go | 16 ++--- ...unt_data_source.go => team_data_source.go} | 30 +++++----- 22 files changed, 141 insertions(+), 141 deletions(-) rename docs/data-sources/{account.md => team.md} (76%) rename docs/resources/{account_firewall_traffic_rules.md => team_firewall_traffic_rules.md} (95%) rename internal/provider/{account_data_source.go => team_data_source.go} (65%) diff --git a/docs/data-sources/dns_zone.md b/docs/data-sources/dns_zone.md index 31f74b2..f1405fc 100644 --- a/docs/data-sources/dns_zone.md +++ b/docs/data-sources/dns_zone.md @@ -21,12 +21,12 @@ description: |- ### Read-Only -- `account_id` (String) -- `account_slug` (String) - `dns_servers` (List of String) - `domain` (Attributes) (see [below for nested schema](#nestedatt--domain)) - `id` (String) The ID of this resource. - `records` (Attributes List) (see [below for nested schema](#nestedatt--records)) +- `team_id` (String) +- `team_slug` (String) ### Nested Schema for `domain` diff --git a/docs/data-sources/site.md b/docs/data-sources/site.md index 1bf400c..8744965 100644 --- a/docs/data-sources/site.md +++ b/docs/data-sources/site.md @@ -17,8 +17,8 @@ description: |- ### Optional -- `account_slug` (String) - `name` (String) +- `team_slug` (String) ### Read-Only diff --git a/docs/data-sources/sites.md b/docs/data-sources/sites.md index 0f49dfc..5dad9a0 100644 --- a/docs/data-sources/sites.md +++ b/docs/data-sources/sites.md @@ -17,7 +17,7 @@ description: |- ### Required -- `account_slug` (String) +- `team_slug` (String) ### Read-Only @@ -28,8 +28,8 @@ description: |- Read-Only: -- `account_slug` (String) - `custom_domain` (String) - `domain_aliases` (List of String) - `id` (String) - `name` (String) +- `team_slug` (String) diff --git a/docs/data-sources/account.md b/docs/data-sources/team.md similarity index 76% rename from docs/data-sources/account.md rename to docs/data-sources/team.md index 9b9b8e7..5041354 100644 --- a/docs/data-sources/account.md +++ b/docs/data-sources/team.md @@ -1,12 +1,12 @@ --- # generated by https://github.com/hashicorp/terraform-plugin-docs -page_title: "netlify_account Data Source - netlify" +page_title: "netlify_team Data Source - netlify" subcategory: "" description: |- --- -# netlify_account (Data Source) +# netlify_team (Data Source) diff --git a/docs/resources/dns_zone.md b/docs/resources/dns_zone.md index 76347e9..f22afcf 100644 --- a/docs/resources/dns_zone.md +++ b/docs/resources/dns_zone.md @@ -17,16 +17,16 @@ description: |- ### Required -- `account_slug` (String) - `name` (String) +- `team_slug` (String) ### Read-Only -- `account_id` (String) - `dns_servers` (List of String) - `domain` (Attributes) (see [below for nested schema](#nestedatt--domain)) - `id` (String) The ID of this resource. - `last_updated` (String) +- `team_id` (String) ### Nested Schema for `domain` diff --git a/docs/resources/environment_variable.md b/docs/resources/environment_variable.md index edb6e85..e364ef5 100644 --- a/docs/resources/environment_variable.md +++ b/docs/resources/environment_variable.md @@ -17,8 +17,8 @@ description: |- ### Required -- `account_id` (String) - `key` (String) +- `team_id` (String) ### Optional diff --git a/docs/resources/site_firewall_traffic_rules.md b/docs/resources/site_firewall_traffic_rules.md index e41bd7f..2629e94 100644 --- a/docs/resources/site_firewall_traffic_rules.md +++ b/docs/resources/site_firewall_traffic_rules.md @@ -23,8 +23,8 @@ description: |- ### Read-Only -- `account_id` (String) - `last_updated` (String) +- `team_id` (String) ### Nested Schema for `published` diff --git a/docs/resources/account_firewall_traffic_rules.md b/docs/resources/team_firewall_traffic_rules.md similarity index 95% rename from docs/resources/account_firewall_traffic_rules.md rename to docs/resources/team_firewall_traffic_rules.md index 0c23637..676dcdb 100644 --- a/docs/resources/account_firewall_traffic_rules.md +++ b/docs/resources/team_firewall_traffic_rules.md @@ -1,12 +1,12 @@ --- # generated by https://github.com/hashicorp/terraform-plugin-docs -page_title: "netlify_account_firewall_traffic_rules Resource - netlify" +page_title: "netlify_team_firewall_traffic_rules Resource - netlify" subcategory: "" description: |- --- -# netlify_account_firewall_traffic_rules (Resource) +# netlify_team_firewall_traffic_rules (Resource) @@ -17,8 +17,8 @@ description: |- ### Required -- `account_id` (String) - `published` (Attributes) (see [below for nested schema](#nestedatt--published)) +- `team_id` (String) - `unpublished` (Attributes) (see [below for nested schema](#nestedatt--unpublished)) ### Read-Only diff --git a/examples/dns/main.tf b/examples/dns/main.tf index aac39aa..3da2ddc 100644 --- a/examples/dns/main.tf +++ b/examples/dns/main.tf @@ -10,13 +10,13 @@ terraform { # `token` comes from NETLIFY_API_TOKEN, but can be specified with a Terraform variable provider "netlify" {} -# data "netlify_account" "current" { +# data "netlify_team" "current" { # slug = "ramon-test-1" # } resource "netlify_dns_zone" "example" { - account_slug = "ramon-test-1" // data.netlify_account.current.slug - name = "example-tf-test-test.com" + team_slug = "ramon-test-1" // data.netlify_team.current.slug + name = "example-tf-test-test.com" lifecycle { prevent_destroy = true } diff --git a/examples/env_vars/main.tf b/examples/env_vars/main.tf index 8568b38..fbad800 100644 --- a/examples/env_vars/main.tf +++ b/examples/env_vars/main.tf @@ -10,19 +10,19 @@ terraform { # `token` comes from NETLIFY_API_TOKEN, but can be specified with a Terraform variable provider "netlify" {} -data "netlify_account" "current" { +data "netlify_team" "current" { slug = "ramon-test-1" } data "netlify_site" "platform_test" { - account_slug = data.netlify_account.current.slug - name = "platform-test-1" + team_slug = data.netlify_team.current.slug + name = "platform-test-1" } resource "netlify_environment_variable" "woof" { - account_id = data.netlify_account.current.id - site_id = data.netlify_site.platform_test.id - key = "WOOF" + team_id = data.netlify_team.current.id + site_id = data.netlify_site.platform_test.id + key = "WOOF" values = [ { value = "dogs are here", @@ -32,9 +32,9 @@ resource "netlify_environment_variable" "woof" { } resource "netlify_environment_variable" "meow" { - account_id = data.netlify_account.current.id - site_id = data.netlify_site.platform_test.id - key = "TEST_MEOW" + team_id = data.netlify_team.current.id + site_id = data.netlify_site.platform_test.id + key = "TEST_MEOW" values = [ { value = "roflmaocopter", @@ -44,9 +44,9 @@ resource "netlify_environment_variable" "meow" { } resource "netlify_environment_variable" "secret_meow" { - account_id = data.netlify_account.current.id - site_id = data.netlify_site.platform_test.id - key = "SECRET_TEST_MEOW" + team_id = data.netlify_team.current.id + site_id = data.netlify_site.platform_test.id + key = "SECRET_TEST_MEOW" secret_values = [ { value = "secret roflmaocopter", @@ -60,8 +60,8 @@ resource "netlify_environment_variable" "secret_meow" { } resource "netlify_environment_variable" "global_meow" { - account_id = data.netlify_account.current.id - key = "TEST_MEOW" + team_id = data.netlify_team.current.id + key = "TEST_MEOW" values = [ { value = "global roflmaocopter", diff --git a/examples/firewall_traffic_rules/main.tf b/examples/firewall_traffic_rules/main.tf index c1256d1..df5f838 100644 --- a/examples/firewall_traffic_rules/main.tf +++ b/examples/firewall_traffic_rules/main.tf @@ -11,11 +11,11 @@ terraform { provider "netlify" {} data "netlify_site" "test4" { - account_slug = "netlify-testing" - name = "ramontest4" + team_slug = "netlify-testing" + name = "ramontest4" } -# TODO: add an example for netlify_account_firewall_traffic_rules +# TODO: add an example for netlify_team_firewall_traffic_rules resource "netlify_site_firewall_traffic_rules" "ramontest4" { site_id = data.netlify_site.test4.id diff --git a/examples/log_drains/main.tf b/examples/log_drains/main.tf index a70988c..e8ea23a 100644 --- a/examples/log_drains/main.tf +++ b/examples/log_drains/main.tf @@ -11,8 +11,8 @@ terraform { provider "netlify" {} data "netlify_site" "test4" { - account_slug = "netlify-testing" - name = "ramontest4" + team_slug = "netlify-testing" + name = "ramontest4" } resource "netlify_log_drain" "ramontest4" { diff --git a/examples/site_data_sources/main.tf b/examples/site_data_sources/main.tf index 8e5601e..61fb2bb 100644 --- a/examples/site_data_sources/main.tf +++ b/examples/site_data_sources/main.tf @@ -10,17 +10,17 @@ terraform { # `token` comes from NETLIFY_API_TOKEN, but can be specified with a Terraform variable provider "netlify" {} -data "netlify_account" "current" { +data "netlify_team" "current" { slug = "ramon-test-1" } data "netlify_site" "platform_test" { - account_slug = data.netlify_account.current.slug - name = "platform-test-1" + team_slug = data.netlify_team.current.slug + name = "platform-test-1" } data "netlify_sites" "all" { - account_slug = "netlify-testing" + team_slug = "netlify-testing" } output "sites" { diff --git a/examples/site_settings/main.tf b/examples/site_settings/main.tf index f61ca3c..e506842 100644 --- a/examples/site_settings/main.tf +++ b/examples/site_settings/main.tf @@ -11,8 +11,8 @@ terraform { provider "netlify" {} data "netlify_site" "platform_test" { - account_slug = "ramon-test-1" - name = "platform-test-1" + team_slug = "ramon-test-1" + name = "platform-test-1" } resource "netlify_site_build_settings" "platform_test" { diff --git a/internal/provider/dns_zone_data_source.go b/internal/provider/dns_zone_data_source.go index 5a10682..897c181 100644 --- a/internal/provider/dns_zone_data_source.go +++ b/internal/provider/dns_zone_data_source.go @@ -29,13 +29,13 @@ type dnsZoneDataSource struct { } type dnsZoneDataSourceModel struct { - ID types.String `tfsdk:"id"` - Name types.String `tfsdk:"name"` - AccountID types.String `tfsdk:"account_id"` - AccountSlug types.String `tfsdk:"account_slug"` - DnsServers types.List `tfsdk:"dns_servers"` - Domain *netlifyDomainModel `tfsdk:"domain"` - Records []dnsRecordModel `tfsdk:"records"` + ID types.String `tfsdk:"id"` + Name types.String `tfsdk:"name"` + TeamID types.String `tfsdk:"team_id"` + TeamSlug types.String `tfsdk:"team_slug"` + DnsServers types.List `tfsdk:"dns_servers"` + Domain *netlifyDomainModel `tfsdk:"domain"` + Records []dnsRecordModel `tfsdk:"records"` } type dnsRecordModel struct { @@ -84,10 +84,10 @@ func (d *dnsZoneDataSource) Schema(_ context.Context, _ datasource.SchemaRequest Optional: true, Computed: true, }, - "account_id": schema.StringAttribute{ + "team_id": schema.StringAttribute{ Computed: true, }, - "account_slug": schema.StringAttribute{ + "team_slug": schema.StringAttribute{ Computed: true, }, "domain": schema.SingleNestedAttribute{ @@ -201,8 +201,8 @@ func (d *dnsZoneDataSource) Read(ctx context.Context, req datasource.ReadRequest config.ID = types.StringValue(zone.Id) config.Name = types.StringValue(zone.Name) - config.AccountID = types.StringValue(zone.AccountId) - config.AccountSlug = types.StringValue(zone.AccountSlug) + config.TeamID = types.StringValue(zone.AccountId) + config.TeamSlug = types.StringValue(zone.AccountSlug) dnsServers := make([]types.String, len(zone.DnsServers)) for i, dnsServer := range zone.DnsServers { dnsServers[i] = types.StringValue(dnsServer) diff --git a/internal/provider/dns_zone_resource.go b/internal/provider/dns_zone_resource.go index ff61250..3f49530 100644 --- a/internal/provider/dns_zone_resource.go +++ b/internal/provider/dns_zone_resource.go @@ -34,8 +34,8 @@ type dnsZoneResourceModel struct { ID types.String `tfsdk:"id"` LastUpdated types.String `tfsdk:"last_updated"` Name types.String `tfsdk:"name"` - AccountID types.String `tfsdk:"account_id"` - AccountSlug types.String `tfsdk:"account_slug"` + TeamID types.String `tfsdk:"team_id"` + TeamSlug types.String `tfsdk:"team_slug"` DnsServers types.List `tfsdk:"dns_servers"` Domain *netlifyDomainModel `tfsdk:"domain"` } @@ -80,13 +80,13 @@ func (r *dnsZoneResource) Schema(_ context.Context, _ resource.SchemaRequest, re stringplanmodifier.RequiresReplace(), }, }, - "account_id": schema.StringAttribute{ + "team_id": schema.StringAttribute{ Computed: true, PlanModifiers: []planmodifier.String{ stringplanmodifier.UseStateForUnknown(), }, }, - "account_slug": schema.StringAttribute{ + "team_slug": schema.StringAttribute{ Required: true, PlanModifiers: []planmodifier.String{ stringplanmodifier.RequiresReplace(), @@ -139,7 +139,7 @@ func (r *dnsZoneResource) Create(ctx context.Context, req resource.CreateRequest dnsZone, _, err := r.data.client.DNSZonesAPI. CreateDnsZone(ctx). DnsZoneCreateParams(netlifyapi.DnsZoneCreateParams{ - AccountSlug: plan.AccountSlug.ValueStringPointer(), + AccountSlug: plan.TeamSlug.ValueStringPointer(), Name: plan.Name.ValueStringPointer(), }). Execute() @@ -147,9 +147,9 @@ func (r *dnsZoneResource) Create(ctx context.Context, req resource.CreateRequest resp.Diagnostics.AddError( "Error creating Netlify DNS zone", fmt.Sprintf( - "Could not create Netlify DNS zone %q (account slug: %q): %q", + "Could not create Netlify DNS zone %q (team slug: %q): %q", plan.Name.ValueString(), - plan.AccountSlug.ValueString(), + plan.TeamSlug.ValueString(), err.Error(), ), ) @@ -157,7 +157,7 @@ func (r *dnsZoneResource) Create(ctx context.Context, req resource.CreateRequest } plan.ID = types.StringValue(dnsZone.Id) plan.LastUpdated = types.StringValue(time.Now().Format(time.RFC3339)) - plan.AccountID = types.StringValue(dnsZone.AccountId) + plan.TeamID = types.StringValue(dnsZone.AccountId) dnsServers := make([]types.String, len(dnsZone.DnsServers)) for i, dnsServer := range dnsZone.DnsServers { dnsServers[i] = types.StringValue(dnsServer) @@ -217,8 +217,8 @@ func (r *dnsZoneResource) Read(ctx context.Context, req resource.ReadRequest, re return } state.Name = types.StringValue(dnsZone.Name) - state.AccountID = types.StringValue(dnsZone.AccountId) - state.AccountSlug = types.StringValue(dnsZone.AccountSlug) + state.TeamID = types.StringValue(dnsZone.AccountId) + state.TeamSlug = types.StringValue(dnsZone.AccountSlug) dnsServers := make([]types.String, len(dnsZone.DnsServers)) for i, dnsServer := range dnsZone.DnsServers { dnsServers[i] = types.StringValue(dnsServer) diff --git a/internal/provider/environment_variable_resource.go b/internal/provider/environment_variable_resource.go index 27b87c5..c54bc90 100644 --- a/internal/provider/environment_variable_resource.go +++ b/internal/provider/environment_variable_resource.go @@ -37,7 +37,7 @@ type environmentVariableResource struct { } type environmentVariableResourceModel struct { - AccountID types.String `tfsdk:"account_id"` + TeamID types.String `tfsdk:"team_id"` SiteID types.String `tfsdk:"site_id"` LastUpdated types.String `tfsdk:"last_updated"` Key types.String `tfsdk:"key"` @@ -80,7 +80,7 @@ func (r *environmentVariableResource) Schema(_ context.Context, _ resource.Schem "last_updated": schema.StringAttribute{ Computed: true, }, - "account_id": schema.StringAttribute{ + "team_id": schema.StringAttribute{ Required: true, PlanModifiers: []planmodifier.String{ stringplanmodifier.RequiresReplace(), @@ -197,7 +197,7 @@ func (r *environmentVariableResource) Create(ctx context.Context, req resource.C isSecret = false } createEnvVars := r.data.client.EnvironmentVariablesAPI. - CreateEnvVars(ctx, plan.AccountID.ValueString()). + CreateEnvVars(ctx, plan.TeamID.ValueString()). EnvVar([]netlifyapi.EnvVar{ { Key: plan.Key.ValueString(), @@ -214,9 +214,9 @@ func (r *environmentVariableResource) Create(ctx context.Context, req resource.C resp.Diagnostics.AddError( "Error creating Netlify environment variable", fmt.Sprintf( - "Could not create Netlify environment variable order ID %q (account ID: %q, site ID: %q, secret: %v): %q", + "Could not create Netlify environment variable order ID %q (team ID: %q, site ID: %q, secret: %v): %q", plan.Key.ValueString(), - plan.AccountID.ValueString(), + plan.TeamID.ValueString(), plan.SiteID.ValueString(), isSecret, err.Error(), @@ -239,7 +239,7 @@ func (r *environmentVariableResource) Read(ctx context.Context, req resource.Rea return } - getEnvVar := r.data.client.EnvironmentVariablesAPI.GetEnvVar(ctx, state.AccountID.ValueString(), state.Key.ValueString()) + getEnvVar := r.data.client.EnvironmentVariablesAPI.GetEnvVar(ctx, state.TeamID.ValueString(), state.Key.ValueString()) if state.SiteID.ValueString() != "" { getEnvVar = getEnvVar.SiteId(state.SiteID.ValueString()) } @@ -248,9 +248,9 @@ func (r *environmentVariableResource) Read(ctx context.Context, req resource.Rea resp.Diagnostics.AddError( "Error reading Netlify environment variable", fmt.Sprintf( - "Could not read Netlify environment variable order ID %q (account ID: %q, site ID: %q): %q", + "Could not read Netlify environment variable order ID %q (team ID: %q, site ID: %q): %q", state.Key.ValueString(), - state.AccountID.ValueString(), + state.TeamID.ValueString(), state.SiteID.ValueString(), err.Error(), ), @@ -293,7 +293,7 @@ func (r *environmentVariableResource) Update(ctx context.Context, req resource.U isSecret = false } updateEnvVar := r.data.client.EnvironmentVariablesAPI. - UpdateEnvVar(ctx, plan.AccountID.ValueString(), plan.Key.ValueString()). + UpdateEnvVar(ctx, plan.TeamID.ValueString(), plan.Key.ValueString()). Key(plan.Key.ValueString()).UpdateEnvVarRequest(netlifyapi.UpdateEnvVarRequest{ Scopes: scopes, Values: values, @@ -307,9 +307,9 @@ func (r *environmentVariableResource) Update(ctx context.Context, req resource.U resp.Diagnostics.AddError( "Error updating Netlify environment variable", fmt.Sprintf( - "Could not update Netlify environment variable order ID %q (account ID: %q, site ID: %q, secret: %v): %q", + "Could not update Netlify environment variable order ID %q (team ID: %q, site ID: %q, secret: %v): %q", plan.Key.ValueString(), - plan.AccountID.ValueString(), + plan.TeamID.ValueString(), plan.SiteID.ValueString(), isSecret, err.Error(), @@ -333,7 +333,7 @@ func (r *environmentVariableResource) Delete(ctx context.Context, req resource.D } deleteEnvVar := r.data.client.EnvironmentVariablesAPI. - DeleteEnvVar(ctx, state.AccountID.ValueString(), state.Key.ValueString()) + DeleteEnvVar(ctx, state.TeamID.ValueString(), state.Key.ValueString()) if state.SiteID.ValueString() != "" { deleteEnvVar = deleteEnvVar.SiteId(state.SiteID.ValueString()) } @@ -342,9 +342,9 @@ func (r *environmentVariableResource) Delete(ctx context.Context, req resource.D resp.Diagnostics.AddError( "Error deleting Netlify environment variable", fmt.Sprintf( - "Could not delete Netlify environment variable order ID %q (account ID: %q, site ID: %q): %q", + "Could not delete Netlify environment variable order ID %q (team ID: %q, site ID: %q): %q", state.Key.ValueString(), - state.AccountID.ValueString(), + state.TeamID.ValueString(), state.SiteID.ValueString(), err.Error(), ), @@ -356,21 +356,21 @@ func (r *environmentVariableResource) Delete(ctx context.Context, req resource.D func (r *environmentVariableResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) { idParts := strings.Split(req.ID, ":") - errorMessage := fmt.Sprintf("Expected import identifier with one of these formats: account_id,key or account_id,site_id,key. Got: %q", req.ID) + errorMessage := fmt.Sprintf("Expected import identifier with one of these formats: team_id,key or team_id,site_id,key. Got: %q", req.ID) if len(idParts) == 2 { if idParts[0] == "" || idParts[1] == "" { resp.Diagnostics.AddError("Unexpected Import Identifier", errorMessage) return } - resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("account_id"), idParts[0])...) + resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("team_id"), idParts[0])...) resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("key"), idParts[1])...) } else if len(idParts) == 3 { if idParts[0] == "" || idParts[1] == "" || idParts[2] == "" { resp.Diagnostics.AddError("Unexpected Import Identifier", errorMessage) return } - resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("account_id"), idParts[0])...) + resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("team_id"), idParts[0])...) resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("site_id"), idParts[1])...) resp.Diagnostics.Append(resp.State.SetAttribute(ctx, path.Root("key"), idParts[2])...) } else { diff --git a/internal/provider/firewall_traffic_rules_resource.go b/internal/provider/firewall_traffic_rules_resource.go index 7fc08de..b8e5099 100644 --- a/internal/provider/firewall_traffic_rules_resource.go +++ b/internal/provider/firewall_traffic_rules_resource.go @@ -25,22 +25,22 @@ var ( _ resource.ResourceWithImportState = &firewallTrafficRulesResource{} ) -func NewFirewallTrafficRulesResource(accountLevel bool) func() resource.Resource { +func NewFirewallTrafficRulesResource(teamLevel bool) func() resource.Resource { return func() resource.Resource { return &firewallTrafficRulesResource{ - accountLevel: accountLevel, + teamLevel: teamLevel, } } } type firewallTrafficRulesResource struct { - data NetlifyProviderData - accountLevel bool + data NetlifyProviderData + teamLevel bool } type firewallTrafficRulesResourceModel struct { SiteID types.String `tfsdk:"site_id"` - AccountID types.String `tfsdk:"account_id"` + TeamID types.String `tfsdk:"team_id"` LastUpdated types.String `tfsdk:"last_updated"` Published *firewallTrafficRuleSet `tfsdk:"published"` Unpublished *firewallTrafficRuleSet `tfsdk:"unpublished"` @@ -66,8 +66,8 @@ type geoFirewallTrafficRule struct { } func (r *firewallTrafficRulesResource) Metadata(_ context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) { - if r.accountLevel { - resp.TypeName = req.ProviderTypeName + "_account_firewall_traffic_rules" + if r.teamLevel { + resp.TypeName = req.ProviderTypeName + "_team_firewall_traffic_rules" } else { resp.TypeName = req.ProviderTypeName + "_site_firewall_traffic_rules" } @@ -161,15 +161,15 @@ func (r *firewallTrafficRulesResource) Schema(_ context.Context, _ resource.Sche resp.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "site_id": schema.StringAttribute{ - Required: !r.accountLevel, - Computed: r.accountLevel, + Required: !r.teamLevel, + Computed: r.teamLevel, PlanModifiers: []planmodifier.String{ netlify_planmodifiers.UseNullForUnknown(), }, }, - "account_id": schema.StringAttribute{ - Required: r.accountLevel, - Computed: !r.accountLevel, + "team_id": schema.StringAttribute{ + Required: r.teamLevel, + Computed: !r.teamLevel, PlanModifiers: []planmodifier.String{ netlify_planmodifiers.UseNullForUnknown(), }, @@ -210,17 +210,17 @@ func (r *firewallTrafficRulesResource) Read(ctx context.Context, req resource.Re var config *netlifyapi.SiteFirewallConfig - if r.accountLevel { + if r.teamLevel { var err error config, _, err = r.data.client.AccountsAPI. - GetAccountFirewallRuleSet(ctx, state.AccountID.ValueString()). + GetAccountFirewallRuleSet(ctx, state.TeamID.ValueString()). Execute() if err != nil { resp.Diagnostics.AddError( - "Error reading account firewall rule set", + "Error reading team firewall rule set", fmt.Sprintf( - "Could not read account firewall rule set %q: %q", - state.AccountID.ValueString(), + "Could not read team firewall rule set %q: %q", + state.TeamID.ValueString(), err.Error(), ), ) @@ -281,16 +281,16 @@ func (r *firewallTrafficRulesResource) Delete(ctx context.Context, req resource. return } - if r.accountLevel { + if r.teamLevel { _, err := r.data.client.AccountsAPI. - DeleteAccountFirewallRuleSet(ctx, state.AccountID.ValueString()). + DeleteAccountFirewallRuleSet(ctx, state.TeamID.ValueString()). Execute() if err != nil { resp.Diagnostics.AddError( - "Error deleting account firewall rule set", + "Error deleting team firewall rule set", fmt.Sprintf( - "Could not delete account firewall rule set %q: %q", - state.AccountID.ValueString(), + "Could not delete team firewall rule set %q: %q", + state.TeamID.ValueString(), err.Error(), ), ) @@ -316,8 +316,8 @@ func (r *firewallTrafficRulesResource) Delete(ctx context.Context, req resource. } func (r *firewallTrafficRulesResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) { - if r.accountLevel { - resource.ImportStatePassthroughID(ctx, path.Root("account_id"), req, resp) + if r.teamLevel { + resource.ImportStatePassthroughID(ctx, path.Root("team_id"), req, resp) } else { resource.ImportStatePassthroughID(ctx, path.Root("site_id"), req, resp) } @@ -331,17 +331,17 @@ func (r *firewallTrafficRulesResource) write(ctx context.Context, plan *firewall unpublished := r.serializeRuleSet(plan.Unpublished) createSiteFirewallConfig.Unpublished = &unpublished - if r.accountLevel { + if r.teamLevel { _, err := r.data.client.AccountsAPI. - UpdateAccountFirewallRuleSet(ctx, plan.AccountID.ValueString()). + UpdateAccountFirewallRuleSet(ctx, plan.TeamID.ValueString()). CreateSiteFirewallConfig(createSiteFirewallConfig). Execute() if err != nil { diagnostics.AddError( - "Error updating account firewall rule set", + "Error updating team firewall rule set", fmt.Sprintf( - "Could not update account firewall rule set %q: %q", - plan.AccountID.ValueString(), + "Could not update team firewall rule set %q: %q", + plan.TeamID.ValueString(), err.Error(), ), ) @@ -365,7 +365,7 @@ func (r *firewallTrafficRulesResource) write(ctx context.Context, plan *firewall ) return } - plan.AccountID = types.StringNull() + plan.TeamID = types.StringNull() } plan.LastUpdated = types.StringValue(time.Now().Format(time.RFC850)) } diff --git a/internal/provider/provider.go b/internal/provider/provider.go index 169522d..5cabbd1 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -149,10 +149,10 @@ func (p *NetlifyProvider) Resources(ctx context.Context) []func() resource.Resou func (p *NetlifyProvider) DataSources(ctx context.Context) []func() datasource.DataSource { return []func() datasource.DataSource{ - NewAccountDataSource, NewDnsZoneDataSource, NewSiteDataSource, NewSitesDataSource, + NewTeamDataSource, } } diff --git a/internal/provider/site_data_source.go b/internal/provider/site_data_source.go index b08d62b..89f4aeb 100644 --- a/internal/provider/site_data_source.go +++ b/internal/provider/site_data_source.go @@ -28,7 +28,7 @@ type siteDataSource struct { type siteModel struct { ID types.String `tfsdk:"id"` - AccountSlug types.String `tfsdk:"account_slug"` + TeamSlug types.String `tfsdk:"team_slug"` Name types.String `tfsdk:"name"` CustomDomain types.String `tfsdk:"custom_domain"` DomainAliases []types.String `tfsdk:"domain_aliases"` @@ -66,7 +66,7 @@ func (d *siteDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, r stringvalidator.AtLeastOneOf(path.MatchRoot("name")), }, }, - "account_slug": schema.StringAttribute{ + "team_slug": schema.StringAttribute{ Optional: true, Computed: true, }, @@ -74,7 +74,7 @@ func (d *siteDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, r Optional: true, Computed: true, Validators: []validator.String{ - stringvalidator.AlsoRequires(path.MatchRoot("account_slug")), + stringvalidator.AlsoRequires(path.MatchRoot("team_slug")), }, }, "custom_domain": schema.StringAttribute{ @@ -109,11 +109,11 @@ func (d *siteDataSource) Read(ctx context.Context, req datasource.ReadRequest, r } } else { sites, _, err := d.data.client.SitesAPI. - ListSitesForAccount(ctx, config.AccountSlug.ValueString()). + ListSitesForAccount(ctx, config.TeamSlug.ValueString()). Name(config.Name.ValueString()). Execute() if err != nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not list Netlify sites in account %q: %q", config.AccountSlug.ValueString(), err.Error())) + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not list Netlify sites in team %q: %q", config.TeamSlug.ValueString(), err.Error())) return } nameString := config.Name.ValueString() @@ -125,7 +125,7 @@ func (d *siteDataSource) Read(ctx context.Context, req datasource.ReadRequest, r } } if site == nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not find Netlify site with name %q in account %q", nameString, config.AccountSlug.ValueString())) + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not find Netlify site with name %q in team %q", nameString, config.TeamSlug.ValueString())) return } } @@ -144,7 +144,7 @@ func (d *siteDataSource) Read(ctx context.Context, req datasource.ReadRequest, r } config.ID = types.StringValue(site.Id) - config.AccountSlug = types.StringValue(site.AccountSlug) + config.TeamSlug = types.StringValue(site.AccountSlug) config.Name = types.StringValue(site.Name) config.CustomDomain = types.StringValue(site.CustomDomain) config.DomainAliases = make([]types.String, len(site.DomainAliases)) diff --git a/internal/provider/sites_data_source.go b/internal/provider/sites_data_source.go index 3858508..4303a9a 100644 --- a/internal/provider/sites_data_source.go +++ b/internal/provider/sites_data_source.go @@ -24,13 +24,13 @@ type sitesDataSource struct { } type sitesDataSourceModel struct { - AccountSlug types.String `tfsdk:"account_slug"` - Sites []sitesSiteModel `tfsdk:"sites"` + TeamSlug types.String `tfsdk:"team_slug"` + Sites []sitesSiteModel `tfsdk:"sites"` } type sitesSiteModel struct { ID types.String `tfsdk:"id"` - AccountSlug types.String `tfsdk:"account_slug"` + TeamSlug types.String `tfsdk:"team_slug"` Name types.String `tfsdk:"name"` CustomDomain types.String `tfsdk:"custom_domain"` DomainAliases []types.String `tfsdk:"domain_aliases"` @@ -60,7 +60,7 @@ func (d *sitesDataSource) Metadata(_ context.Context, req datasource.MetadataReq func (d *sitesDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, resp *datasource.SchemaResponse) { resp.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ - "account_slug": schema.StringAttribute{ + "team_slug": schema.StringAttribute{ Required: true, }, "sites": schema.ListNestedAttribute{ @@ -70,7 +70,7 @@ func (d *sitesDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, "id": schema.StringAttribute{ Computed: true, }, - "account_slug": schema.StringAttribute{ + "team_slug": schema.StringAttribute{ Computed: true, }, "name": schema.StringAttribute{ @@ -98,14 +98,14 @@ func (d *sitesDataSource) Read(ctx context.Context, req datasource.ReadRequest, } r := d.data.client.SitesAPI. - ListSitesForAccount(ctx, config.AccountSlug.ValueString()). + ListSitesForAccount(ctx, config.TeamSlug.ValueString()). PerPage(100) sites := make([]netlifyapi.Site, 0) var page int64 = 1 for { items, _, err := r.Page(page).Execute() if err != nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not list Netlify sites in account %q: %q", config.AccountSlug.ValueString(), err.Error())) + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not list Netlify sites in team %q: %q", config.TeamSlug.ValueString(), err.Error())) return } if len(items) == 0 { @@ -118,7 +118,7 @@ func (d *sitesDataSource) Read(ctx context.Context, req datasource.ReadRequest, for i, site := range sites { config.Sites[i] = sitesSiteModel{ ID: types.StringValue(site.Id), - AccountSlug: types.StringValue(site.AccountSlug), + TeamSlug: types.StringValue(site.AccountSlug), Name: types.StringValue(site.Name), CustomDomain: types.StringValue(site.CustomDomain), DomainAliases: make([]types.String, len(site.DomainAliases)), diff --git a/internal/provider/account_data_source.go b/internal/provider/team_data_source.go similarity index 65% rename from internal/provider/account_data_source.go rename to internal/provider/team_data_source.go index 9e18bc7..713c5d5 100644 --- a/internal/provider/account_data_source.go +++ b/internal/provider/team_data_source.go @@ -14,25 +14,25 @@ import ( ) var ( - _ datasource.DataSource = &accountDataSource{} - _ datasource.DataSourceWithConfigure = &accountDataSource{} + _ datasource.DataSource = &teamDataSource{} + _ datasource.DataSourceWithConfigure = &teamDataSource{} ) -func NewAccountDataSource() datasource.DataSource { - return &accountDataSource{} +func NewTeamDataSource() datasource.DataSource { + return &teamDataSource{} } -type accountDataSource struct { +type teamDataSource struct { data NetlifyProviderData } -type accountDataSourceModel struct { +type teamDataSourceModel struct { ID types.String `tfsdk:"id"` Slug types.String `tfsdk:"slug"` Name types.String `tfsdk:"name"` } -func (d *accountDataSource) Configure(_ context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) { +func (d *teamDataSource) Configure(_ context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) { if req.ProviderData == nil { return } @@ -49,11 +49,11 @@ func (d *accountDataSource) Configure(_ context.Context, req datasource.Configur d.data = data } -func (d *accountDataSource) Metadata(_ context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) { - resp.TypeName = req.ProviderTypeName + "_account" +func (d *teamDataSource) Metadata(_ context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) { + resp.TypeName = req.ProviderTypeName + "_team" } -func (d *accountDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, resp *datasource.SchemaResponse) { +func (d *teamDataSource) Schema(_ context.Context, _ datasource.SchemaRequest, resp *datasource.SchemaResponse) { resp.Schema = schema.Schema{ Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ @@ -74,8 +74,8 @@ func (d *accountDataSource) Schema(_ context.Context, _ datasource.SchemaRequest } } -func (d *accountDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) { - var config accountDataSourceModel +func (d *teamDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) { + var config teamDataSourceModel resp.Diagnostics.Append(req.Config.Get(ctx, &config)...) if resp.Diagnostics.HasError() { return @@ -86,14 +86,14 @@ func (d *accountDataSource) Read(ctx context.Context, req datasource.ReadRequest var err error account, _, err = d.data.client.AccountsAPI.GetAccount(ctx, config.ID.ValueString()).Execute() if err != nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not read Netlify account ID %q: %q", + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not read Netlify team ID %q: %q", config.ID.ValueString(), err.Error())) return } } else { accounts, _, err := d.data.client.AccountsAPI.ListAccountsForUser(ctx).Execute() if err != nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not list Netlify accounts: %q", err.Error())) + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not list Netlify teams: %q", err.Error())) return } slugString := config.Slug.ValueString() @@ -105,7 +105,7 @@ func (d *accountDataSource) Read(ctx context.Context, req datasource.ReadRequest } } if account == nil { - resp.Diagnostics.AddError("Error reading Netlify account", fmt.Sprintf("Could not find Netlify account with slug %q", slugString)) + resp.Diagnostics.AddError("Error reading Netlify team", fmt.Sprintf("Could not find Netlify team with slug %q", slugString)) return } }