# NOTE: This file is auto generated by OpenAPI Generator 7.12.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule Ory.Model.ProjectServices do
  @moduledoc """
  
  """

  @derive Jason.Encoder
  defstruct [
    :account_experience,
    :identity,
    :oauth2,
    :permission
  ]

  @type t :: %__MODULE__{
    :account_experience => Ory.Model.ProjectServiceAccountExperience.t | nil,
    :identity => Ory.Model.ProjectServiceIdentity.t | nil,
    :oauth2 => Ory.Model.ProjectServiceOAuth2.t | nil,
    :permission => Ory.Model.ProjectServicePermission.t | nil
  }

  alias Ory.Deserializer

  def decode(value) do
    value
     |> Deserializer.deserialize(:account_experience, :struct, Ory.Model.ProjectServiceAccountExperience)
     |> Deserializer.deserialize(:identity, :struct, Ory.Model.ProjectServiceIdentity)
     |> Deserializer.deserialize(:oauth2, :struct, Ory.Model.ProjectServiceOAuth2)
     |> Deserializer.deserialize(:permission, :struct, Ory.Model.ProjectServicePermission)
  end
end

