Class: Gusto::Payrolls::PaidTimeOff

Inherits:
Object
  • Object
show all
Defined in:
lib/fern_gusto/payrolls/types/paid_time_off.rb

Overview

The representation of paid time off in Gusto.

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name: OMIT, policy_name: OMIT, policy_uuid: OMIT, accrual_unit: OMIT, accrual_rate: OMIT, accrual_method: OMIT, accrual_period: OMIT, accrual_balance: OMIT, maximum_accrual_balance: OMIT, paid_at_termination: OMIT, additional_properties: nil) ⇒ Gusto::Payrolls::PaidTimeOff

Parameters:

  • name (Gusto::Payrolls::PaidTimeOffName) (defaults to: OMIT)

    The name of the paid time off type.

  • policy_name (String) (defaults to: OMIT)

    The name of the time off policy.

  • policy_uuid (String) (defaults to: OMIT)

    The UUID of the time off policy.

  • accrual_unit (String) (defaults to: OMIT)

    The unit the PTO type is accrued in.

  • accrual_rate (String) (defaults to: OMIT)

    The number of accrual units accrued per accrual period.

  • accrual_method (String) (defaults to: OMIT)

    The accrual method of the time off policy

  • accrual_period (String) (defaults to: OMIT)

    The frequency at which the PTO type is accrued.

  • accrual_balance (String) (defaults to: OMIT)

    The number of accrual units accrued.

  • maximum_accrual_balance (String) (defaults to: OMIT)

    The maximum number of accrual units allowed. A null value signifies no maximum.

  • paid_at_termination (Boolean) (defaults to: OMIT)

    Whether the accrual balance is paid to the employee upon termination.

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 50

def initialize(name: OMIT, policy_name: OMIT, policy_uuid: OMIT, accrual_unit: OMIT, accrual_rate: OMIT, accrual_method: OMIT, accrual_period: OMIT, accrual_balance: OMIT, maximum_accrual_balance: OMIT, paid_at_termination: OMIT, additional_properties: nil)
  @name = name if name != OMIT
  @policy_name = policy_name if policy_name != OMIT
  @policy_uuid = policy_uuid if policy_uuid != OMIT
  @accrual_unit = accrual_unit if accrual_unit != OMIT
  @accrual_rate = accrual_rate if accrual_rate != OMIT
  @accrual_method = accrual_method if accrual_method != OMIT
  @accrual_period = accrual_period if accrual_period != OMIT
  @accrual_balance = accrual_balance if accrual_balance != OMIT
  @maximum_accrual_balance = maximum_accrual_balance if maximum_accrual_balance != OMIT
  @paid_at_termination = paid_at_termination if paid_at_termination != OMIT
  @additional_properties = additional_properties
  @_field_set = { "name": name, "policy_name": policy_name, "policy_uuid": policy_uuid, "accrual_unit": accrual_unit, "accrual_rate": accrual_rate, "accrual_method": accrual_method, "accrual_period": accrual_period, "accrual_balance": accrual_balance, "maximum_accrual_balance": maximum_accrual_balance, "paid_at_termination": paid_at_termination }.reject do | _k, v |
  v == OMIT
end
end

Instance Attribute Details

#accrual_balanceString (readonly)

Returns The number of accrual units accrued.

Returns:

  • (String)

    The number of accrual units accrued.



25
26
27
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 25

def accrual_balance
  @accrual_balance
end

#accrual_methodString (readonly)

Returns The accrual method of the time off policy.

Returns:

  • (String)

    The accrual method of the time off policy



21
22
23
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 21

def accrual_method
  @accrual_method
end

#accrual_periodString (readonly)

Returns The frequency at which the PTO type is accrued.

Returns:

  • (String)

    The frequency at which the PTO type is accrued.



23
24
25
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 23

def accrual_period
  @accrual_period
end

#accrual_rateString (readonly)

Returns The number of accrual units accrued per accrual period.

Returns:

  • (String)

    The number of accrual units accrued per accrual period.



19
20
21
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 19

def accrual_rate
  @accrual_rate
end

#accrual_unitString (readonly)

Returns The unit the PTO type is accrued in.

Returns:

  • (String)

    The unit the PTO type is accrued in.



17
18
19
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 17

def accrual_unit
  @accrual_unit
end

#additional_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    Additional properties unmapped to the current class definition



31
32
33
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 31

def additional_properties
  @additional_properties
end

#maximum_accrual_balanceString (readonly)

Returns The maximum number of accrual units allowed. A null value signifies no maximum.

Returns:

  • (String)

    The maximum number of accrual units allowed. A null value signifies no maximum.



27
28
29
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 27

def maximum_accrual_balance
  @maximum_accrual_balance
end

#nameGusto::Payrolls::PaidTimeOffName (readonly)

Returns The name of the paid time off type.

Returns:



11
12
13
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 11

def name
  @name
end

Returns Whether the accrual balance is paid to the employee upon termination.

Returns:

  • (Boolean)

    Whether the accrual balance is paid to the employee upon termination.



29
30
31
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 29

def paid_at_termination
  @paid_at_termination
end

#policy_nameString (readonly)

Returns The name of the time off policy.

Returns:

  • (String)

    The name of the time off policy.



13
14
15
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 13

def policy_name
  @policy_name
end

#policy_uuidString (readonly)

Returns The UUID of the time off policy.

Returns:

  • (String)

    The UUID of the time off policy.



15
16
17
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 15

def policy_uuid
  @policy_uuid
end

Class Method Details

.from_json(json_object:) ⇒ Gusto::Payrolls::PaidTimeOff

Parameters:

  • json_object (String)

Returns:



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 70

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  name = parsed_json["name"]
  policy_name = parsed_json["policy_name"]
  policy_uuid = parsed_json["policy_uuid"]
  accrual_unit = parsed_json["accrual_unit"]
  accrual_rate = parsed_json["accrual_rate"]
  accrual_method = parsed_json["accrual_method"]
  accrual_period = parsed_json["accrual_period"]
  accrual_balance = parsed_json["accrual_balance"]
  maximum_accrual_balance = parsed_json["maximum_accrual_balance"]
  paid_at_termination = parsed_json["paid_at_termination"]
  new(
    name: name,
    policy_name: policy_name,
    policy_uuid: policy_uuid,
    accrual_unit: accrual_unit,
    accrual_rate: accrual_rate,
    accrual_method: accrual_method,
    accrual_period: accrual_period,
    accrual_balance: accrual_balance,
    maximum_accrual_balance: maximum_accrual_balance,
    paid_at_termination: paid_at_termination,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Parameters:

  • obj (Object)

Returns:

  • (Void)


109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 109

def self.validate_raw(obj:)
  obj.name&.is_a?(Gusto::Payrolls::PaidTimeOffName) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
  obj.policy_name&.is_a?(String) != false || raise("Passed value for field obj.policy_name is not the expected type, validation failed.")
  obj.policy_uuid&.is_a?(String) != false || raise("Passed value for field obj.policy_uuid is not the expected type, validation failed.")
  obj.accrual_unit&.is_a?(String) != false || raise("Passed value for field obj.accrual_unit is not the expected type, validation failed.")
  obj.accrual_rate&.is_a?(String) != false || raise("Passed value for field obj.accrual_rate is not the expected type, validation failed.")
  obj.accrual_method&.is_a?(String) != false || raise("Passed value for field obj.accrual_method is not the expected type, validation failed.")
  obj.accrual_period&.is_a?(String) != false || raise("Passed value for field obj.accrual_period is not the expected type, validation failed.")
  obj.accrual_balance&.is_a?(String) != false || raise("Passed value for field obj.accrual_balance is not the expected type, validation failed.")
  obj.maximum_accrual_balance&.is_a?(String) != false || raise("Passed value for field obj.maximum_accrual_balance is not the expected type, validation failed.")
  obj.paid_at_termination&.is_a?(Boolean) != false || raise("Passed value for field obj.paid_at_termination is not the expected type, validation failed.")
end

Instance Method Details

#to_jsonString

Returns:

  • (String)


100
101
102
# File 'lib/fern_gusto/payrolls/types/paid_time_off.rb', line 100

def to_json
  @_field_set&.to_json
end