defmodule GitHub.RuleSuite do
@moduledoc """
Provides struct and type for a RuleSuite
"""
use GitHub.Encoder
@type t :: %__MODULE__{
__info__: map,
actor_id: integer | nil,
actor_name: String.t() | nil,
after_sha: String.t() | nil,
before_sha: String.t() | nil,
evaluation_result: String.t() | nil,
id: integer | nil,
pushed_at: DateTime.t() | nil,
ref: String.t() | nil,
repository_id: integer | nil,
repository_name: String.t() | nil,
result: String.t() | nil,
rule_evaluations: [GitHub.RuleSuiteRuleEvaluations.t()] | nil
}
defstruct [
:__info__,
:actor_id,
:actor_name,
:after_sha,
:before_sha,
:evaluation_result,
:id,
:pushed_at,
:ref,
:repository_id,
:repository_name,
:result,
:rule_evaluations
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:t) do
[
actor_id: {:union, [:integer, :null]},
actor_name: {:union, [{:string, :generic}, :null]},
after_sha: {:string, :generic},
before_sha: {:string, :generic},
evaluation_result: {:enum, ["pass", "fail"]},
id: :integer,
pushed_at: {:string, :date_time},
ref: {:string, :generic},
repository_id: :integer,
repository_name: {:string, :generic},
result: {:enum, ["pass", "fail", "bypass"]},
rule_evaluations: [{GitHub.RuleSuiteRuleEvaluations, :t}]
]
end
end