# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. # typed: true # frozen_string_literal: true require 'sorbet-runtime' require 'faraday' module StackOne module Shared # QuestionValue - The type of the questions. class QuestionValue < T::Enum enums do SHORT_TEXT = new('short_text') LONG_TEXT = new('long_text') ATTACHMENT = new('attachment') MULTI_SELECT = new('multi_select') SINGLE_SELECT = new('single_select') BOOLEAN = new('boolean') NUMBER = new('number') DATE = new('date') VIDEO = new('video') end end class QuestionType < ::StackOne::Utils::FieldAugmented extend T::Sig # The source value of the questions type. field :source_value, T.nilable(Object), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('source_value') } } # The type of the questions. field :value, T.nilable(Shared::QuestionValue), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::QuestionValue, true) } } sig { params(source_value: T.nilable(Object), value: T.nilable(Shared::QuestionValue)).void } def initialize(source_value: nil, value: nil) @source_value = source_value @value = value end end class Question < ::StackOne::Utils::FieldAugmented extend T::Sig field :id, T.nilable(String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('id') } } field :multiple_choice_answers, T.nilable(T::Array[Shared::QuestionMultipleChoiceAnswers]), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('multiple_choice_answers') } } field :name, T.nilable(String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('name') } } field :required, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('required') } } field :text, T.nilable(String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('text') } } field :type, T.nilable(Shared::QuestionType), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('type') } } sig { params(id: T.nilable(String), multiple_choice_answers: T.nilable(T::Array[Shared::QuestionMultipleChoiceAnswers]), name: T.nilable(String), required: T.nilable(T::Boolean), text: T.nilable(String), type: T.nilable(Shared::QuestionType)).void } def initialize(id: nil, multiple_choice_answers: nil, name: nil, required: nil, text: nil, type: nil) @id = id @multiple_choice_answers = multiple_choice_answers @name = name @required = required @text = text @type = type end end end end