defmodule Auth0.Entity.AttackProtectionSuspiciousIpThrottling do @moduledoc """ Documentation for entity of AttackProtectionSuspiciousIpThrottling. """ defmodule Stage do @moduledoc """ Documentation for entity of AttackProtectionSuspiciousIpThrottling Stage. """ defmodule PreLogin do @moduledoc """ Documentation for entity of AttackProtectionSuspiciousIpThrottling PreLogin. """ alias Auth0.Common.Util defstruct max_attempts: nil, rate: nil @type t :: %__MODULE__{ max_attempts: integer, rate: integer } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule PreUserRegistration do @moduledoc """ Documentation for entity of AttackProtectionSuspiciousIpThrottling PreUserRegistration. """ alias Auth0.Common.Util defstruct max_attempts: nil, rate: nil @type t :: %__MODULE__{ max_attempts: integer, rate: integer } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end alias Auth0.Common.Util defstruct "pre-login": nil, "pre-user-registration": nil @type t :: %__MODULE__{ "pre-login": PreLogin.t(), "pre-user-registration": PreUserRegistration.t() } @spec from(map) :: __MODULE__.t() def from(value) do response = value |> Util.to_struct(__MODULE__) %{ response | "pre-login": if(response."pre-login" |> is_map, do: response."pre-login" |> PreLogin.from(), else: nil ), "pre-user-registration": if(response."pre-user-registration" |> is_map, do: response."pre-user-registration" |> PreUserRegistration.from(), else: nil ) } end end alias Auth0.Common.Util defstruct enabled: nil, shields: nil, allowlist: nil, stage: nil @type t :: %__MODULE__{ enabled: boolean, shields: list(String.t()), allowlist: list(String.t()), stage: Stage.t() } @spec from(map) :: __MODULE__.t() def from(value) do attack_protection_suspicious_ip_throttling = value |> Util.to_struct(__MODULE__) %{ attack_protection_suspicious_ip_throttling | stage: if(attack_protection_suspicious_ip_throttling.stage |> is_map, do: attack_protection_suspicious_ip_throttling.stage |> Stage.from(), else: nil ) } end end