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 =
%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 =
%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.
resolutionis one value; the same formal concept has many names across bodies (order, ruling, determination, finding, opinion, etc.). %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-datasetbody_vocabulary[]on DecisionMetadata.otheris 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.
%w[ draft proposed under_consideration decided negatived withdrawn deferred ].freeze
- DECISION_RELATION_TYPE =
%w[ annex_of has_annex updates refines replaces considers cites ].freeze
- DECISION_DATE_TYPE =
%w[ adoption drafted discussed proposed decided negatived withdrawn published effective ].freeze
- APPROVAL_TYPE =
%w[affirmative negative].freeze
- APPROVAL_DEGREE =
%w[unanimous majority minority].freeze
- URL_KIND =
%w[access report].freeze
- MEETING_TYPE =
--- Meeting/Agenda side ---------------------------------------------- Mirrors edoxen-model/models/meeting,agenda,..._*.lutaml. schema/meeting.yaml references these via $defs/
.enum. %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-datasetbody_vocabulary[]on MeetingCollectionMetadata.Cap: 4 canonical values (no
other— bodies pick the closest fit). %w[plenary governing working advisory].freeze
- MEETING_STATUS =
%w[upcoming completed cancelled].freeze
- AGENDA_STATUS =
%w[draft final amended cancelled superseded].freeze
- AGENDA_ITEM_KIND =
%w[numbered unnumbered header opening closing aob].freeze
- AGENDA_ITEM_OUTCOME =
%w[discussed resolved deferred adopted withdrawn carried negatived].freeze
- HOST_TYPE =
%w[national_body liaison associate organizer].freeze
- MEETING_RELATION_TYPE =
%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 =
%w[ agenda_pdf minutes_pdf decisions_pdf report_pdf register_url landing_page ].freeze
- PARTICIPATION_STATUS =
%w[present absent apologies observer excused].freeze
- VOTE_TYPE =
%w[ affirmative negative abstain absent not_applicable ].freeze
- VENUE_KIND =
--- New in v2.0 (broadened scope) -----------------------------------
%w[physical virtual].freeze
- VIRTUAL_FEATURE =
%w[audio video chat phone screen feed].freeze
- VISIBILITY =
%w[public private confidential].freeze
- ATTENDANCE_ROLE =
%w[chair required optional non_participant].freeze
- ATTENDANCE_RESPONSE =
iCalendar PARTSTAT, plain English (no jargon).
%w[ pending confirmed declined tentative delegated ].freeze
- COMPONENT_KIND =
%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).
otheris a temporary escape while the vocabulary stabilises.Cap: 5 canonical values.
%w[deliberative working ceremonial break other].freeze
- MOTION_STATUS =
%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 =
%w[called in_progress decided withdrawn deferred].freeze
- VOTING_METHOD =
%w[ voice division show_of_hands roll_call electronic secret_ballot unanimous_consent consensus ].freeze
- VOTING_OUTCOME =
%w[passed negatived tied withdrawn].freeze
- TOPIC_STATUS =
%w[open under_discussion decided deferred withdrawn].freeze
- OFFICER_ROLE =
%w[ chair vice_chair deputy_chair secretary treasurer parliamentarian presiding_officer sergeant_at_arms other ].freeze
- RECURRENCE_FREQ =
%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