defmodule GitHub.Release do @moduledoc """ Provides struct and type for a Release """ use GitHub.Encoder @type t :: %__MODULE__{ __info__: map, assets: [GitHub.Release.Asset.t()], assets_url: String.t(), author: GitHub.User.simple(), body: String.t() | nil, body_html: String.t() | nil, body_text: String.t() | nil, created_at: DateTime.t(), discussion_url: String.t() | nil, draft: boolean, html_url: String.t(), id: integer, mentions_count: integer | nil, name: String.t() | nil, node_id: String.t(), prerelease: boolean, published_at: DateTime.t() | nil, reactions: GitHub.Reaction.Rollup.t() | nil, tag_name: String.t(), tarball_url: String.t() | nil, target_commitish: String.t(), upload_url: String.t(), url: String.t(), zipball_url: String.t() | nil } defstruct [ :__info__, :assets, :assets_url, :author, :body, :body_html, :body_text, :created_at, :discussion_url, :draft, :html_url, :id, :mentions_count, :name, :node_id, :prerelease, :published_at, :reactions, :tag_name, :tarball_url, :target_commitish, :upload_url, :url, :zipball_url ] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:t) do [ assets: [{GitHub.Release.Asset, :t}], assets_url: {:string, :uri}, author: {GitHub.User, :simple}, body: {:union, [{:string, :generic}, :null]}, body_html: {:string, :generic}, body_text: {:string, :generic}, created_at: {:string, :date_time}, discussion_url: {:string, :uri}, draft: :boolean, html_url: {:string, :uri}, id: :integer, mentions_count: :integer, name: {:union, [{:string, :generic}, :null]}, node_id: {:string, :generic}, prerelease: :boolean, published_at: {:union, [{:string, :date_time}, :null]}, reactions: {GitHub.Reaction.Rollup, :t}, tag_name: {:string, :generic}, tarball_url: {:union, [{:string, :uri}, :null]}, target_commitish: {:string, :generic}, upload_url: {:string, :generic}, url: {:string, :uri}, zipball_url: {:union, [{:string, :uri}, :null]} ] end end