defmodule GitHub.GpgKey do @moduledoc """ Provides struct and type for a GpgKey """ use GitHub.Encoder @type t :: %__MODULE__{ __info__: map, can_certify: boolean, can_encrypt_comms: boolean, can_encrypt_storage: boolean, can_sign: boolean, created_at: DateTime.t(), emails: [GitHub.GpgKeyEmails.t()], expires_at: DateTime.t() | nil, id: integer, key_id: String.t(), name: String.t() | nil, primary_key_id: integer | nil, public_key: String.t(), raw_key: String.t() | nil, revoked: boolean, subkeys: [GitHub.GpgKeySubkeys.t()] } defstruct [ :__info__, :can_certify, :can_encrypt_comms, :can_encrypt_storage, :can_sign, :created_at, :emails, :expires_at, :id, :key_id, :name, :primary_key_id, :public_key, :raw_key, :revoked, :subkeys ] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:t) do [ can_certify: :boolean, can_encrypt_comms: :boolean, can_encrypt_storage: :boolean, can_sign: :boolean, created_at: {:string, :date_time}, emails: [{GitHub.GpgKeyEmails, :t}], expires_at: {:union, [{:string, :date_time}, :null]}, id: :integer, key_id: {:string, :generic}, name: {:union, [{:string, :generic}, :null]}, primary_key_id: {:union, [:integer, :null]}, public_key: {:string, :generic}, raw_key: {:union, [{:string, :generic}, :null]}, revoked: :boolean, subkeys: [{GitHub.GpgKeySubkeys, :t}] ] end end