# 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 HrisCreateTimeOffRequestDtoValue < T::Enum enums do APPROVED = new('approved') UNMAPPED_VALUE = new('unmapped_value') end end # The status of the time off request class Status < ::StackOne::Utils::FieldAugmented extend T::Sig field :source_value, T.nilable(Object), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('source_value') } } field :value, T.nilable(Shared::HrisCreateTimeOffRequestDtoValue), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::HrisCreateTimeOffRequestDtoValue, true) } } sig { params(source_value: T.nilable(Object), value: T.nilable(Shared::HrisCreateTimeOffRequestDtoValue)).void } def initialize(source_value: nil, value: nil) @source_value = source_value @value = value end end class HrisCreateTimeOffRequestDtoSchemasValue < T::Enum enums do SICK = new('sick') UNMAPPED_VALUE = new('unmapped_value') VACATION = new('vacation') end end # The type of the time off request class HrisCreateTimeOffRequestDtoType < ::StackOne::Utils::FieldAugmented extend T::Sig field :source_value, T.nilable(Object), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('source_value') } } field :value, T.nilable(Shared::HrisCreateTimeOffRequestDtoSchemasValue), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::HrisCreateTimeOffRequestDtoSchemasValue, true) } } sig { params(source_value: T.nilable(Object), value: T.nilable(Shared::HrisCreateTimeOffRequestDtoSchemasValue)).void } def initialize(source_value: nil, value: nil) @source_value = source_value @value = value end end class HrisCreateTimeOffRequestDto < ::StackOne::Utils::FieldAugmented extend T::Sig # The approver ID field :approver_id, T.nilable(String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('approver_id') } } # The employee ID field :employee_id, T.nilable(String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('employee_id') } } # The end date of the time off request field :end_date, T.nilable(DateTime), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('end_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The start date of the time off request field :start_date, T.nilable(DateTime), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('start_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The status of the time off request field :status, T.nilable(Shared::Status), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('status') } } # The type of the time off request field :type, T.nilable(Shared::HrisCreateTimeOffRequestDtoType), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('type') } } sig { params(approver_id: T.nilable(String), employee_id: T.nilable(String), end_date: T.nilable(DateTime), start_date: T.nilable(DateTime), status: T.nilable(Shared::Status), type: T.nilable(Shared::HrisCreateTimeOffRequestDtoType)).void } def initialize(approver_id: nil, employee_id: nil, end_date: nil, start_date: nil, status: nil, type: nil) @approver_id = approver_id @employee_id = employee_id @end_date = end_date @start_date = start_date @status = status @type = type end end end end