stackone_client 0.36.1 → 0.37.0

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 (232) hide show
  1. checksums.yaml +4 -4
  2. data/lib/stack_one/actions.rb +627 -0
  3. data/lib/stack_one/ats.rb +865 -251
  4. data/lib/stack_one/mcp.rb +852 -0
  5. data/lib/stack_one/models/operations/ats_get_application_stage_request.rb +49 -0
  6. data/lib/stack_one/models/operations/ats_get_application_stage_request.rbi +21 -0
  7. data/lib/stack_one/models/operations/ats_get_application_stage_response.rb +49 -0
  8. data/lib/stack_one/models/operations/ats_get_application_stage_response.rbi +21 -0
  9. data/lib/stack_one/models/operations/ats_list_application_stages_queryparam_filter.rb +33 -0
  10. data/lib/stack_one/models/operations/ats_list_application_stages_queryparam_filter.rbi +13 -0
  11. data/lib/stack_one/models/operations/ats_list_application_stages_request.rb +75 -0
  12. data/lib/stack_one/models/operations/ats_list_application_stages_request.rbi +31 -0
  13. data/lib/stack_one/models/operations/ats_list_application_stages_response.rb +61 -0
  14. data/lib/stack_one/models/operations/ats_list_application_stages_response.rbi +21 -0
  15. data/lib/stack_one/models/operations/ats_list_applications_queryparam_filter.rb +1 -1
  16. data/lib/stack_one/models/operations/filter.rb +11 -71
  17. data/lib/stack_one/models/operations/filter.rbi +4 -34
  18. data/lib/stack_one/models/operations/hris_list_employee_time_off_requests_queryparam_filter.rb +6 -6
  19. data/lib/stack_one/models/operations/hris_list_employee_time_off_requests_queryparam_filter.rbi +2 -2
  20. data/lib/stack_one/models/operations/hris_list_time_off_requests_queryparam_filter.rb +6 -6
  21. data/lib/stack_one/models/operations/hris_list_time_off_requests_queryparam_filter.rbi +2 -2
  22. data/lib/stack_one/models/operations/include.rb +2 -3
  23. data/lib/stack_one/models/operations/lms_list_assignments_queryparam_status.rb +1 -0
  24. data/lib/stack_one/models/operations/lms_list_user_assignments_queryparam_status.rb +1 -0
  25. data/lib/stack_one/models/operations/queryparam_filter.rb +20 -8
  26. data/lib/stack_one/models/operations/queryparam_filter.rbi +8 -2
  27. data/lib/stack_one/models/operations/queryparam_include.rb +1 -0
  28. data/lib/stack_one/models/operations/stackone_get_log_request.rb +2 -2
  29. data/lib/stack_one/models/operations/stackone_list_actions_meta_request.rb +55 -0
  30. data/lib/stack_one/models/operations/stackone_list_actions_meta_request.rbi +23 -0
  31. data/lib/stack_one/models/operations/stackone_list_actions_meta_response.rb +61 -0
  32. data/lib/stack_one/models/operations/stackone_list_actions_meta_response.rbi +21 -0
  33. data/lib/stack_one/models/operations/stackone_list_logs_queryparam_include.rb +21 -0
  34. data/lib/stack_one/models/operations/stackone_list_logs_queryparam_include.rbi +11 -0
  35. data/lib/stack_one/models/operations/stackone_list_logs_request.rb +3 -3
  36. data/lib/stack_one/models/operations/stackone_list_platform_logs_queryparam_filter.rb +89 -0
  37. data/lib/stack_one/models/operations/stackone_list_platform_logs_queryparam_filter.rbi +41 -0
  38. data/lib/stack_one/models/operations/stackone_list_platform_logs_request.rb +2 -2
  39. data/lib/stack_one/models/operations/stackone_mcp_delete_request.rb +37 -0
  40. data/lib/stack_one/models/operations/stackone_mcp_delete_request.rbi +15 -0
  41. data/lib/stack_one/models/operations/stackone_mcp_delete_response.rb +45 -0
  42. data/lib/stack_one/models/operations/stackone_mcp_delete_response.rbi +19 -0
  43. data/lib/stack_one/models/operations/stackone_mcp_delete_security.rb +37 -0
  44. data/lib/stack_one/models/operations/stackone_mcp_delete_security.rbi +15 -0
  45. data/lib/stack_one/models/operations/stackone_mcp_get_request.rb +37 -0
  46. data/lib/stack_one/models/operations/stackone_mcp_get_request.rbi +15 -0
  47. data/lib/stack_one/models/operations/stackone_mcp_get_response.rb +45 -0
  48. data/lib/stack_one/models/operations/stackone_mcp_get_response.rbi +19 -0
  49. data/lib/stack_one/models/operations/stackone_mcp_get_security.rb +37 -0
  50. data/lib/stack_one/models/operations/stackone_mcp_get_security.rbi +15 -0
  51. data/lib/stack_one/models/operations/stackone_mcp_post_request.rb +41 -0
  52. data/lib/stack_one/models/operations/stackone_mcp_post_request.rbi +17 -0
  53. data/lib/stack_one/models/operations/stackone_mcp_post_response.rb +45 -0
  54. data/lib/stack_one/models/operations/stackone_mcp_post_response.rbi +19 -0
  55. data/lib/stack_one/models/operations/stackone_mcp_post_security.rb +37 -0
  56. data/lib/stack_one/models/operations/stackone_mcp_post_security.rbi +15 -0
  57. data/lib/stack_one/models/operations/stackone_rpc_action_response.rb +49 -0
  58. data/lib/stack_one/models/operations/stackone_rpc_action_response.rbi +21 -0
  59. data/lib/stack_one/models/operations.rb +19 -0
  60. data/lib/stack_one/models/shared/actionmetaitem.rb +53 -0
  61. data/lib/stack_one/models/shared/actionmetaitem.rbi +23 -0
  62. data/lib/stack_one/models/shared/actionsmeta.rb +57 -0
  63. data/lib/stack_one/models/shared/actionsmeta.rbi +25 -0
  64. data/lib/stack_one/models/shared/actionsmetapaginated.rb +37 -0
  65. data/lib/stack_one/models/shared/actionsmetapaginated.rbi +15 -0
  66. data/lib/stack_one/models/shared/actionsrpcrequestdto.rb +37 -0
  67. data/lib/stack_one/models/shared/actionsrpcrequestdto.rbi +15 -0
  68. data/lib/stack_one/models/shared/actionsrpcresponse.rb +37 -0
  69. data/lib/stack_one/models/shared/actionsrpcresponse.rbi +15 -0
  70. data/lib/stack_one/models/shared/actionsrpcresponse_2.rb +28 -0
  71. data/lib/stack_one/models/shared/actionsrpcresponse_2.rbi +11 -0
  72. data/lib/stack_one/models/shared/actionsrpcresponse_data.rb +28 -0
  73. data/lib/stack_one/models/shared/actionsrpcresponse_data.rbi +11 -0
  74. data/lib/stack_one/models/shared/atsdocumentapimodel.rb +2 -6
  75. data/lib/stack_one/models/shared/atsdocumentapimodel.rbi +0 -2
  76. data/lib/stack_one/models/shared/authenticationmetaitem.rb +41 -0
  77. data/lib/stack_one/models/shared/authenticationmetaitem.rbi +17 -0
  78. data/lib/stack_one/models/shared/contract_type.rb +2 -2
  79. data/lib/stack_one/models/shared/createemploymentapimodel.rb +10 -2
  80. data/lib/stack_one/models/shared/createemploymentapimodel.rbi +4 -0
  81. data/lib/stack_one/models/shared/createemploymentapimodel_contract_type.rb +37 -0
  82. data/lib/stack_one/models/shared/createemploymentapimodel_contract_type.rbi +15 -0
  83. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_4.rb +28 -0
  84. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_4.rbi +11 -0
  85. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_source_value.rb +28 -0
  86. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_source_value.rbi +11 -0
  87. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_value.rb +24 -0
  88. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_contract_type_value.rbi +11 -0
  89. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type.rb +37 -0
  90. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type.rbi +15 -0
  91. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_4.rb +28 -0
  92. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_4.rbi +11 -0
  93. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_source_value.rb +28 -0
  94. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_source_value.rbi +11 -0
  95. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_value.rb +37 -0
  96. data/lib/stack_one/models/shared/createemploymentapimodel_schemas_type_value.rbi +11 -0
  97. data/lib/stack_one/models/shared/createemploymentapimodel_type.rb +45 -0
  98. data/lib/stack_one/models/shared/createemploymentapimodel_type.rbi +19 -0
  99. data/lib/stack_one/models/shared/document.rb +2 -6
  100. data/lib/stack_one/models/shared/document.rbi +0 -2
  101. data/lib/stack_one/models/shared/employment.rb +2 -2
  102. data/lib/stack_one/models/shared/employment_schemas_contract_type.rb +20 -12
  103. data/lib/stack_one/models/shared/employment_schemas_contract_type.rbi +8 -4
  104. data/lib/stack_one/models/shared/employment_schemas_contract_type_contract_type.rb +37 -0
  105. data/lib/stack_one/models/shared/employment_schemas_contract_type_contract_type.rbi +15 -0
  106. data/lib/stack_one/models/shared/file.rb +2 -6
  107. data/lib/stack_one/models/shared/file.rbi +0 -2
  108. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_contract_type.rb +45 -0
  109. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_contract_type.rbi +19 -0
  110. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_employment.rb +10 -2
  111. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_employment.rbi +4 -0
  112. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_national_identity_number.rb +2 -2
  113. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_contract_type.rb +37 -0
  114. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_contract_type.rbi +15 -0
  115. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_4.rb +28 -0
  116. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_4.rbi +11 -0
  117. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_source_value.rb +28 -0
  118. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_source_value.rbi +11 -0
  119. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_value.rb +24 -0
  120. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_contract_type_value.rbi +11 -0
  121. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type.rb +37 -0
  122. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type.rbi +15 -0
  123. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_4.rb +28 -0
  124. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_4.rbi +11 -0
  125. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_source_value.rb +28 -0
  126. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_source_value.rbi +11 -0
  127. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_value.rb +37 -0
  128. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_employment_type_type_value.rbi +11 -0
  129. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_type.rb +37 -0
  130. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_schemas_type.rbi +15 -0
  131. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_type.rb +20 -12
  132. data/lib/stack_one/models/shared/hriscreateemployeerequestdto_type.rbi +8 -4
  133. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto.rb +10 -2
  134. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto.rbi +4 -0
  135. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_contract_type.rb +45 -0
  136. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_contract_type.rbi +19 -0
  137. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type.rb +37 -0
  138. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type.rbi +15 -0
  139. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_4.rb +28 -0
  140. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_4.rbi +11 -0
  141. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_source_value.rb +28 -0
  142. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_source_value.rbi +11 -0
  143. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_value.rb +24 -0
  144. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_contract_type_value.rbi +11 -0
  145. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type.rb +37 -0
  146. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type.rbi +15 -0
  147. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_4.rb +28 -0
  148. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_4.rbi +11 -0
  149. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_source_value.rb +28 -0
  150. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_source_value.rbi +11 -0
  151. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_value.rb +37 -0
  152. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_schemas_type_value.rbi +11 -0
  153. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_type.rb +45 -0
  154. data/lib/stack_one/models/shared/hriscreateemploymentrequestdto_type.rbi +19 -0
  155. data/lib/stack_one/models/shared/hrisdocumentapimodel.rb +2 -6
  156. data/lib/stack_one/models/shared/hrisdocumentapimodel.rbi +0 -2
  157. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_contract_type.rb +45 -0
  158. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_contract_type.rbi +19 -0
  159. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_employment.rb +10 -2
  160. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_employment.rbi +4 -0
  161. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_national_identity_number.rb +2 -2
  162. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_contract_type.rb +37 -0
  163. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_contract_type.rbi +15 -0
  164. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_4.rb +28 -0
  165. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_4.rbi +11 -0
  166. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_source_value.rb +28 -0
  167. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_source_value.rbi +11 -0
  168. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_value.rb +24 -0
  169. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_contract_type_value.rbi +11 -0
  170. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type.rb +37 -0
  171. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type.rbi +15 -0
  172. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_4.rb +28 -0
  173. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_4.rbi +11 -0
  174. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_source_value.rb +28 -0
  175. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_source_value.rbi +11 -0
  176. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_value.rb +37 -0
  177. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_employment_type_type_value.rbi +11 -0
  178. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_type.rb +37 -0
  179. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_schemas_type.rbi +15 -0
  180. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_type.rb +20 -12
  181. data/lib/stack_one/models/shared/hrisupdateemployeerequestdto_type.rbi +8 -4
  182. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto.rb +10 -2
  183. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto.rbi +4 -0
  184. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_contract_type.rb +45 -0
  185. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_contract_type.rbi +19 -0
  186. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type.rb +37 -0
  187. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type.rbi +15 -0
  188. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_4.rb +28 -0
  189. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_4.rbi +11 -0
  190. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_source_value.rb +28 -0
  191. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_source_value.rbi +11 -0
  192. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_value.rb +24 -0
  193. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_contract_type_value.rbi +11 -0
  194. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type.rb +37 -0
  195. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type.rbi +15 -0
  196. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_4.rb +28 -0
  197. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_4.rbi +11 -0
  198. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_source_value.rb +28 -0
  199. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_source_value.rbi +11 -0
  200. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_value.rb +37 -0
  201. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_schemas_type_value.rbi +11 -0
  202. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_type.rb +45 -0
  203. data/lib/stack_one/models/shared/hrisupdateemploymentrequestdto_type.rbi +19 -0
  204. data/lib/stack_one/models/shared/iamuser_avatar.rb +2 -6
  205. data/lib/stack_one/models/shared/iamuser_avatar.rbi +0 -2
  206. data/lib/stack_one/models/shared/id.rb +28 -0
  207. data/lib/stack_one/models/shared/id.rbi +11 -0
  208. data/lib/stack_one/models/shared/input.rb +41 -0
  209. data/lib/stack_one/models/shared/input.rbi +17 -0
  210. data/lib/stack_one/models/shared/jobpostingcompensation.rb +12 -12
  211. data/lib/stack_one/models/shared/jobpostingcompensation.rbi +6 -6
  212. data/lib/stack_one/models/shared/jsonrpcmessagedto.rb +45 -0
  213. data/lib/stack_one/models/shared/jsonrpcmessagedto.rbi +19 -0
  214. data/lib/stack_one/models/shared/lmsupsertcontentrequestdto_value.rb +5 -0
  215. data/lib/stack_one/models/shared/one.rb +28 -0
  216. data/lib/stack_one/models/shared/one.rbi +11 -0
  217. data/lib/stack_one/models/shared/params.rb +28 -0
  218. data/lib/stack_one/models/shared/params.rbi +11 -0
  219. data/lib/stack_one/models/shared/proxyrequestbody.rb +1 -1
  220. data/lib/stack_one/models/shared/schemebasic.rb +37 -0
  221. data/lib/stack_one/models/shared/schemebasic.rbi +15 -0
  222. data/lib/stack_one/models/shared/security.rb +4 -4
  223. data/lib/stack_one/models/shared/timeoff.rb +10 -10
  224. data/lib/stack_one/models/shared/timeoff.rbi +4 -4
  225. data/lib/stack_one/models/shared/workeligibility_document.rb +2 -6
  226. data/lib/stack_one/models/shared/workeligibility_document.rbi +0 -2
  227. data/lib/stack_one/models/shared.rb +64 -0
  228. data/lib/stack_one/request_logs.rb +1 -1
  229. data/lib/stack_one/sdkconfiguration.rb +3 -3
  230. data/lib/stack_one/stackone.rb +3 -1
  231. data/lib/stackone_client.rb +2 -0
  232. metadata +170 -2
@@ -0,0 +1,852 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module StackOne
14
+ extend T::Sig
15
+ class Mcp
16
+ extend T::Sig
17
+
18
+ # Model Context Protocol endpoint.
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url base_url, url_variables
39
+ end
40
+
41
+
42
+ sig { params(security: Models::Operations::StackoneMcpDeleteSecurity, mcp_session_id: ::String, x_account_id: ::String, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpDeleteResponse) }
43
+ def mcp_delete(security:, mcp_session_id:, x_account_id:, retries: nil, timeout_ms: nil)
44
+ # mcp_delete - Delete MCP session
45
+ # Close an existing MCP session for the provided session id
46
+ request = Models::Operations::StackoneMcpDeleteRequest.new(
47
+ mcp_session_id: mcp_session_id,
48
+ x_account_id: x_account_id
49
+ )
50
+ url, params = @sdk_configuration.get_server_details
51
+ base_url = Utils.template_url(url, params)
52
+ url = "#{base_url}/mcp"
53
+ headers = Utils.get_headers(request)
54
+ headers = T.cast(headers, T::Hash[String, String])
55
+ headers['Accept'] = 'application/json'
56
+ headers['user-agent'] = @sdk_configuration.user_agent
57
+ retries ||= @sdk_configuration.retry_config
58
+ retries ||= Utils::RetryConfig.new(
59
+ backoff: Utils::BackoffStrategy.new(
60
+ exponent: 1.5,
61
+ initial_interval: 500,
62
+ max_elapsed_time: 3_600_000,
63
+ max_interval: 60_000
64
+ ),
65
+ retry_connection_errors: true,
66
+ strategy: 'backoff'
67
+ )
68
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
69
+ retry_options[:retry_statuses] = [429, 408]
70
+
71
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
72
+ timeout ||= @sdk_configuration.timeout
73
+
74
+
75
+ connection = @sdk_configuration.client.dup
76
+ connection.request :retry, retry_options
77
+
78
+ hook_ctx = SDKHooks::HookContext.new(
79
+ config: @sdk_configuration,
80
+ base_url: base_url,
81
+ oauth2_scopes: nil,
82
+ operation_id: 'stackone_mcp_delete',
83
+ security_source: -> { security }
84
+ )
85
+
86
+ error = T.let(nil, T.nilable(StandardError))
87
+ http_response = T.let(nil, T.nilable(Faraday::Response))
88
+
89
+
90
+ begin
91
+ http_response = T.must(connection).delete(url) do |req|
92
+ req.headers.merge!(headers)
93
+ req.options.timeout = timeout unless timeout.nil?
94
+ Utils.configure_request_security(req, security)
95
+
96
+ @sdk_configuration.hooks.before_request(
97
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
98
+ hook_ctx: hook_ctx
99
+ ),
100
+ request: req
101
+ )
102
+ end
103
+ rescue StandardError => e
104
+ error = e
105
+ ensure
106
+ if http_response.nil? || Utils.error_status?(http_response.status)
107
+ http_response = @sdk_configuration.hooks.after_error(
108
+ error: error,
109
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
110
+ hook_ctx: hook_ctx
111
+ ),
112
+ response: http_response
113
+ )
114
+ else
115
+ http_response = @sdk_configuration.hooks.after_success(
116
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
117
+ hook_ctx: hook_ctx
118
+ ),
119
+ response: http_response
120
+ )
121
+ end
122
+
123
+ if http_response.nil?
124
+ raise error if !error.nil?
125
+ raise 'no response'
126
+ end
127
+ end
128
+
129
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
130
+ if Utils.match_status_code(http_response.status, ['200'])
131
+ http_response = @sdk_configuration.hooks.after_success(
132
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
133
+ hook_ctx: hook_ctx
134
+ ),
135
+ response: http_response
136
+ )
137
+ return Models::Operations::StackoneMcpDeleteResponse.new(
138
+ status_code: http_response.status,
139
+ content_type: content_type,
140
+ raw_response: http_response,
141
+ headers: {}
142
+ )
143
+ elsif Utils.match_status_code(http_response.status, ['400'])
144
+ if Utils.match_content_type(content_type, 'application/json')
145
+ http_response = @sdk_configuration.hooks.after_success(
146
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
147
+ hook_ctx: hook_ctx
148
+ ),
149
+ response: http_response
150
+ )
151
+ response_data = http_response.env.response_body
152
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestResponse)
153
+ raise obj
154
+ else
155
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
156
+ end
157
+ elsif Utils.match_status_code(http_response.status, ['401'])
158
+ if Utils.match_content_type(content_type, 'application/json')
159
+ http_response = @sdk_configuration.hooks.after_success(
160
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
161
+ hook_ctx: hook_ctx
162
+ ),
163
+ response: http_response
164
+ )
165
+ response_data = http_response.env.response_body
166
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedResponse)
167
+ raise obj
168
+ else
169
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
170
+ end
171
+ elsif Utils.match_status_code(http_response.status, ['403'])
172
+ if Utils.match_content_type(content_type, 'application/json')
173
+ http_response = @sdk_configuration.hooks.after_success(
174
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
175
+ hook_ctx: hook_ctx
176
+ ),
177
+ response: http_response
178
+ )
179
+ response_data = http_response.env.response_body
180
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ForbiddenResponse)
181
+ raise obj
182
+ else
183
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
184
+ end
185
+ elsif Utils.match_status_code(http_response.status, ['404'])
186
+ if Utils.match_content_type(content_type, 'application/json')
187
+ http_response = @sdk_configuration.hooks.after_success(
188
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
189
+ hook_ctx: hook_ctx
190
+ ),
191
+ response: http_response
192
+ )
193
+ response_data = http_response.env.response_body
194
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundResponse)
195
+ raise obj
196
+ else
197
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
198
+ end
199
+ elsif Utils.match_status_code(http_response.status, ['408'])
200
+ if Utils.match_content_type(content_type, 'application/json')
201
+ http_response = @sdk_configuration.hooks.after_success(
202
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
203
+ hook_ctx: hook_ctx
204
+ ),
205
+ response: http_response
206
+ )
207
+ response_data = http_response.env.response_body
208
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RequestTimedOutResponse)
209
+ raise obj
210
+ else
211
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
212
+ end
213
+ elsif Utils.match_status_code(http_response.status, ['409'])
214
+ if Utils.match_content_type(content_type, 'application/json')
215
+ http_response = @sdk_configuration.hooks.after_success(
216
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
217
+ hook_ctx: hook_ctx
218
+ ),
219
+ response: http_response
220
+ )
221
+ response_data = http_response.env.response_body
222
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictResponse)
223
+ raise obj
224
+ else
225
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
226
+ end
227
+ elsif Utils.match_status_code(http_response.status, ['422'])
228
+ if Utils.match_content_type(content_type, 'application/json')
229
+ http_response = @sdk_configuration.hooks.after_success(
230
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
231
+ hook_ctx: hook_ctx
232
+ ),
233
+ response: http_response
234
+ )
235
+ response_data = http_response.env.response_body
236
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnprocessableEntityResponse)
237
+ raise obj
238
+ else
239
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
240
+ end
241
+ elsif Utils.match_status_code(http_response.status, ['429'])
242
+ if Utils.match_content_type(content_type, 'application/json')
243
+ http_response = @sdk_configuration.hooks.after_success(
244
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
245
+ hook_ctx: hook_ctx
246
+ ),
247
+ response: http_response
248
+ )
249
+ response_data = http_response.env.response_body
250
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::TooManyRequestsResponse)
251
+ raise obj
252
+ else
253
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
254
+ end
255
+ elsif Utils.match_status_code(http_response.status, ['500'])
256
+ if Utils.match_content_type(content_type, 'application/json')
257
+ http_response = @sdk_configuration.hooks.after_success(
258
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
259
+ hook_ctx: hook_ctx
260
+ ),
261
+ response: http_response
262
+ )
263
+ response_data = http_response.env.response_body
264
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerErrorResponse)
265
+ raise obj
266
+ else
267
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
268
+ end
269
+ elsif Utils.match_status_code(http_response.status, ['501'])
270
+ if Utils.match_content_type(content_type, 'application/json')
271
+ http_response = @sdk_configuration.hooks.after_success(
272
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
273
+ hook_ctx: hook_ctx
274
+ ),
275
+ response: http_response
276
+ )
277
+ response_data = http_response.env.response_body
278
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotImplementedResponse)
279
+ raise obj
280
+ else
281
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
282
+ end
283
+ elsif Utils.match_status_code(http_response.status, ['502'])
284
+ if Utils.match_content_type(content_type, 'application/json')
285
+ http_response = @sdk_configuration.hooks.after_success(
286
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
287
+ hook_ctx: hook_ctx
288
+ ),
289
+ response: http_response
290
+ )
291
+ response_data = http_response.env.response_body
292
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadGatewayResponse)
293
+ raise obj
294
+ else
295
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
296
+ end
297
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
298
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
299
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
300
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
301
+ else
302
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
303
+
304
+ end
305
+ end
306
+
307
+
308
+ sig { params(security: Models::Operations::StackoneMcpGetSecurity, mcp_session_id: ::String, x_account_id: ::String, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpGetResponse) }
309
+ def mcp_get(security:, mcp_session_id:, x_account_id:, retries: nil, timeout_ms: nil)
310
+ # mcp_get - Open MCP SSE stream
311
+ # Open a dedicated Server-Sent Events stream for MCP notifications
312
+ request = Models::Operations::StackoneMcpGetRequest.new(
313
+ mcp_session_id: mcp_session_id,
314
+ x_account_id: x_account_id
315
+ )
316
+ url, params = @sdk_configuration.get_server_details
317
+ base_url = Utils.template_url(url, params)
318
+ url = "#{base_url}/mcp"
319
+ headers = Utils.get_headers(request)
320
+ headers = T.cast(headers, T::Hash[String, String])
321
+ headers['Accept'] = 'application/json'
322
+ headers['user-agent'] = @sdk_configuration.user_agent
323
+ retries ||= @sdk_configuration.retry_config
324
+ retries ||= Utils::RetryConfig.new(
325
+ backoff: Utils::BackoffStrategy.new(
326
+ exponent: 1.5,
327
+ initial_interval: 500,
328
+ max_elapsed_time: 3_600_000,
329
+ max_interval: 60_000
330
+ ),
331
+ retry_connection_errors: true,
332
+ strategy: 'backoff'
333
+ )
334
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
335
+ retry_options[:retry_statuses] = [429, 408]
336
+
337
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
338
+ timeout ||= @sdk_configuration.timeout
339
+
340
+
341
+ connection = @sdk_configuration.client.dup
342
+ connection.request :retry, retry_options
343
+
344
+ hook_ctx = SDKHooks::HookContext.new(
345
+ config: @sdk_configuration,
346
+ base_url: base_url,
347
+ oauth2_scopes: nil,
348
+ operation_id: 'stackone_mcp_get',
349
+ security_source: -> { security }
350
+ )
351
+
352
+ error = T.let(nil, T.nilable(StandardError))
353
+ http_response = T.let(nil, T.nilable(Faraday::Response))
354
+
355
+
356
+ begin
357
+ http_response = T.must(connection).get(url) do |req|
358
+ req.headers.merge!(headers)
359
+ req.options.timeout = timeout unless timeout.nil?
360
+ Utils.configure_request_security(req, security)
361
+
362
+ @sdk_configuration.hooks.before_request(
363
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
364
+ hook_ctx: hook_ctx
365
+ ),
366
+ request: req
367
+ )
368
+ end
369
+ rescue StandardError => e
370
+ error = e
371
+ ensure
372
+ if http_response.nil? || Utils.error_status?(http_response.status)
373
+ http_response = @sdk_configuration.hooks.after_error(
374
+ error: error,
375
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
376
+ hook_ctx: hook_ctx
377
+ ),
378
+ response: http_response
379
+ )
380
+ else
381
+ http_response = @sdk_configuration.hooks.after_success(
382
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
383
+ hook_ctx: hook_ctx
384
+ ),
385
+ response: http_response
386
+ )
387
+ end
388
+
389
+ if http_response.nil?
390
+ raise error if !error.nil?
391
+ raise 'no response'
392
+ end
393
+ end
394
+
395
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
396
+ if Utils.match_status_code(http_response.status, ['200'])
397
+ http_response = @sdk_configuration.hooks.after_success(
398
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
399
+ hook_ctx: hook_ctx
400
+ ),
401
+ response: http_response
402
+ )
403
+ return Models::Operations::StackoneMcpGetResponse.new(
404
+ status_code: http_response.status,
405
+ content_type: content_type,
406
+ raw_response: http_response,
407
+ headers: {}
408
+ )
409
+ elsif Utils.match_status_code(http_response.status, ['400'])
410
+ if Utils.match_content_type(content_type, 'application/json')
411
+ http_response = @sdk_configuration.hooks.after_success(
412
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
413
+ hook_ctx: hook_ctx
414
+ ),
415
+ response: http_response
416
+ )
417
+ response_data = http_response.env.response_body
418
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestResponse)
419
+ raise obj
420
+ else
421
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
422
+ end
423
+ elsif Utils.match_status_code(http_response.status, ['401'])
424
+ if Utils.match_content_type(content_type, 'application/json')
425
+ http_response = @sdk_configuration.hooks.after_success(
426
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
427
+ hook_ctx: hook_ctx
428
+ ),
429
+ response: http_response
430
+ )
431
+ response_data = http_response.env.response_body
432
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedResponse)
433
+ raise obj
434
+ else
435
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
436
+ end
437
+ elsif Utils.match_status_code(http_response.status, ['403'])
438
+ if Utils.match_content_type(content_type, 'application/json')
439
+ http_response = @sdk_configuration.hooks.after_success(
440
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
441
+ hook_ctx: hook_ctx
442
+ ),
443
+ response: http_response
444
+ )
445
+ response_data = http_response.env.response_body
446
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ForbiddenResponse)
447
+ raise obj
448
+ else
449
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
450
+ end
451
+ elsif Utils.match_status_code(http_response.status, ['404'])
452
+ if Utils.match_content_type(content_type, 'application/json')
453
+ http_response = @sdk_configuration.hooks.after_success(
454
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
455
+ hook_ctx: hook_ctx
456
+ ),
457
+ response: http_response
458
+ )
459
+ response_data = http_response.env.response_body
460
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundResponse)
461
+ raise obj
462
+ else
463
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
464
+ end
465
+ elsif Utils.match_status_code(http_response.status, ['408'])
466
+ if Utils.match_content_type(content_type, 'application/json')
467
+ http_response = @sdk_configuration.hooks.after_success(
468
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
469
+ hook_ctx: hook_ctx
470
+ ),
471
+ response: http_response
472
+ )
473
+ response_data = http_response.env.response_body
474
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RequestTimedOutResponse)
475
+ raise obj
476
+ else
477
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
478
+ end
479
+ elsif Utils.match_status_code(http_response.status, ['409'])
480
+ if Utils.match_content_type(content_type, 'application/json')
481
+ http_response = @sdk_configuration.hooks.after_success(
482
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
483
+ hook_ctx: hook_ctx
484
+ ),
485
+ response: http_response
486
+ )
487
+ response_data = http_response.env.response_body
488
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictResponse)
489
+ raise obj
490
+ else
491
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
492
+ end
493
+ elsif Utils.match_status_code(http_response.status, ['422'])
494
+ if Utils.match_content_type(content_type, 'application/json')
495
+ http_response = @sdk_configuration.hooks.after_success(
496
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
497
+ hook_ctx: hook_ctx
498
+ ),
499
+ response: http_response
500
+ )
501
+ response_data = http_response.env.response_body
502
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnprocessableEntityResponse)
503
+ raise obj
504
+ else
505
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
506
+ end
507
+ elsif Utils.match_status_code(http_response.status, ['429'])
508
+ if Utils.match_content_type(content_type, 'application/json')
509
+ http_response = @sdk_configuration.hooks.after_success(
510
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
511
+ hook_ctx: hook_ctx
512
+ ),
513
+ response: http_response
514
+ )
515
+ response_data = http_response.env.response_body
516
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::TooManyRequestsResponse)
517
+ raise obj
518
+ else
519
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
520
+ end
521
+ elsif Utils.match_status_code(http_response.status, ['500'])
522
+ if Utils.match_content_type(content_type, 'application/json')
523
+ http_response = @sdk_configuration.hooks.after_success(
524
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
525
+ hook_ctx: hook_ctx
526
+ ),
527
+ response: http_response
528
+ )
529
+ response_data = http_response.env.response_body
530
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerErrorResponse)
531
+ raise obj
532
+ else
533
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
534
+ end
535
+ elsif Utils.match_status_code(http_response.status, ['501'])
536
+ if Utils.match_content_type(content_type, 'application/json')
537
+ http_response = @sdk_configuration.hooks.after_success(
538
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
539
+ hook_ctx: hook_ctx
540
+ ),
541
+ response: http_response
542
+ )
543
+ response_data = http_response.env.response_body
544
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotImplementedResponse)
545
+ raise obj
546
+ else
547
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
548
+ end
549
+ elsif Utils.match_status_code(http_response.status, ['502'])
550
+ if Utils.match_content_type(content_type, 'application/json')
551
+ http_response = @sdk_configuration.hooks.after_success(
552
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
553
+ hook_ctx: hook_ctx
554
+ ),
555
+ response: http_response
556
+ )
557
+ response_data = http_response.env.response_body
558
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadGatewayResponse)
559
+ raise obj
560
+ else
561
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
562
+ end
563
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
564
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
565
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
566
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
567
+ else
568
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
569
+
570
+ end
571
+ end
572
+
573
+
574
+ sig { params(security: Models::Operations::StackoneMcpPostSecurity, json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, x_account_id: ::String, mcp_session_id: T.nilable(::String), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer)).returns(Models::Operations::StackoneMcpPostResponse) }
575
+ def mcp_post(security:, json_rpc_message_dto:, x_account_id:, mcp_session_id: nil, retries: nil, timeout_ms: nil)
576
+ # mcp_post - Send MCP JSON-RPC message
577
+ # Send JSON-RPC request to the MCP server over HTTP streaming transport
578
+ request = Models::Operations::StackoneMcpPostRequest.new(
579
+ json_rpc_message_dto: json_rpc_message_dto,
580
+ x_account_id: x_account_id,
581
+ mcp_session_id: mcp_session_id
582
+ )
583
+ url, params = @sdk_configuration.get_server_details
584
+ base_url = Utils.template_url(url, params)
585
+ url = "#{base_url}/mcp"
586
+ headers = Utils.get_headers(request)
587
+ headers = T.cast(headers, T::Hash[String, String])
588
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :json_rpc_message_dto, :json)
589
+ headers['content-type'] = req_content_type
590
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
591
+
592
+ if form
593
+ body = Utils.encode_form(form)
594
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
595
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
596
+ else
597
+ body = data
598
+ end
599
+ headers['Accept'] = 'application/json'
600
+ headers['user-agent'] = @sdk_configuration.user_agent
601
+ retries ||= @sdk_configuration.retry_config
602
+ retries ||= Utils::RetryConfig.new(
603
+ backoff: Utils::BackoffStrategy.new(
604
+ exponent: 1.5,
605
+ initial_interval: 500,
606
+ max_elapsed_time: 3_600_000,
607
+ max_interval: 60_000
608
+ ),
609
+ retry_connection_errors: true,
610
+ strategy: 'backoff'
611
+ )
612
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
613
+ retry_options[:retry_statuses] = [429, 408]
614
+
615
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
616
+ timeout ||= @sdk_configuration.timeout
617
+
618
+
619
+ connection = @sdk_configuration.client.dup
620
+ connection.request :retry, retry_options
621
+
622
+ hook_ctx = SDKHooks::HookContext.new(
623
+ config: @sdk_configuration,
624
+ base_url: base_url,
625
+ oauth2_scopes: nil,
626
+ operation_id: 'stackone_mcp_post',
627
+ security_source: -> { security }
628
+ )
629
+
630
+ error = T.let(nil, T.nilable(StandardError))
631
+ http_response = T.let(nil, T.nilable(Faraday::Response))
632
+
633
+
634
+ begin
635
+ http_response = T.must(connection).post(url) do |req|
636
+ req.body = body
637
+ req.headers.merge!(headers)
638
+ req.options.timeout = timeout unless timeout.nil?
639
+ Utils.configure_request_security(req, security)
640
+
641
+ @sdk_configuration.hooks.before_request(
642
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
643
+ hook_ctx: hook_ctx
644
+ ),
645
+ request: req
646
+ )
647
+ end
648
+ rescue StandardError => e
649
+ error = e
650
+ ensure
651
+ if http_response.nil? || Utils.error_status?(http_response.status)
652
+ http_response = @sdk_configuration.hooks.after_error(
653
+ error: error,
654
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
655
+ hook_ctx: hook_ctx
656
+ ),
657
+ response: http_response
658
+ )
659
+ else
660
+ http_response = @sdk_configuration.hooks.after_success(
661
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
662
+ hook_ctx: hook_ctx
663
+ ),
664
+ response: http_response
665
+ )
666
+ end
667
+
668
+ if http_response.nil?
669
+ raise error if !error.nil?
670
+ raise 'no response'
671
+ end
672
+ end
673
+
674
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
675
+ if Utils.match_status_code(http_response.status, ['200'])
676
+ http_response = @sdk_configuration.hooks.after_success(
677
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
678
+ hook_ctx: hook_ctx
679
+ ),
680
+ response: http_response
681
+ )
682
+ return Models::Operations::StackoneMcpPostResponse.new(
683
+ status_code: http_response.status,
684
+ content_type: content_type,
685
+ raw_response: http_response,
686
+ headers: {}
687
+ )
688
+ elsif Utils.match_status_code(http_response.status, ['400'])
689
+ if Utils.match_content_type(content_type, 'application/json')
690
+ http_response = @sdk_configuration.hooks.after_success(
691
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
692
+ hook_ctx: hook_ctx
693
+ ),
694
+ response: http_response
695
+ )
696
+ response_data = http_response.env.response_body
697
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestResponse)
698
+ raise obj
699
+ else
700
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
701
+ end
702
+ elsif Utils.match_status_code(http_response.status, ['401'])
703
+ if Utils.match_content_type(content_type, 'application/json')
704
+ http_response = @sdk_configuration.hooks.after_success(
705
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
706
+ hook_ctx: hook_ctx
707
+ ),
708
+ response: http_response
709
+ )
710
+ response_data = http_response.env.response_body
711
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedResponse)
712
+ raise obj
713
+ else
714
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
715
+ end
716
+ elsif Utils.match_status_code(http_response.status, ['403'])
717
+ if Utils.match_content_type(content_type, 'application/json')
718
+ http_response = @sdk_configuration.hooks.after_success(
719
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
720
+ hook_ctx: hook_ctx
721
+ ),
722
+ response: http_response
723
+ )
724
+ response_data = http_response.env.response_body
725
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ForbiddenResponse)
726
+ raise obj
727
+ else
728
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
729
+ end
730
+ elsif Utils.match_status_code(http_response.status, ['404'])
731
+ if Utils.match_content_type(content_type, 'application/json')
732
+ http_response = @sdk_configuration.hooks.after_success(
733
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
734
+ hook_ctx: hook_ctx
735
+ ),
736
+ response: http_response
737
+ )
738
+ response_data = http_response.env.response_body
739
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundResponse)
740
+ raise obj
741
+ else
742
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
743
+ end
744
+ elsif Utils.match_status_code(http_response.status, ['408'])
745
+ if Utils.match_content_type(content_type, 'application/json')
746
+ http_response = @sdk_configuration.hooks.after_success(
747
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
748
+ hook_ctx: hook_ctx
749
+ ),
750
+ response: http_response
751
+ )
752
+ response_data = http_response.env.response_body
753
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RequestTimedOutResponse)
754
+ raise obj
755
+ else
756
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
757
+ end
758
+ elsif Utils.match_status_code(http_response.status, ['409'])
759
+ if Utils.match_content_type(content_type, 'application/json')
760
+ http_response = @sdk_configuration.hooks.after_success(
761
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
762
+ hook_ctx: hook_ctx
763
+ ),
764
+ response: http_response
765
+ )
766
+ response_data = http_response.env.response_body
767
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictResponse)
768
+ raise obj
769
+ else
770
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
771
+ end
772
+ elsif Utils.match_status_code(http_response.status, ['422'])
773
+ if Utils.match_content_type(content_type, 'application/json')
774
+ http_response = @sdk_configuration.hooks.after_success(
775
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
776
+ hook_ctx: hook_ctx
777
+ ),
778
+ response: http_response
779
+ )
780
+ response_data = http_response.env.response_body
781
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnprocessableEntityResponse)
782
+ raise obj
783
+ else
784
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
785
+ end
786
+ elsif Utils.match_status_code(http_response.status, ['429'])
787
+ if Utils.match_content_type(content_type, 'application/json')
788
+ http_response = @sdk_configuration.hooks.after_success(
789
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
790
+ hook_ctx: hook_ctx
791
+ ),
792
+ response: http_response
793
+ )
794
+ response_data = http_response.env.response_body
795
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::TooManyRequestsResponse)
796
+ raise obj
797
+ else
798
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
799
+ end
800
+ elsif Utils.match_status_code(http_response.status, ['500'])
801
+ if Utils.match_content_type(content_type, 'application/json')
802
+ http_response = @sdk_configuration.hooks.after_success(
803
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
804
+ hook_ctx: hook_ctx
805
+ ),
806
+ response: http_response
807
+ )
808
+ response_data = http_response.env.response_body
809
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerErrorResponse)
810
+ raise obj
811
+ else
812
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
813
+ end
814
+ elsif Utils.match_status_code(http_response.status, ['501'])
815
+ if Utils.match_content_type(content_type, 'application/json')
816
+ http_response = @sdk_configuration.hooks.after_success(
817
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
818
+ hook_ctx: hook_ctx
819
+ ),
820
+ response: http_response
821
+ )
822
+ response_data = http_response.env.response_body
823
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotImplementedResponse)
824
+ raise obj
825
+ else
826
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
827
+ end
828
+ elsif Utils.match_status_code(http_response.status, ['502'])
829
+ if Utils.match_content_type(content_type, 'application/json')
830
+ http_response = @sdk_configuration.hooks.after_success(
831
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
832
+ hook_ctx: hook_ctx
833
+ ),
834
+ response: http_response
835
+ )
836
+ response_data = http_response.env.response_body
837
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadGatewayResponse)
838
+ raise obj
839
+ else
840
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
841
+ end
842
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
843
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
844
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
845
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
846
+ else
847
+ raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
848
+
849
+ end
850
+ end
851
+ end
852
+ end