stackone_client 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. checksums.yaml +7 -0
  2. data/lib/stackone/accounts.rb +224 -0
  3. data/lib/stackone/ats.rb +1289 -0
  4. data/lib/stackone/connect_sessions.rb +100 -0
  5. data/lib/stackone/connectors.rb +98 -0
  6. data/lib/stackone/crm.rb +323 -0
  7. data/lib/stackone/hris.rb +682 -0
  8. data/lib/stackone/marketing.rb +584 -0
  9. data/lib/stackone/models/operations/ats_create_application.rb +53 -0
  10. data/lib/stackone/models/operations/ats_create_candidate.rb +53 -0
  11. data/lib/stackone/models/operations/ats_create_candidate_note.rb +56 -0
  12. data/lib/stackone/models/operations/ats_create_offer.rb +53 -0
  13. data/lib/stackone/models/operations/ats_get_application.rb +88 -0
  14. data/lib/stackone/models/operations/ats_get_application_offer.rb +91 -0
  15. data/lib/stackone/models/operations/ats_get_application_scorecard.rb +91 -0
  16. data/lib/stackone/models/operations/ats_get_candidate.rb +88 -0
  17. data/lib/stackone/models/operations/ats_get_candidate_note.rb +91 -0
  18. data/lib/stackone/models/operations/ats_get_department.rb +88 -0
  19. data/lib/stackone/models/operations/ats_get_interview.rb +88 -0
  20. data/lib/stackone/models/operations/ats_get_interview_stage.rb +88 -0
  21. data/lib/stackone/models/operations/ats_get_job.rb +88 -0
  22. data/lib/stackone/models/operations/ats_get_job_posting.rb +91 -0
  23. data/lib/stackone/models/operations/ats_get_location.rb +88 -0
  24. data/lib/stackone/models/operations/ats_get_offer.rb +88 -0
  25. data/lib/stackone/models/operations/ats_get_rejected_reason.rb +88 -0
  26. data/lib/stackone/models/operations/ats_get_user.rb +88 -0
  27. data/lib/stackone/models/operations/ats_list_application_scorecards.rb +88 -0
  28. data/lib/stackone/models/operations/ats_list_applications.rb +85 -0
  29. data/lib/stackone/models/operations/ats_list_applications_offers.rb +88 -0
  30. data/lib/stackone/models/operations/ats_list_candidate_notes.rb +88 -0
  31. data/lib/stackone/models/operations/ats_list_candidates.rb +85 -0
  32. data/lib/stackone/models/operations/ats_list_departments.rb +85 -0
  33. data/lib/stackone/models/operations/ats_list_interview_stages.rb +85 -0
  34. data/lib/stackone/models/operations/ats_list_interviews.rb +85 -0
  35. data/lib/stackone/models/operations/ats_list_job_postings.rb +88 -0
  36. data/lib/stackone/models/operations/ats_list_jobs.rb +85 -0
  37. data/lib/stackone/models/operations/ats_list_locations.rb +85 -0
  38. data/lib/stackone/models/operations/ats_list_offers.rb +85 -0
  39. data/lib/stackone/models/operations/ats_list_rejected_reasons.rb +85 -0
  40. data/lib/stackone/models/operations/ats_list_users.rb +85 -0
  41. data/lib/stackone/models/operations/ats_update_application.rb +56 -0
  42. data/lib/stackone/models/operations/ats_update_candidate.rb +56 -0
  43. data/lib/stackone/models/operations/crm_create_contact.rb +53 -0
  44. data/lib/stackone/models/operations/crm_get_account.rb +88 -0
  45. data/lib/stackone/models/operations/crm_get_contact.rb +88 -0
  46. data/lib/stackone/models/operations/crm_get_list.rb +88 -0
  47. data/lib/stackone/models/operations/crm_list_accounts.rb +85 -0
  48. data/lib/stackone/models/operations/crm_list_contacts.rb +85 -0
  49. data/lib/stackone/models/operations/crm_list_lists.rb +85 -0
  50. data/lib/stackone/models/operations/crm_update_contact.rb +56 -0
  51. data/lib/stackone/models/operations/hris_create_employee.rb +53 -0
  52. data/lib/stackone/models/operations/hris_create_employee_time_off_request.rb +56 -0
  53. data/lib/stackone/models/operations/hris_create_time_off_request.rb +53 -0
  54. data/lib/stackone/models/operations/hris_get_company.rb +88 -0
  55. data/lib/stackone/models/operations/hris_get_employee.rb +94 -0
  56. data/lib/stackone/models/operations/hris_get_employees_time_off_request.rb +91 -0
  57. data/lib/stackone/models/operations/hris_get_employment.rb +88 -0
  58. data/lib/stackone/models/operations/hris_get_location.rb +88 -0
  59. data/lib/stackone/models/operations/hris_get_time_off_request.rb +88 -0
  60. data/lib/stackone/models/operations/hris_list_companies.rb +85 -0
  61. data/lib/stackone/models/operations/hris_list_employee_time_off_requests.rb +88 -0
  62. data/lib/stackone/models/operations/hris_list_employees.rb +91 -0
  63. data/lib/stackone/models/operations/hris_list_employments.rb +85 -0
  64. data/lib/stackone/models/operations/hris_list_locations.rb +85 -0
  65. data/lib/stackone/models/operations/hris_list_time_off_requests.rb +85 -0
  66. data/lib/stackone/models/operations/hris_update_employee.rb +56 -0
  67. data/lib/stackone/models/operations/hris_update_time_off_request.rb +56 -0
  68. data/lib/stackone/models/operations/marketing_create_email_template.rb +53 -0
  69. data/lib/stackone/models/operations/marketing_create_omni_channel_template.rb +53 -0
  70. data/lib/stackone/models/operations/marketing_create_push_template.rb +53 -0
  71. data/lib/stackone/models/operations/marketing_get_campaign.rb +88 -0
  72. data/lib/stackone/models/operations/marketing_get_email_template.rb +88 -0
  73. data/lib/stackone/models/operations/marketing_get_omni_channel_template.rb +88 -0
  74. data/lib/stackone/models/operations/marketing_get_push_template.rb +88 -0
  75. data/lib/stackone/models/operations/marketing_list_campaigns.rb +85 -0
  76. data/lib/stackone/models/operations/marketing_list_email_templates.rb +85 -0
  77. data/lib/stackone/models/operations/marketing_list_omni_channel_templates.rb +85 -0
  78. data/lib/stackone/models/operations/marketing_list_push_templates.rb +85 -0
  79. data/lib/stackone/models/operations/marketing_update_email_template.rb +56 -0
  80. data/lib/stackone/models/operations/marketing_update_omni_channel_template.rb +56 -0
  81. data/lib/stackone/models/operations/marketing_update_push_template.rb +56 -0
  82. data/lib/stackone/models/operations/stackone_authenticate_connect_session.rb +35 -0
  83. data/lib/stackone/models/operations/stackone_create_connect_session.rb +35 -0
  84. data/lib/stackone/models/operations/stackone_delete_account.rb +49 -0
  85. data/lib/stackone/models/operations/stackone_get_account.rb +49 -0
  86. data/lib/stackone/models/operations/stackone_get_account_meta_info.rb +49 -0
  87. data/lib/stackone/models/operations/stackone_get_connector_meta.rb +52 -0
  88. data/lib/stackone/models/operations/stackone_list_connectors_meta.rb +48 -0
  89. data/lib/stackone/models/operations/stackone_list_linked_accounts.rb +51 -0
  90. data/lib/stackone/models/operations/stackone_proxy_request.rb +49 -0
  91. data/lib/stackone/models/operations/stackone_update_account.rb +53 -0
  92. data/lib/stackone/models/shared/account.rb +55 -0
  93. data/lib/stackone/models/shared/accountaddress.rb +342 -0
  94. data/lib/stackone/models/shared/accountresult.rb +29 -0
  95. data/lib/stackone/models/shared/accountspaginated.rb +34 -0
  96. data/lib/stackone/models/shared/answer.rb +64 -0
  97. data/lib/stackone/models/shared/application.rb +75 -0
  98. data/lib/stackone/models/shared/applicationattachment.rb +63 -0
  99. data/lib/stackone/models/shared/applicationcandidate.rb +31 -0
  100. data/lib/stackone/models/shared/applicationresult.rb +29 -0
  101. data/lib/stackone/models/shared/applicationspaginated.rb +34 -0
  102. data/lib/stackone/models/shared/applicationstatusenumapimodel.rb +50 -0
  103. data/lib/stackone/models/shared/atscreateapplicationrequestdto.rb +45 -0
  104. data/lib/stackone/models/shared/atscreatecandidaterequestdto.rb +46 -0
  105. data/lib/stackone/models/shared/atscreatenotesrequestdto.rb +57 -0
  106. data/lib/stackone/models/shared/atscreateofferrequestdto.rb +41 -0
  107. data/lib/stackone/models/shared/atslocation.rb +28 -0
  108. data/lib/stackone/models/shared/atslocationresult.rb +29 -0
  109. data/lib/stackone/models/shared/atslocationspaginated.rb +34 -0
  110. data/lib/stackone/models/shared/atsupdateapplicationrequestdto.rb +48 -0
  111. data/lib/stackone/models/shared/atsupdatecandidatesrequestdto.rb +49 -0
  112. data/lib/stackone/models/shared/attachmenttype.rb +40 -0
  113. data/lib/stackone/models/shared/campaign.rb +120 -0
  114. data/lib/stackone/models/shared/campaignresult.rb +29 -0
  115. data/lib/stackone/models/shared/campaignspaginated.rb +34 -0
  116. data/lib/stackone/models/shared/candidate.rb +64 -0
  117. data/lib/stackone/models/shared/candidateemail.rb +28 -0
  118. data/lib/stackone/models/shared/candidateresult.rb +29 -0
  119. data/lib/stackone/models/shared/candidatespaginated.rb +34 -0
  120. data/lib/stackone/models/shared/channelsenum.rb +42 -0
  121. data/lib/stackone/models/shared/companiespaginated.rb +34 -0
  122. data/lib/stackone/models/shared/company.rb +37 -0
  123. data/lib/stackone/models/shared/companyresult.rb +29 -0
  124. data/lib/stackone/models/shared/compensation.rb +149 -0
  125. data/lib/stackone/models/shared/connectorsmeta.rb +73 -0
  126. data/lib/stackone/models/shared/connectsession.rb +68 -0
  127. data/lib/stackone/models/shared/connectsessionauthenticate.rb +25 -0
  128. data/lib/stackone/models/shared/connectsessioncreate.rb +72 -0
  129. data/lib/stackone/models/shared/connectsessiontoken.rb +71 -0
  130. data/lib/stackone/models/shared/contact.rb +52 -0
  131. data/lib/stackone/models/shared/contactresult.rb +29 -0
  132. data/lib/stackone/models/shared/contactspaginated.rb +34 -0
  133. data/lib/stackone/models/shared/countrycodeenum.rb +284 -0
  134. data/lib/stackone/models/shared/createcandidatenoteresult.rb +31 -0
  135. data/lib/stackone/models/shared/createemployeeresult.rb +31 -0
  136. data/lib/stackone/models/shared/createofferresult.rb +31 -0
  137. data/lib/stackone/models/shared/createresult.rb +31 -0
  138. data/lib/stackone/models/shared/createtemplateresult.rb +31 -0
  139. data/lib/stackone/models/shared/createtimeoffresult.rb +31 -0
  140. data/lib/stackone/models/shared/crmcreatecontactrequestdto.rb +43 -0
  141. data/lib/stackone/models/shared/department.rb +28 -0
  142. data/lib/stackone/models/shared/departmentresult.rb +29 -0
  143. data/lib/stackone/models/shared/departmentspaginated.rb +34 -0
  144. data/lib/stackone/models/shared/emailmessages.rb +93 -0
  145. data/lib/stackone/models/shared/employee.rb +1035 -0
  146. data/lib/stackone/models/shared/employeecustomfields.rb +83 -0
  147. data/lib/stackone/models/shared/employeeresult.rb +29 -0
  148. data/lib/stackone/models/shared/employeespaginated.rb +34 -0
  149. data/lib/stackone/models/shared/employment.rb +191 -0
  150. data/lib/stackone/models/shared/employmentresult.rb +29 -0
  151. data/lib/stackone/models/shared/employmentspaginated.rb +34 -0
  152. data/lib/stackone/models/shared/field.rb +56 -0
  153. data/lib/stackone/models/shared/hiringteam.rb +37 -0
  154. data/lib/stackone/models/shared/hriscreateemployeerequestdto.rb +8638 -0
  155. data/lib/stackone/models/shared/hriscreatetimeoffrequestdto.rb +93 -0
  156. data/lib/stackone/models/shared/hrislocation.rb +361 -0
  157. data/lib/stackone/models/shared/hrislocationresult.rb +29 -0
  158. data/lib/stackone/models/shared/hrislocationspaginated.rb +34 -0
  159. data/lib/stackone/models/shared/interview.rb +91 -0
  160. data/lib/stackone/models/shared/interviewer.rb +37 -0
  161. data/lib/stackone/models/shared/interviewpart.rb +40 -0
  162. data/lib/stackone/models/shared/interviewspaginated.rb +34 -0
  163. data/lib/stackone/models/shared/interviewsresult.rb +29 -0
  164. data/lib/stackone/models/shared/interviewstage.rb +37 -0
  165. data/lib/stackone/models/shared/interviewstageresult.rb +29 -0
  166. data/lib/stackone/models/shared/interviewstagespaginated.rb +34 -0
  167. data/lib/stackone/models/shared/job.rb +65 -0
  168. data/lib/stackone/models/shared/jobposting.rb +182 -0
  169. data/lib/stackone/models/shared/jobpostingresult.rb +29 -0
  170. data/lib/stackone/models/shared/jobpostingspaginated.rb +34 -0
  171. data/lib/stackone/models/shared/jobresult.rb +29 -0
  172. data/lib/stackone/models/shared/jobspaginated.rb +34 -0
  173. data/lib/stackone/models/shared/jobstatusenum.rb +43 -0
  174. data/lib/stackone/models/shared/linkedaccount.rb +75 -0
  175. data/lib/stackone/models/shared/linkedaccountmeta.rb +54 -0
  176. data/lib/stackone/models/shared/list.rb +67 -0
  177. data/lib/stackone/models/shared/listresult.rb +29 -0
  178. data/lib/stackone/models/shared/listspaginated.rb +34 -0
  179. data/lib/stackone/models/shared/location.rb +28 -0
  180. data/lib/stackone/models/shared/marketingcreateemailtemplaterequestdto.rb +34 -0
  181. data/lib/stackone/models/shared/marketingcreatepushtemplaterequestdto.rb +34 -0
  182. data/lib/stackone/models/shared/marketingcreatetemplaterequestdto.rb +34 -0
  183. data/lib/stackone/models/shared/message.rb +50 -0
  184. data/lib/stackone/models/shared/note.rb +69 -0
  185. data/lib/stackone/models/shared/notecontentapimodel.rb +25 -0
  186. data/lib/stackone/models/shared/noteresult.rb +29 -0
  187. data/lib/stackone/models/shared/notespaginated.rb +34 -0
  188. data/lib/stackone/models/shared/offer.rb +50 -0
  189. data/lib/stackone/models/shared/offerhistory.rb +37 -0
  190. data/lib/stackone/models/shared/offerspaginated.rb +34 -0
  191. data/lib/stackone/models/shared/offersresult.rb +29 -0
  192. data/lib/stackone/models/shared/offerstatusenum.rb +43 -0
  193. data/lib/stackone/models/shared/patchaccountdto.rb +21 -0
  194. data/lib/stackone/models/shared/proxyrequestbody.rb +69 -0
  195. data/lib/stackone/models/shared/pushmessages.rb +81 -0
  196. data/lib/stackone/models/shared/questionnaire.rb +28 -0
  197. data/lib/stackone/models/shared/rawresponse.rb +44 -0
  198. data/lib/stackone/models/shared/rejectedreason.rb +32 -0
  199. data/lib/stackone/models/shared/rejectedreasonresult.rb +29 -0
  200. data/lib/stackone/models/shared/rejectedreasonspaginated.rb +34 -0
  201. data/lib/stackone/models/shared/rejectedreasontypeenum.rb +40 -0
  202. data/lib/stackone/models/shared/resultlink.rb +28 -0
  203. data/lib/stackone/models/shared/scorecard.rb +65 -0
  204. data/lib/stackone/models/shared/scorecardsection.rb +31 -0
  205. data/lib/stackone/models/shared/scorecardspaginated.rb +34 -0
  206. data/lib/stackone/models/shared/security.rb +28 -0
  207. data/lib/stackone/models/shared/sociallink.rb +28 -0
  208. data/lib/stackone/models/shared/template.rb +37 -0
  209. data/lib/stackone/models/shared/templateresult.rb +29 -0
  210. data/lib/stackone/models/shared/templatespaginated.rb +34 -0
  211. data/lib/stackone/models/shared/timeoff.rb +102 -0
  212. data/lib/stackone/models/shared/timeoffpaginated.rb +34 -0
  213. data/lib/stackone/models/shared/timeoffresult.rb +29 -0
  214. data/lib/stackone/models/shared/updateresult.rb +31 -0
  215. data/lib/stackone/models/shared/user.rb +40 -0
  216. data/lib/stackone/models/shared/userresult.rb +29 -0
  217. data/lib/stackone/models/shared/userspaginated.rb +34 -0
  218. data/lib/stackone/proxy.rb +59 -0
  219. data/lib/stackone/sdk.rb +87 -0
  220. data/lib/stackone/sdkconfiguration.rb +53 -0
  221. data/lib/stackone/utils/metadata_fields.rb +154 -0
  222. data/lib/stackone/utils/utils.rb +774 -0
  223. data/lib/stackone_client.rb +229 -0
  224. metadata +393 -0
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class Template < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Date of creation
16
+ field :created_at, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(true) } }
17
+
18
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
19
+
20
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
21
+
22
+ field :tags, T.nilable(T::Array[String]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('tags') } }
23
+ # Date of last update
24
+ field :updated_at, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updated_at'), 'decoder': Utils.datetime_from_iso_format(true) } }
25
+
26
+
27
+ sig { params(created_at: T.nilable(DateTime), id: T.nilable(String), name: T.nilable(String), tags: T.nilable(T::Array[String]), updated_at: T.nilable(DateTime)).void }
28
+ def initialize(created_at: nil, id: nil, name: nil, tags: nil, updated_at: nil)
29
+ @created_at = created_at
30
+ @id = id
31
+ @name = name
32
+ @tags = tags
33
+ @updated_at = updated_at
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,29 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+ require_relative '../shared/template'
9
+
10
+ module StackOne
11
+ module Shared
12
+
13
+ class TemplateResult < StackOne::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+
17
+ field :data, Shared::Template, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
18
+
19
+ field :raw, T.nilable(T::Array[Shared::RawResponse]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
20
+
21
+
22
+ sig { params(data: Shared::Template, raw: T.nilable(T::Array[Shared::RawResponse])).void }
23
+ def initialize(data: nil, raw: nil)
24
+ @data = data
25
+ @raw = raw
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,34 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class TemplatesPaginated < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :data, T::Array[Shared::Template], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
17
+
18
+ field :next_, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next') } }
19
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
20
+ field :next_page, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next_page') } }
21
+
22
+ field :raw, T.nilable(T::Array[Shared::RawResponse]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
23
+
24
+
25
+ sig { params(data: T::Array[Shared::Template], next_: T.nilable(String), next_page: T.nilable(String), raw: T.nilable(T::Array[Shared::RawResponse])).void }
26
+ def initialize(data: nil, next_: nil, next_page: nil, raw: nil)
27
+ @data = data
28
+ @next_ = next_
29
+ @next_page = next_page
30
+ @raw = raw
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,102 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class TimeOffValue < T::Enum
13
+ enums do
14
+ APPROVED = new('approved')
15
+ UNMAPPED_VALUE = new('unmapped_value')
16
+ end
17
+ end
18
+
19
+
20
+ # The status of the time off request
21
+ class TimeOffStatus < StackOne::Utils::FieldAugmented
22
+ extend T::Sig
23
+
24
+
25
+ field :source_value, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('source_value') } }
26
+
27
+ field :value, Shared::TimeOffValue, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::TimeOffValue, false) } }
28
+
29
+
30
+ sig { params(source_value: String, value: Shared::TimeOffValue).void }
31
+ def initialize(source_value: nil, value: nil)
32
+ @source_value = source_value
33
+ @value = value
34
+ end
35
+ end
36
+
37
+
38
+ class TimeOffSchemasValue < T::Enum
39
+ enums do
40
+ SICK = new('sick')
41
+ UNMAPPED_VALUE = new('unmapped_value')
42
+ VACATION = new('vacation')
43
+ end
44
+ end
45
+
46
+
47
+ # The type of the time off request
48
+ class TimeOffType < StackOne::Utils::FieldAugmented
49
+ extend T::Sig
50
+
51
+
52
+ field :source_value, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('source_value') } }
53
+
54
+ field :value, Shared::TimeOffSchemasValue, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('value'), 'decoder': Utils.enum_from_string(Shared::TimeOffSchemasValue, false) } }
55
+
56
+
57
+ sig { params(source_value: String, value: Shared::TimeOffSchemasValue).void }
58
+ def initialize(source_value: nil, value: nil)
59
+ @source_value = source_value
60
+ @value = value
61
+ end
62
+ end
63
+
64
+
65
+ class TimeOff < StackOne::Utils::FieldAugmented
66
+ extend T::Sig
67
+
68
+ # The approver ID
69
+ field :approver_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('approver_id') } }
70
+ # The created date of the time off request
71
+ field :created_date, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('created_date'), 'decoder': Utils.datetime_from_iso_format(true) } }
72
+ # The employee ID
73
+ field :employee_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('employee_id') } }
74
+ # The end date of the time off request
75
+ field :end_date, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('end_date'), 'decoder': Utils.datetime_from_iso_format(true) } }
76
+ # The unique ID of the time off request
77
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
78
+ # The start date of the time off request
79
+ field :start_date, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('start_date'), 'decoder': Utils.datetime_from_iso_format(true) } }
80
+ # The status of the time off request
81
+ field :status, T.nilable(Shared::TimeOffStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
82
+ # The type of the time off request
83
+ field :type, T.nilable(Shared::TimeOffType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type') } }
84
+ # The updated date of the time off request
85
+ field :updated_date, T.nilable(DateTime), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updated_date'), 'decoder': Utils.datetime_from_iso_format(true) } }
86
+
87
+
88
+ sig { params(approver_id: T.nilable(String), created_date: T.nilable(DateTime), employee_id: T.nilable(String), end_date: T.nilable(DateTime), id: T.nilable(String), start_date: T.nilable(DateTime), status: T.nilable(Shared::TimeOffStatus), type: T.nilable(Shared::TimeOffType), updated_date: T.nilable(DateTime)).void }
89
+ def initialize(approver_id: nil, created_date: nil, employee_id: nil, end_date: nil, id: nil, start_date: nil, status: nil, type: nil, updated_date: nil)
90
+ @approver_id = approver_id
91
+ @created_date = created_date
92
+ @employee_id = employee_id
93
+ @end_date = end_date
94
+ @id = id
95
+ @start_date = start_date
96
+ @status = status
97
+ @type = type
98
+ @updated_date = updated_date
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,34 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class TimeOffPaginated < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :data, T::Array[Shared::TimeOff], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
17
+
18
+ field :next_, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next') } }
19
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
20
+ field :next_page, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next_page') } }
21
+
22
+ field :raw, T.nilable(T::Array[Shared::RawResponse]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
23
+
24
+
25
+ sig { params(data: T::Array[Shared::TimeOff], next_: T.nilable(String), next_page: T.nilable(String), raw: T.nilable(T::Array[Shared::RawResponse])).void }
26
+ def initialize(data: nil, next_: nil, next_page: nil, raw: nil)
27
+ @data = data
28
+ @next_ = next_
29
+ @next_page = next_page
30
+ @raw = raw
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,29 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+ require_relative '../shared/timeoff'
9
+
10
+ module StackOne
11
+ module Shared
12
+
13
+ class TimeOffResult < StackOne::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+
17
+ field :data, Shared::TimeOff, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
18
+
19
+ field :raw, T.nilable(T::Array[Shared::RawResponse]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
20
+
21
+
22
+ sig { params(data: Shared::TimeOff, raw: T.nilable(T::Array[Shared::RawResponse])).void }
23
+ def initialize(data: nil, raw: nil)
24
+ @data = data
25
+ @raw = raw
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class UpdateResult < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :message, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('message') } }
17
+
18
+ field :status_code, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('statusCode') } }
19
+
20
+ field :timestamp, DateTime, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('timestamp'), 'decoder': Utils.datetime_from_iso_format(false) } }
21
+
22
+
23
+ sig { params(message: String, status_code: Float, timestamp: DateTime).void }
24
+ def initialize(message: nil, status_code: nil, timestamp: nil)
25
+ @message = message
26
+ @status_code = status_code
27
+ @timestamp = timestamp
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class User < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :email, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('email') } }
17
+
18
+ field :first_name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('first_name') } }
19
+
20
+ field :id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
21
+
22
+ field :last_name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('last_name') } }
23
+
24
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
25
+
26
+ field :phone, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('phone') } }
27
+
28
+
29
+ sig { params(email: String, first_name: String, id: String, last_name: String, name: String, phone: String).void }
30
+ def initialize(email: nil, first_name: nil, id: nil, last_name: nil, name: nil, phone: nil)
31
+ @email = email
32
+ @first_name = first_name
33
+ @id = id
34
+ @last_name = last_name
35
+ @name = name
36
+ @phone = phone
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,29 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+ require_relative '../shared/user'
9
+
10
+ module StackOne
11
+ module Shared
12
+
13
+ class UserResult < StackOne::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+
17
+ field :data, Shared::User, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
18
+
19
+ field :raw, T::Array[Shared::RawResponse], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
20
+
21
+
22
+ sig { params(data: Shared::User, raw: T::Array[Shared::RawResponse]).void }
23
+ def initialize(data: nil, raw: nil)
24
+ @data = data
25
+ @raw = raw
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,34 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module StackOne
10
+ module Shared
11
+
12
+ class UsersPaginated < StackOne::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :data, T::Array[Shared::User], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('data') } }
17
+
18
+ field :raw, T::Array[Shared::RawResponse], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('raw') } }
19
+
20
+ field :next_, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next') } }
21
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
22
+ field :next_page, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('next_page') } }
23
+
24
+
25
+ sig { params(data: T::Array[Shared::User], raw: T::Array[Shared::RawResponse], next_: T.nilable(String), next_page: T.nilable(String)).void }
26
+ def initialize(data: nil, raw: nil, next_: nil, next_page: nil)
27
+ @data = data
28
+ @raw = raw
29
+ @next_ = next_
30
+ @next_page = next_page
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,59 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'sorbet-runtime'
9
+
10
+ module StackOne
11
+ extend T::Sig
12
+ class Proxy
13
+
14
+ extend T::Sig
15
+ sig { params(sdk_config: SDKConfiguration).void }
16
+ def initialize(sdk_config)
17
+ @sdk_configuration = sdk_config
18
+ end
19
+
20
+ sig { params(proxy_request_body: Shared::ProxyRequestBody, x_account_id: String).returns(Utils::FieldAugmented) }
21
+ def proxy_request(proxy_request_body, x_account_id)
22
+ # proxy_request - Proxy Request
23
+ request = Operations::StackoneProxyRequestRequest.new(
24
+
25
+ proxy_request_body: proxy_request_body,
26
+ x_account_id: x_account_id
27
+ )
28
+ url, params = @sdk_configuration.get_server_details
29
+ base_url = Utils.template_url(url, params)
30
+ url = "#{base_url}/unified/proxy"
31
+ headers = Utils.get_headers(request)
32
+ req_content_type, data, form = Utils.serialize_request_body(request, :proxy_request_body, :json)
33
+ headers['content-type'] = req_content_type
34
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
35
+ headers['Accept'] = '*/*'
36
+ headers['user-agent'] = @sdk_configuration.user_agent
37
+
38
+ r = @sdk_configuration.client.post(url) do |req|
39
+ req.headers = headers
40
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
41
+ if form
42
+ req.body = Utils.encode_form(form)
43
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
44
+ req.body = URI.encode_www_form(data)
45
+ else
46
+ req.body = data
47
+ end
48
+ end
49
+
50
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
51
+
52
+ res = Operations::StackoneProxyRequestResponse.new(
53
+ status_code: r.status, content_type: content_type, raw_response: r
54
+ )
55
+
56
+ res
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,87 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'sorbet-runtime'
9
+ module StackOne
10
+ extend T::Sig
11
+
12
+ class StackOne
13
+ extend T::Sig
14
+
15
+ attr_accessor :accounts, :connect_sessions, :connectors, :ats, :crm, :hris, :marketing, :proxy
16
+
17
+ attr_accessor :security, :language, :sdk_version, :gen_version
18
+
19
+ sig do
20
+ params(security: T.nilable(Shared::Security),
21
+ server_idx: Integer,
22
+ server_url: String,
23
+ url_params: T::Hash[Symbol, String],
24
+ client: Faraday::Request).void
25
+ end
26
+ def initialize(security: nil,
27
+ server_idx: nil,
28
+ server_url: nil,
29
+ url_params: nil,
30
+ client: nil)
31
+
32
+ ## Instantiates the SDK configuring it with the provided parameters.
33
+ # @param [Shared::Security] security The security details required for authentication
34
+ # @param [Integer] server_idx The index of the server to use for all operations
35
+ # @param [String] server_url The server URL to use for all operations
36
+ # @param [Hash<Symbol, String>] url_params Parameters to optionally template the server URL with
37
+ # @param [Faraday::Request] client The faraday HTTP client to use for all operations
38
+
39
+ if client.nil?
40
+ client = Faraday.new(request: {
41
+ params_encoder: Faraday::FlatParamsEncoder
42
+ }) do |f|
43
+ f.request :multipart, {}
44
+ # f.response :logger
45
+ end
46
+ end
47
+
48
+ if !server_url.nil?
49
+ if !url_params.nil?
50
+ server_url = Utils.template_url(server_url, url_params)
51
+ end
52
+ end
53
+ server_idx = 0 if server_idx.nil?
54
+
55
+
56
+
57
+ @sdk_configuration = SDKConfiguration.new(client, security, server_url, server_idx)
58
+ init_sdks
59
+ end
60
+
61
+ sig { params(params: T.nilable(T::Hash[Symbol, String])).void }
62
+ def config_server_url(params)
63
+ if !params.nil?
64
+ @server_url = Utils.template_url(@server_url, params)
65
+ end
66
+ init_sdks
67
+ end
68
+
69
+ sig { params(security: Shared::Security).void }
70
+ def config_security(security)
71
+ @security = security
72
+ @sdk_configuration.security = security
73
+ end
74
+
75
+ sig { void }
76
+ def init_sdks
77
+ @accounts = Accounts.new(@sdk_configuration)
78
+ @connect_sessions = ConnectSessions.new(@sdk_configuration)
79
+ @connectors = Connectors.new(@sdk_configuration)
80
+ @ats = Ats.new(@sdk_configuration)
81
+ @crm = Crm.new(@sdk_configuration)
82
+ @hris = Hris.new(@sdk_configuration)
83
+ @marketing = Marketing.new(@sdk_configuration)
84
+ @proxy = Proxy.new(@sdk_configuration)
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,53 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'sorbet-runtime'
9
+
10
+ module OpenApiSDK
11
+ extend T::Sig
12
+
13
+
14
+ SERVERS = [
15
+ 'https://api.stackone.com',
16
+ ].freeze
17
+ # Contains the list of servers available to the SDK
18
+
19
+ class SDKConfiguration < OpenApiSDK::Utils::FieldAugmented
20
+ extend T::Sig
21
+
22
+ field :client, T.nilable(Faraday::Connection)
23
+ field :security, Shared::Security
24
+ field :server_url, T.nilable(String)
25
+ field :server, T.nilable(String)
26
+ field :language, String
27
+ field :openapi_doc_version, String
28
+ field :sdk_version, String
29
+ field :gen_version, String
30
+ field :user_agent, String
31
+
32
+
33
+ sig { params(client: Faraday::Connection, security: T.nilable(Shared::Security), server_url: T.nilable(String), server_idx: T.nilable(Integer)).void }
34
+ def initialize(client, security, server_url, server_idx)
35
+ @client = client
36
+ @server_idx = server_idx.nil? ? 0 : server_idx
37
+ @language = 'ruby'
38
+ @openapi_doc_version = '1.0.0'
39
+ @sdk_version = '0.0.1'
40
+ @gen_version = '2.231.0'
41
+ @user_agent = 'speakeasy-sdk/ruby 0.0.1 2.231.0 1.0.0 stackone_client'
42
+ end
43
+
44
+ sig { returns([String, T::Hash[Symbol, String]]) }
45
+ def get_server_details
46
+ return [@server_url.delete_suffix('/'), {}] if !@server_url.nil?
47
+ @server_idx = 0 if @server_idx.nil?
48
+
49
+
50
+ [SERVERS[@server_idx], {}]
51
+ end
52
+ end
53
+ end