Module: Edoxen::Enums

Defined in:
lib/edoxen/enums.rb,
sig/edoxen.rbs

Overview

Single source of truth for every enum used by the Edoxen information model.

Mirrors ../edoxen-model/models/*.lutaml, deduped. Both:

* Ruby model attribute declarations (`attribute :type, :string, values: Enums::ACTION_TYPE`)
* JSON-Schema (`schema/edoxen.yaml`)

reference these constants.

The schema <-> Ruby enum-sync spec asserts the YAML schema's enum arrays equal these arrays. If you change a constant here, change the schema in the same PR.

Constant Summary collapse

ACTION_TYPE =

Returns:

  • (Array[String])
%w[
  adopts thanks approves decides declares asks invites
  resolves confirms welcomes recommends requests congratulates
  instructs urges appoints calls-upon encourages affirms elects
  authorizes charges states remarks judges sanctions abrogates empowers
].freeze
CONSIDERATION_TYPE =

Returns:

  • (Array[String])
%w[
  having noting recognizing acknowledging recalling reaffirming
  considering taking-into-account pursuant-to bearing-in-mind
  emphasizing concerned accepts observing referring acting empowers
].freeze
DECISION_KIND =

DecisionKind — what kind of formal outcome this is. resolution is one value; the same formal concept has many names across bodies (order, ruling, determination, finding, opinion, etc.).

Returns:

  • (Array[String])
%w[
  resolution order ruling determination
  recommendation statement finding opinion other
].freeze
DECISION_KIND_CANONICAL =

DecisionKindCanonical — the short abstract set (v2.1, TODO.refactor/46). Bodies extend via body_type: String + per-dataset body_vocabulary[] on DecisionMetadata. other is a temporary escape while the vocabulary stabilises; v3.0 removes it.

Cap: 5 canonical values (hard limit per the v2.1 design review).

%w[decision recommendation statement finding other].freeze
DECISION_STATUS =

DecisionStatus — lifecycle state machine.

Returns:

  • (Array[String])
%w[
  draft proposed under_consideration
  decided negatived withdrawn deferred
].freeze
DECISION_RELATION_TYPE =

Returns:

  • (Array[String])
%w[
  annex_of has_annex updates refines replaces considers cites
].freeze
DECISION_DATE_TYPE =

Returns:

  • (Array[String])
%w[
  adoption drafted discussed proposed decided negatived withdrawn published effective
].freeze
APPROVAL_TYPE =

Returns:

  • (Array[String])
%w[affirmative negative].freeze
APPROVAL_DEGREE =

Returns:

  • (Array[String])
%w[unanimous majority minority].freeze
URL_KIND =

Returns:

  • (Array[String])
%w[access report].freeze
MEETING_TYPE =

--- Meeting/Agenda side ---------------------------------------------- Mirrors edoxen-model/models/meeting,agenda,..._*.lutaml. schema/meeting.yaml references these via $defs/.enum.

Returns:

  • (Array[String])
%w[
  plenary working_group task_group ad_hoc joint general_assembly
  committee subcommittee conference workshop seminar webinar hearing
  markup board_meeting annual_general_meeting other
].freeze
MEETING_TYPE_CANONICAL =

MeetingTypeCanonical — the short abstract set (v2.1, TODO.refactor/46). Bodies extend via body_type: String + per-dataset body_vocabulary[] on MeetingCollectionMetadata.

Cap: 4 canonical values (no other — bodies pick the closest fit).

%w[plenary governing working advisory].freeze
MEETING_STATUS =

Returns:

  • (Array[String])
%w[upcoming completed cancelled].freeze
AGENDA_STATUS =

Returns:

  • (Array[String])
%w[draft final amended cancelled superseded].freeze
AGENDA_ITEM_KIND =

Returns:

  • (Array[String])
%w[numbered unnumbered header opening closing aob].freeze
AGENDA_ITEM_OUTCOME =

Returns:

  • (Array[String])
%w[discussed resolved deferred adopted withdrawn carried negatived].freeze
HOST_TYPE =

Returns:

  • (Array[String])
%w[national_body liaison associate organizer].freeze
MEETING_RELATION_TYPE =

Returns:

  • (Array[String])
%w[
  continues_from continues_to joint_with supersedes superseded_by rescheduled_from rescheduled_to
  parent_of child_of sibling_of depends_on
  finish_to_start finish_to_finish start_to_start start_to_finish
].freeze
SOURCE_URL_KIND =

Returns:

  • (Array[String])
%w[
  agenda_pdf minutes_pdf decisions_pdf report_pdf register_url landing_page
].freeze
PARTICIPATION_STATUS =

Returns:

  • (Array[String])
%w[present absent apologies observer excused].freeze
VOTE_TYPE =

Returns:

  • (Array[String])
%w[
  affirmative negative abstain absent not_applicable
].freeze
VENUE_KIND =

--- New in v2.0 (broadened scope) -----------------------------------

Returns:

  • (Array[String])
%w[physical virtual].freeze
VIRTUAL_FEATURE =

Returns:

  • (Array[String])
%w[audio video chat phone screen feed].freeze
VISIBILITY =

Returns:

  • (Array[String])
%w[public private confidential].freeze
ATTENDANCE_ROLE =

Returns:

  • (Array[String])
%w[chair required optional non_participant].freeze
ATTENDANCE_RESPONSE =

iCalendar PARTSTAT, plain English (no jargon).

Returns:

  • (Array[String])
%w[
  pending confirmed declined tentative delegated
].freeze
COMPONENT_KIND =

Returns:

  • (Array[String])
%w[
  track session debate breakout bof
  plenary_session working_group_session committee_of_the_whole
  keynote address statement question_time
  opening closing break reception registration networking other
].freeze
COMPONENT_KIND_CANONICAL =

ComponentKindCanonical — the short abstract set (v2.1, TODO.refactor/46). other is a temporary escape while the vocabulary stabilises.

Cap: 5 canonical values.

%w[deliberative working ceremonial break other].freeze
MOTION_STATUS =

Returns:

  • (Array[String])
%w[
  introduced seconded debating question_put voting
  carried negatived withdrawn lapsed
].freeze
MOTION_TERMINAL =

Terminal MotionStatus values — Motion#pending? is the complement. Kept as a separate constant (not derived) because the partition is semantic, not lexical; the spec in motion_spec.rb asserts the union equals MOTION_STATUS and the intersection is empty (MECE).

%w[carried negatived withdrawn lapsed].freeze
VOTING_STATUS =

Returns:

  • (Array[String])
%w[called in_progress decided withdrawn deferred].freeze
VOTING_METHOD =

Returns:

  • (Array[String])
%w[
  voice division show_of_hands roll_call electronic
  secret_ballot unanimous_consent consensus
].freeze
VOTING_OUTCOME =

Returns:

  • (Array[String])
%w[passed negatived tied withdrawn].freeze
TOPIC_STATUS =

Returns:

  • (Array[String])
%w[open under_discussion decided deferred withdrawn].freeze
OFFICER_ROLE =

Returns:

  • (Array[String])
%w[
  chair vice_chair deputy_chair secretary treasurer
  parliamentarian presiding_officer sergeant_at_arms other
].freeze
RECURRENCE_FREQ =

Returns:

  • (Array[String])
%w[
  secondly minutely hourly daily weekly monthly yearly
].freeze
CONTACT_METHOD_KIND =

Polymorphic communication channel. OCP: adding a new kind does not change the model — only this enum (or use other + extensions).

%w[
  phone mobile fax email url mail pager message other
].freeze
CONTACT_IDENTIFIER_KIND =

Polymorphic external identifier for a Contact (ORCID, ISNI, Wikidata, ROR, etc.). OCP: adding a new scheme only extends this enum (or use other + extensions).

%w[
  orcid isni wikidata ror ringgold github other
].freeze