# 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 class EmployeeCustomFieldsSchemasValue < T::Enum enums do DATE = new('date') FLOAT = new('float') INTEGER = new('integer') LIST = new('list') TEXT = new('text') UNMAPPED_VALUE = new('unmapped_value') end end # The type of the custom field. class EmployeeCustomFieldsType < StackOne::Utils::FieldAugmented extend T::Sig field :source_value, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('source_value') } } field :value, Shared::EmployeeCustomFieldsSchemasValue, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::EmployeeCustomFieldsSchemasValue, false) } } sig { params(source_value: String, value: Shared::EmployeeCustomFieldsSchemasValue).void } def initialize(source_value: nil, value: nil) @source_value = source_value @value = value end end # The value associated with the custom field. class EmployeeCustomFieldsValue < StackOne::Utils::FieldAugmented extend T::Sig def initialize; end end class EmployeeCustomFields < StackOne::Utils::FieldAugmented extend T::Sig # The description of the custom field. field :description, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('description') } } # The unique identifier for the custom field, which defaults to the name property if the ID is not accessible. field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } } # The name of the custom field. field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } } # An array of possible options for the custom field. field :options, T.nilable(T::Array[String]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('options') } } # The type of the custom field. field :type, T.nilable(Shared::EmployeeCustomFieldsType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type') } } # The value associated with the custom field. field :value, T.nilable(Shared::EmployeeCustomFieldsValue), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value') } } # The unique identifier for the value of the custom field. field :value_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value_id') } } sig { params(description: T.nilable(String), id: T.nilable(String), name: T.nilable(String), options: T.nilable(T::Array[String]), type: T.nilable(Shared::EmployeeCustomFieldsType), value: T.nilable(Shared::EmployeeCustomFieldsValue), value_id: T.nilable(String)).void } def initialize(description: nil, id: nil, name: nil, options: nil, type: nil, value: nil, value_id: nil) @description = description @id = id @name = name @options = options @type = type @value = value @value_id = value_id end end end end