defmodule Auth0.Entity.Client do @moduledoc false defmodule JwtConfiguration do @moduledoc false alias Auth0.Common.Util defstruct lifetime_in_seconds: nil, secret_encoded: nil, scopes: nil, alg: nil @type t :: %__MODULE__{ lifetime_in_seconds: integer, secret_encoded: boolean, scopes: map, alg: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule EncryptionKey do @moduledoc false alias Auth0.Common.Util defstruct pub: nil, cert: nil, subject: nil @type t :: %__MODULE__{ pub: String.t(), cert: String.t(), subject: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule Addons do @moduledoc false alias Auth0.Common.Util defstruct aws: nil, azure_blob: nil, azure_sb: nil, rms: nil, mscrm: nil, slack: nil, sentry: nil, box: nil, cloudbees: nil, concur: nil, dropbox: nil, echosign: nil, egnyte: nil, firebase: nil, newrelic: nil, office365: nil, salesforce: nil, salesforce_api: nil, salesforce_sandbox_api: nil, samlp: nil, layer: nil, sap_api: nil, sharepoint: nil, springcm: nil, wams: nil, wsfed: nil, zendesk: nil, zoom: nil, sso_integration: nil @type t :: %__MODULE__{ aws: map, azure_blob: map, azure_sb: map, rms: map, mscrm: map, slack: map, sentry: map, box: map, cloudbees: map, concur: map, dropbox: map, echosign: map, egnyte: map, firebase: map, newrelic: map, office365: map, salesforce: map, salesforce_api: map, salesforce_sandbox_api: map, samlp: map, layer: map, sap_api: map, sharepoint: map, springcm: map, wams: map, wsfed: map, zendesk: map, zoom: map, sso_integration: map } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule Mobile do @moduledoc false defmodule Android do @moduledoc false alias Auth0.Common.Util defstruct app_package_name: nil, sha256_cert_fingerprints: nil @type t :: %__MODULE__{ app_package_name: String.t(), sha256_cert_fingerprints: list(String.t()) } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule Ios do @moduledoc false alias Auth0.Common.Util defstruct team_id: nil, app_bundle_identifier: nil @type t :: %__MODULE__{ team_id: String.t(), app_bundle_identifier: list(String.t()) } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end alias Auth0.Common.Util defstruct android: nil, ios: nil @type t :: %__MODULE__{ android: Android.t(), ios: Ios.t() } @spec from(map) :: __MODULE__.t() def from(value) do mobile = value |> Util.to_struct(__MODULE__) %{ mobile | android: if(mobile.android |> is_map, do: mobile.android |> Android.from(), else: nil ), ios: if(mobile.ios |> is_map, do: mobile.ios |> Ios.from(), else: nil ) } end end defmodule NativeSocialLogin do @moduledoc false alias Auth0.Common.Util defstruct apple: nil, facebook: nil @type t :: %__MODULE__{ apple: map, facebook: map } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule RefreshToken do @moduledoc false alias Auth0.Common.Util defstruct rotation_type: nil, expiration_type: nil, leeway: nil, token_lifetime: nil, infinite_token_lifetime: nil, idle_token_lifetime: nil, infinite_idle_token_lifetime: nil @type t :: %__MODULE__{ rotation_type: String.t(), expiration_type: String.t(), leeway: integer, token_lifetime: integer, infinite_token_lifetime: false, idle_token_lifetime: integer, infinite_idle_token_lifetime: integer } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end alias Auth0.Common.Util defstruct client_id: nil, tenant: nil, name: nil, description: nil, global: nil, client_secret: nil, app_type: nil, logo_uri: nil, is_first_party: nil, oidc_conformant: nil, callbacks: nil, allowed_origins: nil, web_origins: nil, client_aliases: nil, allowed_clients: nil, allowed_logout_urls: nil, grant_types: nil, jwt_configuration: nil, signing_keys: nil, encryption_key: nil, sso: nil, sso_disabled: nil, cross_origin_auth: nil, cross_origin_loc: nil, custom_login_page_on: nil, custom_login_page: nil, custom_login_page_preview: nil, form_template: nil, addons: nil, token_endpoint_auth_method: nil, client_metadata: nil, mobile: nil, initiate_login_uri: nil, native_social_login: nil, refresh_token: nil, organization_usage: nil, organization_require_behavior: nil @type t :: %__MODULE__{ client_id: String.t(), tenant: String.t(), name: String.t(), description: String.t(), global: boolean, client_secret: String.t(), app_type: String.t(), logo_uri: String.t(), is_first_party: boolean, oidc_conformant: boolean, callbacks: list(String.t()), allowed_origins: list(String.t()), web_origins: list(String.t()), client_aliases: list(String.t()), allowed_clients: list(String.t()), allowed_logout_urls: list(String.t()), grant_types: list(String.t()), jwt_configuration: JwtConfiguration.t(), signing_keys: list(map), encryption_key: EncryptionKey.t(), sso: boolean, sso_disabled: boolean, cross_origin_auth: boolean, cross_origin_loc: String.t(), custom_login_page_on: boolean, custom_login_page: String.t(), custom_login_page_preview: String.t(), form_template: String.t(), addons: Addons.t(), token_endpoint_auth_method: String.t(), client_metadata: map, mobile: Mobile.t(), initiate_login_uri: String.t(), native_social_login: NativeSocialLogin.t(), refresh_token: RefreshToken.t(), organization_usage: String.t(), organization_require_behavior: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do client = value |> Util.to_struct(__MODULE__) %{ client | jwt_configuration: if(client.jwt_configuration |> is_map, do: client.jwt_configuration |> JwtConfiguration.from(), else: nil ), encryption_key: if(client.encryption_key |> is_map, do: client.encryption_key |> EncryptionKey.from(), else: nil ), addons: if(client.addons |> is_map, do: client.addons |> Addons.from(), else: nil ), mobile: if(client.mobile |> is_map, do: client.mobile |> Mobile.from(), else: nil ), native_social_login: if(client.native_social_login |> is_map, do: client.native_social_login |> NativeSocialLogin.from(), else: nil ), refresh_token: if(client.refresh_token |> is_map, do: client.refresh_token |> RefreshToken.from(), else: nil ) } end end