diff --git a/management/email_provider.go b/management/email_provider.go index 63034e25..e798fd0c 100644 --- a/management/email_provider.go +++ b/management/email_provider.go @@ -30,6 +30,9 @@ const ( // EmailProviderMS365 constant. EmailProviderMS365 = "ms365" + + // EmailProviderCustom constant. + EmailProviderCustom = "custom" ) // EmailProvider is used to configure Email Providers. @@ -118,6 +121,11 @@ type EmailProviderCredentialsMS365 struct { ClientSecret *string `json:"clientSecret,omitempty"` } +// EmailProviderCredentialsCustom represent the +// credentials required to use the custom provider. +type EmailProviderCredentialsCustom struct { +} + // EmailProviderSettingsMandrill are the provider // specific settings used by the mandrill provider. type EmailProviderSettingsMandrill struct { @@ -226,6 +234,10 @@ func (ep *EmailProvider) UnmarshalJSON(b []byte) error { credentials = &EmailProviderCredentialsMS365{} // No settings for ms365. settings = nil + case EmailProviderCustom: + credentials = &EmailProviderCredentialsCustom{} + // No settings for custom. + settings = nil case "": credentials = nil settings = nil diff --git a/management/email_provider_test.go b/management/email_provider_test.go index d10c7024..140add0e 100644 --- a/management/email_provider_test.go +++ b/management/email_provider_test.go @@ -146,6 +146,16 @@ func TestEmailProviderJSON(t *testing.T) { }, json: `{"name":"ms365","enabled":true,"default_from_address":"accounts@example.com","credentials":{"tenantId":"ms365_tenant_id","clientId":"ms365_client_id","clientSecret":"ms365_client_secret"}}`, }, + { + name: "it can %s a custom email provider", + emailProvider: &EmailProvider{ + Name: auth0.String("custom"), + Enabled: auth0.Bool(true), + DefaultFromAddress: auth0.String("accounts@example.com"), + Credentials: &EmailProviderCredentialsCustom{}, + }, + json: `{"name":"custom","enabled":true,"default_from_address":"accounts@example.com","credentials":{}}`, + }, } for _, testCase := range jsonTestCases { diff --git a/management/management.gen.go b/management/management.gen.go index 9125f4e4..99685f73 100644 --- a/management/management.gen.go +++ b/management/management.gen.go @@ -6420,6 +6420,11 @@ func (e *EmailProviderCredentialsAzureCS) String() string { return Stringify(e) } +// String returns a string representation of EmailProviderCredentialsCustom. +func (e *EmailProviderCredentialsCustom) String() string { + return Stringify(e) +} + // GetAPIKey returns the APIKey field if it's non-nil, zero value otherwise. func (e *EmailProviderCredentialsMailgun) GetAPIKey() string { if e == nil || e.APIKey == nil { diff --git a/management/management.gen_test.go b/management/management.gen_test.go index 253b58f6..54e4832d 100644 --- a/management/management.gen_test.go +++ b/management/management.gen_test.go @@ -7948,6 +7948,14 @@ func TestEmailProviderCredentialsAzureCS_String(t *testing.T) { } } +func TestEmailProviderCredentialsCustom_String(t *testing.T) { + var rawJSON json.RawMessage + v := &EmailProviderCredentialsCustom{} + if err := json.Unmarshal([]byte(v.String()), &rawJSON); err != nil { + t.Errorf("failed to produce a valid json") + } +} + func TestEmailProviderCredentialsMailgun_GetAPIKey(tt *testing.T) { var zeroValue string e := &EmailProviderCredentialsMailgun{APIKey: &zeroValue}