@@ -3,7 +3,10 @@ package prompt
3
3
import (
4
4
"context"
5
5
"encoding/json"
6
+ "io"
7
+ "net/http"
6
8
"strings"
9
+ "time"
7
10
8
11
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
9
12
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -15,6 +18,44 @@ import (
15
18
internalSchema "github.com/auth0/terraform-provider-auth0/internal/schema"
16
19
)
17
20
21
+ const languagesURL = "https://cdn.auth0.com/ulp/react-components/development/languages/available-languages.json"
22
+
23
+ func fetchLanguages () []string {
24
+ fallbackAvailableLanguages := []string {
25
+ "ar" , "bg" , "bs" , "ca-ES" , "cs" , "cy" , "da" , "de" , "el" , "en" , "es" , "et" , "eu-ES" , "fi" , "fr" , "fr-CA" , "fr-FR" , "gl-ES" , "he" , "hi" , "hr" ,
26
+ "hu" , "id" , "is" , "it" , "ja" , "ko" , "lt" , "lv" , "nb" , "nl" , "nn" , "no" , "pl" , "pt" , "pt-BR" , "pt-PT" , "ro" , "ru" , "sk" ,
27
+ "sl" , "sr" , "sv" , "th" , "tr" , "uk" , "vi" , "zh-CN" , "zh-TW" ,
28
+ }
29
+
30
+ client := http.Client {
31
+ Timeout : 10 * time .Second , // Set a timeout for the HTTP request.
32
+ }
33
+
34
+ resp , err := client .Get (languagesURL )
35
+ if err != nil {
36
+ return fallbackAvailableLanguages
37
+ }
38
+ defer func (Body io.ReadCloser ) {
39
+ err = Body .Close ()
40
+ }(resp .Body )
41
+
42
+ if resp .StatusCode != http .StatusOK {
43
+ return fallbackAvailableLanguages
44
+ }
45
+
46
+ var retrievedLanguages []string
47
+ decoder := json .NewDecoder (resp .Body )
48
+ if err := decoder .Decode (& retrievedLanguages ); err != nil {
49
+ return fallbackAvailableLanguages
50
+ }
51
+
52
+ if len (retrievedLanguages ) == 0 {
53
+ return fallbackAvailableLanguages
54
+ }
55
+
56
+ return retrievedLanguages
57
+ }
58
+
18
59
var (
19
60
availablePrompts = []string {
20
61
"captcha" , "common" , "consent" , "custom-form" , "customized-consent" , "device-flow" , "email-otp-challenge" ,
23
64
"mfa-sms" , "mfa-voice" , "mfa-webauthn" , "organizations" , "passkeys" , "phone-identifier-challenge" ,
24
65
"phone-identifier-enrollment" , "reset-password" , "signup" , "signup-id" , "signup-password" , "status" ,
25
66
}
26
- availableLanguages = []string {
27
- "ar" , "bg" , "bs" , "ca-ES" , "cs" , "cy" , "da" , "de" , "el" , "en" , "es" , "et" , "eu-ES" , "fi" , "fr" , "fr-CA" , "fr-FR" , "gl-ES" , "he" , "hi" , "hr" ,
28
- "hu" , "id" , "is" , "it" , "ja" , "ko" , "lt" , "lv" , "nb" , "nl" , "nn" , "no" , "pl" , "pt" , "pt-BR" , "pt-PT" , "ro" , "ru" , "sk" ,
29
- "sl" , "sr" , "sv" , "th" , "tr" , "uk" , "vi" , "zh-CN" , "zh-TW" ,
30
- }
67
+
68
+ availableLanguages = fetchLanguages ()
31
69
)
32
70
33
71
// NewCustomTextResource will return a new auth0_prompt_custom_text resource.
0 commit comments