diff --git a/docs/auth0_terraform_generate.md b/docs/auth0_terraform_generate.md index 12cdbc652..e6a05c337 100644 --- a/docs/auth0_terraform_generate.md +++ b/docs/auth0_terraform_generate.md @@ -28,7 +28,7 @@ auth0 terraform generate [flags] ``` --force Skip confirmation. -o, --output-dir string Output directory for the generated Terraform config files. If not provided, the files will be saved in the current working directory. (default "./") - -r, --resources strings Resource types to generate Terraform config for. If not provided, config files for all available resources will be generated. (default [auth0_action,auth0_branding,auth0_client,auth0_client_grant,auth0_connection,auth0_custom_domain,auth0_organization,auth0_pages,auth0_role,auth0_tenant]) + -r, --resources strings Resource types to generate Terraform config for. If not provided, config files for all available resources will be generated. (default [auth0_action,auth0_attack_protection,auth0_branding,auth0_client,auth0_client_grant,auth0_connection,auth0_custom_domain,auth0_organization,auth0_pages,auth0_role,auth0_tenant]) ``` diff --git a/internal/cli/terraform.go b/internal/cli/terraform.go index db04093dd..461bc7556 100644 --- a/internal/cli/terraform.go +++ b/internal/cli/terraform.go @@ -57,6 +57,8 @@ func (i *terraformInputs) parseResourceFetchers(api *auth0.API) ([]resourceDataF switch resource { case "auth0_action": fetchers = append(fetchers, &actionResourceFetcher{api}) + case "auth0_attack_protection": + fetchers = append(fetchers, &attackProtectionResourceFetcher{}) case "auth0_branding": fetchers = append(fetchers, &brandingResourceFetcher{}) case "auth0_client": diff --git a/internal/cli/terraform_fetcher.go b/internal/cli/terraform_fetcher.go index ef3d02aa5..577f30036 100644 --- a/internal/cli/terraform_fetcher.go +++ b/internal/cli/terraform_fetcher.go @@ -10,7 +10,7 @@ import ( "github.com/auth0/auth0-cli/internal/auth0" ) -var defaultResources = []string{"auth0_action", "auth0_branding", "auth0_client", "auth0_client_grant", "auth0_connection", "auth0_custom_domain", "auth0_organization", "auth0_pages", "auth0_role", "auth0_tenant"} +var defaultResources = []string{"auth0_action", "auth0_attack_protection", "auth0_branding", "auth0_client", "auth0_client_grant", "auth0_connection", "auth0_custom_domain", "auth0_organization", "auth0_pages", "auth0_role", "auth0_tenant"} type ( importDataList []importDataItem @@ -30,6 +30,8 @@ type ( api *auth0.API } + attackProtectionResourceFetcher struct{} + brandingResourceFetcher struct{} clientResourceFetcher struct { api *auth0.API @@ -59,6 +61,15 @@ type ( tenantResourceFetcher struct{} ) +func (f *attackProtectionResourceFetcher) FetchData(_ context.Context) (importDataList, error) { + return []importDataItem{ + { + ResourceName: "auth0_attack_protection.attack_protection", + ImportID: uuid.NewString(), + }, + }, nil +} + func (f *brandingResourceFetcher) FetchData(_ context.Context) (importDataList, error) { return []importDataItem{ { diff --git a/internal/cli/terraform_fetcher_test.go b/internal/cli/terraform_fetcher_test.go index f0e1d543c..8a60ca3e9 100644 --- a/internal/cli/terraform_fetcher_test.go +++ b/internal/cli/terraform_fetcher_test.go @@ -141,6 +141,18 @@ func TestActionResourceFetcher_FetchData(t *testing.T) { }) } +func TestAttackProtectionResourceFetcher_FetchData(t *testing.T) { + t.Run("it successfully generates attack protection import data", func(t *testing.T) { + fetcher := attackProtectionResourceFetcher{} + + data, err := fetcher.FetchData(context.Background()) + assert.NoError(t, err) + assert.Len(t, data, 1) + assert.Equal(t, data[0].ResourceName, "auth0_attack_protection.attack_protection") + assert.Greater(t, len(data[0].ImportID), 0) + }) +} + func TestBrandingResourceFetcher_FetchData(t *testing.T) { t.Run("it successfully generates branding import data", func(t *testing.T) { fetcher := brandingResourceFetcher{}