defmodule Auth0.Management.AttackProtection do
@moduledoc """
Documentation for Auth0 Management API of AttackProAuth0.Management.AttackProtection.
## endpoint
- /api/v2/attack-protection/breached-password-detection
- /api/v2/attack-protection/brute-force-protection
- /api/v2/attack-protection/suspicious-ip-throttling
"""
alias Auth0.Config
alias Auth0.Entity
alias Auth0.Management.AttackProtection.BreachedPasswordDetection
alias Auth0.Management.AttackProtection.BruteForceProtection
alias Auth0.Management.AttackProtection.SuspiciousIpThrottling
@type config :: Config.t()
@type response_body :: String.t()
@type error :: {:error, integer, term} | {:error, term}
@endpoint_breached_password_detection "/api/v2/attack-protection/breached-password-detection"
@endpoint_brute_force_protection "/api/v2/attack-protection/brute-force-protection"
@endpoint_suspicious_ip_throttling "/api/v2/attack-protection/suspicious-ip-throttling"
@doc """
Get breached password detection settings.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/get_breached_password_detection
"""
@spec get_breached_password_detection(config) ::
{:ok, Entity.AttackProtectionBreachedPasswordDetection.t(), response_body} | error
def get_breached_password_detection(%Config{} = config) do
BreachedPasswordDetection.Get.execute(@endpoint_breached_password_detection, config)
end
@doc """
Update breached password detection settings.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/patch_breached_password_detection
"""
@spec update_breached_password_detection(
BreachedPasswordDetection.Patch.Params.t() | map,
config
) ::
{:ok, Entity.AttackProtectionBreachedPasswordDetection.t(), response_body} | error
def update_breached_password_detection(
%{} = params,
%Config{} = config
) do
BreachedPasswordDetection.Patch.execute(@endpoint_breached_password_detection, params, config)
end
@doc """
Get the brute force configuration.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/get_brute_force_protection
"""
@spec get_brute_force_protection(config) ::
{:ok, Entity.AttackProtectionBruteForceProtection.t(), response_body} | error
def get_brute_force_protection(%Config{} = config) do
BruteForceProtection.Get.execute(@endpoint_brute_force_protection, config)
end
@doc """
Update the brute force configuration.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/patch_brute_force_protection
"""
@spec update_brute_force_protection(BruteForceProtection.Patch.Params.t() | map, config) ::
{:ok, Entity.AttackProtectionBruteForceProtection.t(), response_body} | error
def update_brute_force_protection(
%{} = params,
%Config{} = config
) do
BruteForceProtection.Patch.execute(@endpoint_brute_force_protection, params, config)
end
@doc """
Get the suspicious IP throttling configuration.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/get_suspicious_ip_throttling
"""
@spec get_suspicious_ip_throttling(config) ::
{:ok, Entity.AttackProtectionSuspiciousIpThrottling.t(), response_body} | error
def get_suspicious_ip_throttling(%Config{} = config) do
SuspiciousIpThrottling.Get.execute(@endpoint_suspicious_ip_throttling, config)
end
@doc """
Update the suspicious IP throttling configuration.
## see
https://auth0.com/docs/api/management/v2/#!/Attack_Protection/patch_suspicious_ip_throttling
"""
@spec update_suspicious_ip_throttling(SuspiciousIpThrottling.Patch.Params.t() | map, config) ::
{:ok, Entity.AttackProtectionSuspiciousIpThrottling.t(), response_body} | error
def update_suspicious_ip_throttling(
%{} = params,
%Config{} = config
) do
SuspiciousIpThrottling.Patch.execute(@endpoint_suspicious_ip_throttling, params, config)
end
end