hellosign-ruby-sdk 3.7.7 → 6.0.0.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1124) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -8
  3. data/Gemfile.lock +76 -0
  4. data/LICENSE +2 -2
  5. data/README.md +283 -85
  6. data/Rakefile +7 -13
  7. data/bin/generate-examples.php +269 -0
  8. data/bin/php +15 -0
  9. data/bin/replace +10 -0
  10. data/bin/ruby +15 -0
  11. data/bin/scan_for +31 -0
  12. data/composer.json +10 -0
  13. data/composer.lock +246 -0
  14. data/docs/AccountApi.md +300 -0
  15. data/docs/AccountCreateRequest.md +13 -0
  16. data/docs/AccountCreateResponse.md +12 -0
  17. data/docs/AccountGetResponse.md +11 -0
  18. data/docs/AccountResponse.md +18 -0
  19. data/docs/AccountResponseQuotas.md +13 -0
  20. data/docs/AccountUpdateRequest.md +12 -0
  21. data/docs/AccountVerifyRequest.md +10 -0
  22. data/docs/AccountVerifyResponse.md +11 -0
  23. data/docs/AccountVerifyResponseAccount.md +10 -0
  24. data/docs/ApiAppApi.md +402 -0
  25. data/docs/ApiAppCreateRequest.md +16 -0
  26. data/docs/ApiAppGetResponse.md +11 -0
  27. data/docs/ApiAppListResponse.md +12 -0
  28. data/docs/ApiAppResponse.md +19 -0
  29. data/docs/ApiAppResponseOAuth.md +13 -0
  30. data/docs/ApiAppResponseOptions.md +10 -0
  31. data/docs/ApiAppResponseOwnerAccount.md +11 -0
  32. data/docs/ApiAppResponseWhiteLabelingOptions.md +23 -0
  33. data/docs/ApiAppUpdateRequest.md +16 -0
  34. data/docs/BulkSendJobApi.md +155 -0
  35. data/docs/BulkSendJobGetResponse.md +13 -0
  36. data/docs/BulkSendJobGetResponseSignatureRequests.md +32 -0
  37. data/docs/BulkSendJobListResponse.md +12 -0
  38. data/docs/BulkSendJobResponse.md +13 -0
  39. data/docs/BulkSendJobSendResponse.md +11 -0
  40. data/docs/EmbeddedApi.md +158 -0
  41. data/docs/EmbeddedEditUrlRequest.md +19 -0
  42. data/docs/EmbeddedEditUrlResponse.md +11 -0
  43. data/docs/EmbeddedEditUrlResponseEmbedded.md +11 -0
  44. data/docs/EmbeddedSignUrlResponse.md +11 -0
  45. data/docs/EmbeddedSignUrlResponseEmbedded.md +11 -0
  46. data/docs/ErrorResponse.md +10 -0
  47. data/docs/ErrorResponseError.md +12 -0
  48. data/docs/EventCallbackAccountRequest.md +10 -0
  49. data/docs/EventCallbackAccountRequestPayload.md +12 -0
  50. data/docs/EventCallbackApiAppRequest.md +10 -0
  51. data/docs/EventCallbackApiAppRequestPayload.md +13 -0
  52. data/docs/EventCallbackRequestEvent.md +13 -0
  53. data/docs/EventCallbackRequestEventMetadata.md +13 -0
  54. data/docs/FileResponse.md +11 -0
  55. data/docs/ListInfoResponse.md +13 -0
  56. data/docs/OAuthApi.md +158 -0
  57. data/docs/OAuthTokenGenerateRequest.md +14 -0
  58. data/docs/OAuthTokenRefreshRequest.md +11 -0
  59. data/docs/OAuthTokenResponse.md +14 -0
  60. data/docs/ReportApi.md +83 -0
  61. data/docs/ReportCreateRequest.md +12 -0
  62. data/docs/ReportCreateResponse.md +11 -0
  63. data/docs/ReportResponse.md +13 -0
  64. data/docs/SignatureRequestApi.md +1233 -0
  65. data/docs/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.md +22 -0
  66. data/docs/SignatureRequestBulkSendWithTemplateRequest.md +22 -0
  67. data/docs/SignatureRequestCreateEmbeddedRequest.md +31 -0
  68. data/docs/SignatureRequestCreateEmbeddedWithTemplateRequest.md +24 -0
  69. data/docs/SignatureRequestGetResponse.md +11 -0
  70. data/docs/SignatureRequestListResponse.md +12 -0
  71. data/docs/SignatureRequestRemindRequest.md +11 -0
  72. data/docs/SignatureRequestResponse.md +31 -0
  73. data/docs/SignatureRequestResponseAttachment.md +15 -0
  74. data/docs/SignatureRequestResponseCustomFieldBase.md +17 -0
  75. data/docs/SignatureRequestResponseCustomFieldCheckbox.md +11 -0
  76. data/docs/SignatureRequestResponseCustomFieldText.md +11 -0
  77. data/docs/SignatureRequestResponseCustomFieldTypeEnum.md +9 -0
  78. data/docs/SignatureRequestResponseData.md +14 -0
  79. data/docs/SignatureRequestResponseDataBase.md +14 -0
  80. data/docs/SignatureRequestResponseDataTypeEnum.md +9 -0
  81. data/docs/SignatureRequestResponseDataValueCheckbox.md +11 -0
  82. data/docs/SignatureRequestResponseDataValueCheckboxMerge.md +11 -0
  83. data/docs/SignatureRequestResponseDataValueDateSigned.md +11 -0
  84. data/docs/SignatureRequestResponseDataValueDropdown.md +11 -0
  85. data/docs/SignatureRequestResponseDataValueInitials.md +11 -0
  86. data/docs/SignatureRequestResponseDataValueRadio.md +11 -0
  87. data/docs/SignatureRequestResponseDataValueSignature.md +11 -0
  88. data/docs/SignatureRequestResponseDataValueText.md +11 -0
  89. data/docs/SignatureRequestResponseDataValueTextMerge.md +11 -0
  90. data/docs/SignatureRequestResponseSignatures.md +26 -0
  91. data/docs/SignatureRequestSendRequest.md +32 -0
  92. data/docs/SignatureRequestSendWithTemplateRequest.md +25 -0
  93. data/docs/SignatureRequestUpdateRequest.md +12 -0
  94. data/docs/SubAttachment.md +13 -0
  95. data/docs/SubBulkSignerList.md +11 -0
  96. data/docs/SubBulkSignerListCustomField.md +11 -0
  97. data/docs/SubCC.md +11 -0
  98. data/docs/SubCustomField.md +17 -0
  99. data/docs/SubEditorOptions.md +11 -0
  100. data/docs/SubFieldOptions.md +10 -0
  101. data/docs/SubFormFieldGroup.md +12 -0
  102. data/docs/SubFormFieldRule.md +13 -0
  103. data/docs/SubFormFieldRuleAction.md +13 -0
  104. data/docs/SubFormFieldRuleTrigger.md +13 -0
  105. data/docs/SubFormFieldsPerDocumentBase.md +33 -0
  106. data/docs/SubFormFieldsPerDocumentCheckbox.md +12 -0
  107. data/docs/SubFormFieldsPerDocumentCheckboxMerge.md +10 -0
  108. data/docs/SubFormFieldsPerDocumentDateSigned.md +10 -0
  109. data/docs/SubFormFieldsPerDocumentDropdown.md +12 -0
  110. data/docs/SubFormFieldsPerDocumentHyperlink.md +12 -0
  111. data/docs/SubFormFieldsPerDocumentInitials.md +10 -0
  112. data/docs/SubFormFieldsPerDocumentRadio.md +12 -0
  113. data/docs/SubFormFieldsPerDocumentSignature.md +10 -0
  114. data/docs/SubFormFieldsPerDocumentText.md +17 -0
  115. data/docs/SubFormFieldsPerDocumentTextMerge.md +10 -0
  116. data/docs/SubFormFieldsPerDocumentTypeEnum.md +9 -0
  117. data/docs/SubMergeField.md +11 -0
  118. data/docs/SubOAuth.md +11 -0
  119. data/docs/SubOptions.md +10 -0
  120. data/docs/SubSignatureRequestSigner.md +15 -0
  121. data/docs/SubSignatureRequestTemplateSigner.md +15 -0
  122. data/docs/SubSigningOptions.md +16 -0
  123. data/docs/SubTeamResponse.md +11 -0
  124. data/docs/SubTemplateRole.md +11 -0
  125. data/docs/SubUnclaimedDraftSigner.md +12 -0
  126. data/docs/SubUnclaimedDraftTemplateSigner.md +12 -0
  127. data/docs/SubWhiteLabelingOptions.md +26 -0
  128. data/docs/TeamAddMemberRequest.md +12 -0
  129. data/docs/TeamApi.md +664 -0
  130. data/docs/TeamCreateRequest.md +10 -0
  131. data/docs/TeamGetInfoResponse.md +11 -0
  132. data/docs/TeamGetResponse.md +11 -0
  133. data/docs/TeamInfoResponse.md +14 -0
  134. data/docs/TeamMemberResponse.md +12 -0
  135. data/docs/TeamMembersResponse.md +12 -0
  136. data/docs/TeamParentResponse.md +11 -0
  137. data/docs/TeamRemoveMemberRequest.md +14 -0
  138. data/docs/TeamResponse.md +12 -0
  139. data/docs/TeamSubTeamsResponse.md +12 -0
  140. data/docs/TeamUpdateRequest.md +10 -0
  141. data/docs/TemplateAddUserRequest.md +12 -0
  142. data/docs/TemplateApi.md +638 -0
  143. data/docs/TemplateCreateEmbeddedDraftRequest.md +34 -0
  144. data/docs/TemplateCreateEmbeddedDraftResponse.md +11 -0
  145. data/docs/TemplateCreateEmbeddedDraftResponseTemplate.md +13 -0
  146. data/docs/TemplateEditResponse.md +10 -0
  147. data/docs/TemplateGetResponse.md +11 -0
  148. data/docs/TemplateListResponse.md +12 -0
  149. data/docs/TemplateRemoveUserRequest.md +11 -0
  150. data/docs/TemplateResponse.md +24 -0
  151. data/docs/TemplateResponseAccount.md +15 -0
  152. data/docs/TemplateResponseAccountQuota.md +13 -0
  153. data/docs/TemplateResponseCCRole.md +10 -0
  154. data/docs/TemplateResponseCustomField.md +22 -0
  155. data/docs/TemplateResponseDocument.md +15 -0
  156. data/docs/TemplateResponseDocumentCustomField.md +25 -0
  157. data/docs/TemplateResponseDocumentFieldGroup.md +11 -0
  158. data/docs/TemplateResponseDocumentFormField.md +23 -0
  159. data/docs/TemplateResponseDocumentStaticField.md +19 -0
  160. data/docs/TemplateResponseFieldAvgTextLength.md +11 -0
  161. data/docs/TemplateResponseNamedFormField.md +23 -0
  162. data/docs/TemplateResponseSignerRole.md +11 -0
  163. data/docs/TemplateUpdateFilesRequest.md +15 -0
  164. data/docs/TemplateUpdateFilesResponse.md +10 -0
  165. data/docs/TemplateUpdateFilesResponseTemplate.md +11 -0
  166. data/docs/UnclaimedDraftApi.md +359 -0
  167. data/docs/UnclaimedDraftCreateEmbeddedRequest.md +44 -0
  168. data/docs/UnclaimedDraftCreateEmbeddedWithTemplateRequest.md +38 -0
  169. data/docs/UnclaimedDraftCreateRequest.md +32 -0
  170. data/docs/UnclaimedDraftCreateResponse.md +11 -0
  171. data/docs/UnclaimedDraftEditAndResendRequest.md +17 -0
  172. data/docs/UnclaimedDraftResponse.md +15 -0
  173. data/docs/WarningResponse.md +11 -0
  174. data/{spec/fixtures/file.json → examples/.gitkeep} +0 -0
  175. data/examples/AccountCreate.rb +21 -0
  176. data/examples/AccountGet.rb +18 -0
  177. data/examples/AccountUpdate.rb +21 -0
  178. data/examples/AccountVerify.rb +21 -0
  179. data/examples/ApiAppCreate.rb +35 -0
  180. data/examples/ApiAppDelete.rb +20 -0
  181. data/examples/ApiAppGet.rb +20 -0
  182. data/examples/ApiAppList.rb +21 -0
  183. data/examples/ApiAppUpdate.rb +32 -0
  184. data/examples/BulkSendJobGet.rb +20 -0
  185. data/examples/BulkSendJobList.rb +21 -0
  186. data/examples/EmbeddedEditUrl.rb +24 -0
  187. data/examples/EmbeddedSignUrl.rb +20 -0
  188. data/examples/OauthTokenGenerate.rb +24 -0
  189. data/examples/OauthTokenRefresh.rb +21 -0
  190. data/examples/ReportCreate.rb +23 -0
  191. data/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.rb +59 -0
  192. data/examples/SignatureRequestBulkSendWithTemplate.rb +58 -0
  193. data/examples/SignatureRequestCancel.rb +20 -0
  194. data/examples/SignatureRequestCreateEmbedded.rb +46 -0
  195. data/examples/SignatureRequestCreateEmbeddedWithTemplate.rb +39 -0
  196. data/examples/SignatureRequestFiles.rb +20 -0
  197. data/examples/SignatureRequestGet.rb +20 -0
  198. data/examples/SignatureRequestList.rb +21 -0
  199. data/examples/SignatureRequestReleaseHold.rb +20 -0
  200. data/examples/SignatureRequestRemind.rb +23 -0
  201. data/examples/SignatureRequestRemove.rb +20 -0
  202. data/examples/SignatureRequestSend.rb +56 -0
  203. data/examples/SignatureRequestSendWithTemplate.rb +50 -0
  204. data/examples/SignatureRequestUpdate.rb +24 -0
  205. data/examples/TeamAddMember.rb +21 -0
  206. data/examples/TeamCreate.rb +21 -0
  207. data/examples/TeamDelete.rb +18 -0
  208. data/examples/TeamGet.rb +18 -0
  209. data/examples/TeamInfo.rb +18 -0
  210. data/examples/TeamMembers.rb +20 -0
  211. data/examples/TeamRemoveMember.rb +22 -0
  212. data/examples/TeamSubTeams.rb +20 -0
  213. data/examples/TeamUpdate.rb +21 -0
  214. data/examples/TemplateAddUser.rb +23 -0
  215. data/examples/TemplateCreateEmbeddedDraft.rb +49 -0
  216. data/examples/TemplateDelete.rb +20 -0
  217. data/examples/TemplateFiles.rb +20 -0
  218. data/examples/TemplateGet.rb +20 -0
  219. data/examples/TemplateList.rb +20 -0
  220. data/examples/TemplateRemoveUser.rb +23 -0
  221. data/examples/TemplateUpdateFiles.rb +23 -0
  222. data/examples/UnclaimedDraftCreate.rb +56 -0
  223. data/examples/UnclaimedDraftCreateEmbedded.rb +24 -0
  224. data/examples/UnclaimedDraftCreateEmbeddedWithTemplate.rb +35 -0
  225. data/examples/UnclaimedDraftEditAndResend.rb +24 -0
  226. data/hellosign-ruby-sdk.gemspec +37 -52
  227. data/lib/hellosign-ruby-sdk/api/account_api.rb +440 -0
  228. data/lib/hellosign-ruby-sdk/api/api_app_api.rb +501 -0
  229. data/lib/hellosign-ruby-sdk/api/bulk_send_job_api.rb +210 -0
  230. data/lib/hellosign-ruby-sdk/api/embedded_api.rb +231 -0
  231. data/lib/hellosign-ruby-sdk/api/o_auth_api.rb +212 -0
  232. data/lib/hellosign-ruby-sdk/api/report_api.rb +131 -0
  233. data/lib/hellosign-ruby-sdk/api/signature_request_api.rb +1435 -0
  234. data/lib/hellosign-ruby-sdk/api/team_api.rb +917 -0
  235. data/lib/hellosign-ruby-sdk/api/template_api.rb +852 -0
  236. data/lib/hellosign-ruby-sdk/api/unclaimed_draft_api.rb +464 -0
  237. data/lib/hellosign-ruby-sdk/api_client.rb +414 -0
  238. data/lib/hellosign-ruby-sdk/api_error.rb +57 -0
  239. data/lib/hellosign-ruby-sdk/configuration.rb +314 -0
  240. data/lib/hellosign-ruby-sdk/event_callback_helper.rb +32 -0
  241. data/lib/hellosign-ruby-sdk/models/account_create_request.rb +284 -0
  242. data/lib/hellosign-ruby-sdk/models/account_create_response.rb +269 -0
  243. data/lib/hellosign-ruby-sdk/models/account_get_response.rb +260 -0
  244. data/lib/hellosign-ruby-sdk/models/account_response.rb +331 -0
  245. data/lib/hellosign-ruby-sdk/models/account_response_quotas.rb +284 -0
  246. data/lib/hellosign-ruby-sdk/models/account_update_request.rb +270 -0
  247. data/lib/hellosign-ruby-sdk/models/account_verify_request.rb +254 -0
  248. data/lib/hellosign-ruby-sdk/models/account_verify_response.rb +260 -0
  249. data/lib/hellosign-ruby-sdk/models/account_verify_response_account.rb +249 -0
  250. data/lib/hellosign-ruby-sdk/models/api_app_create_request.rb +346 -0
  251. data/lib/hellosign-ruby-sdk/models/api_app_get_response.rb +260 -0
  252. data/lib/hellosign-ruby-sdk/models/api_app_list_response.rb +272 -0
  253. data/lib/hellosign-ruby-sdk/models/api_app_response.rb +341 -0
  254. data/lib/hellosign-ruby-sdk/models/api_app_response_o_auth.rb +282 -0
  255. data/lib/hellosign-ruby-sdk/models/api_app_response_options.rb +250 -0
  256. data/lib/hellosign-ruby-sdk/models/api_app_response_owner_account.rb +260 -0
  257. data/lib/hellosign-ruby-sdk/models/api_app_response_white_labeling_options.rb +366 -0
  258. data/lib/hellosign-ruby-sdk/models/api_app_update_request.rb +323 -0
  259. data/lib/hellosign-ruby-sdk/models/bulk_send_job_get_response.rb +281 -0
  260. data/lib/hellosign-ruby-sdk/models/bulk_send_job_get_response_signature_requests.rb +492 -0
  261. data/lib/hellosign-ruby-sdk/models/bulk_send_job_list_response.rb +272 -0
  262. data/lib/hellosign-ruby-sdk/models/bulk_send_job_response.rb +281 -0
  263. data/lib/hellosign-ruby-sdk/models/bulk_send_job_send_response.rb +260 -0
  264. data/lib/hellosign-ruby-sdk/models/embedded_edit_url_request.rb +356 -0
  265. data/lib/hellosign-ruby-sdk/models/embedded_edit_url_response.rb +260 -0
  266. data/lib/hellosign-ruby-sdk/models/embedded_edit_url_response_embedded.rb +260 -0
  267. data/lib/hellosign-ruby-sdk/models/embedded_sign_url_response.rb +260 -0
  268. data/lib/hellosign-ruby-sdk/models/embedded_sign_url_response_embedded.rb +260 -0
  269. data/lib/hellosign-ruby-sdk/models/error_response.rb +253 -0
  270. data/lib/hellosign-ruby-sdk/models/error_response_error.rb +280 -0
  271. data/lib/hellosign-ruby-sdk/models/event_callback_account_request.rb +253 -0
  272. data/lib/hellosign-ruby-sdk/models/event_callback_account_request_payload.rb +271 -0
  273. data/lib/hellosign-ruby-sdk/models/event_callback_api_app_request.rb +253 -0
  274. data/lib/hellosign-ruby-sdk/models/event_callback_api_app_request_payload.rb +280 -0
  275. data/lib/hellosign-ruby-sdk/models/event_callback_request_event.rb +333 -0
  276. data/lib/hellosign-ruby-sdk/models/event_callback_request_event_metadata.rb +284 -0
  277. data/lib/hellosign-ruby-sdk/models/file_response.rb +259 -0
  278. data/lib/hellosign-ruby-sdk/models/list_info_response.rb +281 -0
  279. data/lib/hellosign-ruby-sdk/models/o_auth_token_generate_request.rb +316 -0
  280. data/lib/hellosign-ruby-sdk/models/o_auth_token_refresh_request.rb +271 -0
  281. data/lib/hellosign-ruby-sdk/models/o_auth_token_response.rb +286 -0
  282. data/lib/hellosign-ruby-sdk/models/report_create_request.rb +318 -0
  283. data/lib/hellosign-ruby-sdk/models/report_create_response.rb +260 -0
  284. data/lib/hellosign-ruby-sdk/models/report_response.rb +304 -0
  285. data/lib/hellosign-ruby-sdk/models/signature_request_bulk_create_embedded_with_template_request.rb +445 -0
  286. data/lib/hellosign-ruby-sdk/models/signature_request_bulk_send_with_template_request.rb +439 -0
  287. data/lib/hellosign-ruby-sdk/models/signature_request_create_embedded_request.rb +551 -0
  288. data/lib/hellosign-ruby-sdk/models/signature_request_create_embedded_with_template_request.rb +475 -0
  289. data/lib/hellosign-ruby-sdk/models/signature_request_get_response.rb +260 -0
  290. data/lib/hellosign-ruby-sdk/models/signature_request_list_response.rb +272 -0
  291. data/lib/hellosign-ruby-sdk/models/signature_request_remind_request.rb +264 -0
  292. data/lib/hellosign-ruby-sdk/models/signature_request_response.rb +483 -0
  293. data/lib/hellosign-ruby-sdk/models/signature_request_response_attachment.rb +322 -0
  294. data/lib/hellosign-ruby-sdk/models/signature_request_response_custom_field_base.rb +325 -0
  295. data/lib/hellosign-ruby-sdk/models/signature_request_response_custom_field_checkbox.rb +271 -0
  296. data/lib/hellosign-ruby-sdk/models/signature_request_response_custom_field_text.rb +271 -0
  297. data/lib/hellosign-ruby-sdk/models/signature_request_response_custom_field_type_enum.rb +37 -0
  298. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_base.rb +335 -0
  299. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_type_enum.rb +44 -0
  300. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_checkbox.rb +265 -0
  301. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_checkbox_merge.rb +265 -0
  302. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_date_signed.rb +265 -0
  303. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_dropdown.rb +265 -0
  304. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_initials.rb +265 -0
  305. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_radio.rb +265 -0
  306. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_signature.rb +265 -0
  307. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_text.rb +265 -0
  308. data/lib/hellosign-ruby-sdk/models/signature_request_response_data_value_text_merge.rb +265 -0
  309. data/lib/hellosign-ruby-sdk/models/signature_request_response_signatures.rb +423 -0
  310. data/lib/hellosign-ruby-sdk/models/signature_request_send_request.rb +555 -0
  311. data/lib/hellosign-ruby-sdk/models/signature_request_send_with_template_request.rb +479 -0
  312. data/lib/hellosign-ruby-sdk/models/signature_request_update_request.rb +274 -0
  313. data/lib/hellosign-ruby-sdk/models/sub_attachment.rb +291 -0
  314. data/lib/hellosign-ruby-sdk/models/sub_bulk_signer_list.rb +263 -0
  315. data/lib/hellosign-ruby-sdk/models/sub_bulk_signer_list_custom_field.rb +269 -0
  316. data/lib/hellosign-ruby-sdk/models/sub_cc.rb +269 -0
  317. data/lib/hellosign-ruby-sdk/models/sub_custom_field.rb +287 -0
  318. data/lib/hellosign-ruby-sdk/models/sub_editor_options.rb +264 -0
  319. data/lib/hellosign-ruby-sdk/models/sub_field_options.rb +289 -0
  320. data/lib/hellosign-ruby-sdk/models/sub_form_field_group.rb +284 -0
  321. data/lib/hellosign-ruby-sdk/models/sub_form_field_rule.rb +352 -0
  322. data/lib/hellosign-ruby-sdk/models/sub_form_field_rule_action.rb +322 -0
  323. data/lib/hellosign-ruby-sdk/models/sub_form_field_rule_trigger.rb +325 -0
  324. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_base.rb +444 -0
  325. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_checkbox.rb +286 -0
  326. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_checkbox_merge.rb +261 -0
  327. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_date_signed.rb +261 -0
  328. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_dropdown.rb +307 -0
  329. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_hyperlink.rb +291 -0
  330. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_initials.rb +261 -0
  331. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_radio.rb +291 -0
  332. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_signature.rb +261 -0
  333. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_text.rb +363 -0
  334. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_text_merge.rb +261 -0
  335. data/lib/hellosign-ruby-sdk/models/sub_form_fields_per_document_type_enum.rb +45 -0
  336. data/lib/hellosign-ruby-sdk/models/sub_merge_field.rb +303 -0
  337. data/lib/hellosign-ruby-sdk/models/sub_o_auth.rb +284 -0
  338. data/lib/hellosign-ruby-sdk/models/sub_options.rb +252 -0
  339. data/lib/hellosign-ruby-sdk/models/sub_signature_request_signer.rb +368 -0
  340. data/lib/hellosign-ruby-sdk/models/sub_signature_request_template_signer.rb +372 -0
  341. data/lib/hellosign-ruby-sdk/models/sub_signing_options.rb +337 -0
  342. data/lib/hellosign-ruby-sdk/models/sub_team_response.rb +259 -0
  343. data/lib/hellosign-ruby-sdk/models/sub_template_role.rb +260 -0
  344. data/lib/hellosign-ruby-sdk/models/sub_unclaimed_draft_signer.rb +280 -0
  345. data/lib/hellosign-ruby-sdk/models/sub_unclaimed_draft_template_signer.rb +284 -0
  346. data/lib/hellosign-ruby-sdk/models/sub_white_labeling_options.rb +438 -0
  347. data/lib/hellosign-ruby-sdk/models/team_add_member_request.rb +303 -0
  348. data/lib/hellosign-ruby-sdk/models/team_create_request.rb +251 -0
  349. data/lib/hellosign-ruby-sdk/models/team_get_info_response.rb +260 -0
  350. data/lib/hellosign-ruby-sdk/models/team_get_response.rb +260 -0
  351. data/lib/hellosign-ruby-sdk/models/team_info_response.rb +289 -0
  352. data/lib/hellosign-ruby-sdk/models/team_member_response.rb +269 -0
  353. data/lib/hellosign-ruby-sdk/models/team_members_response.rb +271 -0
  354. data/lib/hellosign-ruby-sdk/models/team_parent_response.rb +260 -0
  355. data/lib/hellosign-ruby-sdk/models/team_remove_member_request.rb +323 -0
  356. data/lib/hellosign-ruby-sdk/models/team_response.rb +273 -0
  357. data/lib/hellosign-ruby-sdk/models/team_sub_teams_response.rb +271 -0
  358. data/lib/hellosign-ruby-sdk/models/team_update_request.rb +249 -0
  359. data/lib/hellosign-ruby-sdk/models/template_add_user_request.rb +271 -0
  360. data/lib/hellosign-ruby-sdk/models/template_create_embedded_draft_request.rb +566 -0
  361. data/lib/hellosign-ruby-sdk/models/template_create_embedded_draft_response.rb +260 -0
  362. data/lib/hellosign-ruby-sdk/models/template_create_embedded_draft_response_template.rb +282 -0
  363. data/lib/hellosign-ruby-sdk/models/template_edit_response.rb +249 -0
  364. data/lib/hellosign-ruby-sdk/models/template_get_response.rb +260 -0
  365. data/lib/hellosign-ruby-sdk/models/template_list_response.rb +272 -0
  366. data/lib/hellosign-ruby-sdk/models/template_remove_user_request.rb +259 -0
  367. data/lib/hellosign-ruby-sdk/models/template_response.rb +409 -0
  368. data/lib/hellosign-ruby-sdk/models/template_response_account.rb +298 -0
  369. data/lib/hellosign-ruby-sdk/models/template_response_account_quota.rb +280 -0
  370. data/lib/hellosign-ruby-sdk/models/template_response_cc_role.rb +249 -0
  371. data/lib/hellosign-ruby-sdk/models/template_response_custom_field.rb +406 -0
  372. data/lib/hellosign-ruby-sdk/models/template_response_document.rb +308 -0
  373. data/lib/hellosign-ruby-sdk/models/template_response_document_custom_field.rb +437 -0
  374. data/lib/hellosign-ruby-sdk/models/template_response_document_field_group.rb +259 -0
  375. data/lib/hellosign-ruby-sdk/models/template_response_document_form_field.rb +416 -0
  376. data/lib/hellosign-ruby-sdk/models/template_response_document_static_field.rb +340 -0
  377. data/lib/hellosign-ruby-sdk/models/template_response_field_avg_text_length.rb +260 -0
  378. data/lib/hellosign-ruby-sdk/models/template_response_named_form_field.rb +382 -0
  379. data/lib/hellosign-ruby-sdk/models/template_response_signer_role.rb +259 -0
  380. data/lib/hellosign-ruby-sdk/models/template_update_files_request.rb +335 -0
  381. data/lib/hellosign-ruby-sdk/models/template_update_files_response.rb +248 -0
  382. data/lib/hellosign-ruby-sdk/models/template_update_files_response_template.rb +262 -0
  383. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_create_embedded_request.rb +716 -0
  384. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_create_embedded_with_template_request.rb +630 -0
  385. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_create_request.rb +574 -0
  386. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_create_response.rb +260 -0
  387. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_edit_and_resend_request.rb +327 -0
  388. data/lib/hellosign-ruby-sdk/models/unclaimed_draft_response.rb +304 -0
  389. data/lib/hellosign-ruby-sdk/models/warning_response.rb +270 -0
  390. data/lib/hellosign-ruby-sdk/version.rb +15 -0
  391. data/lib/hellosign-ruby-sdk.rb +199 -3
  392. data/oas/.editorconfig +6 -0
  393. data/oas/.git +1 -0
  394. data/oas/.github/workflows/github-actions.yml +79 -0
  395. data/oas/.gitignore +2 -0
  396. data/oas/.redocly.lint-ignore.yaml +5 -0
  397. data/oas/.redocly.yaml +11 -0
  398. data/oas/LICENSE +68 -0
  399. data/oas/README.md +107 -0
  400. data/oas/bin/generate-sdk-oas.php +75 -0
  401. data/oas/bin/generate-translated-oas.php +144 -0
  402. data/oas/bin/php +15 -0
  403. data/oas/bin/plugins/decorators/check-for-beta-features.js +68 -0
  404. data/oas/bin/plugins/set-beta-plugin.js +14 -0
  405. data/oas/bin/redoc +17 -0
  406. data/oas/bin/validate +14 -0
  407. data/oas/build +23 -0
  408. data/oas/composer.json +15 -0
  409. data/oas/composer.lock +246 -0
  410. data/oas/examples/AccountCreate.cs +36 -0
  411. data/oas/examples/AccountCreate.java +42 -0
  412. data/oas/examples/AccountCreate.js +21 -0
  413. data/oas/examples/AccountCreate.php +25 -0
  414. data/oas/examples/AccountCreate.py +25 -0
  415. data/oas/examples/AccountCreate.rb +21 -0
  416. data/oas/examples/AccountCreate.ts +21 -0
  417. data/oas/examples/AccountGet.cs +32 -0
  418. data/oas/examples/AccountGet.java +39 -0
  419. data/oas/examples/AccountGet.js +17 -0
  420. data/oas/examples/AccountGet.php +22 -0
  421. data/oas/examples/AccountGet.py +21 -0
  422. data/oas/examples/AccountGet.rb +18 -0
  423. data/oas/examples/AccountGet.ts +17 -0
  424. data/oas/examples/AccountUpdate.cs +36 -0
  425. data/oas/examples/AccountUpdate.java +42 -0
  426. data/oas/examples/AccountUpdate.js +21 -0
  427. data/oas/examples/AccountUpdate.php +25 -0
  428. data/oas/examples/AccountUpdate.py +25 -0
  429. data/oas/examples/AccountUpdate.rb +21 -0
  430. data/oas/examples/AccountUpdate.ts +21 -0
  431. data/oas/examples/AccountVerify.cs +36 -0
  432. data/oas/examples/AccountVerify.java +42 -0
  433. data/oas/examples/AccountVerify.js +21 -0
  434. data/oas/examples/AccountVerify.php +25 -0
  435. data/oas/examples/AccountVerify.py +25 -0
  436. data/oas/examples/AccountVerify.rb +21 -0
  437. data/oas/examples/AccountVerify.ts +21 -0
  438. data/oas/examples/ApiAppCreate.cs +59 -0
  439. data/oas/examples/ApiAppCreate.java +61 -0
  440. data/oas/examples/ApiAppCreate.js +38 -0
  441. data/oas/examples/ApiAppCreate.php +42 -0
  442. data/oas/examples/ApiAppCreate.py +41 -0
  443. data/oas/examples/ApiAppCreate.rb +35 -0
  444. data/oas/examples/ApiAppCreate.ts +38 -0
  445. data/oas/examples/ApiAppDelete.cs +34 -0
  446. data/oas/examples/ApiAppDelete.java +40 -0
  447. data/oas/examples/ApiAppDelete.js +19 -0
  448. data/oas/examples/ApiAppDelete.php +23 -0
  449. data/oas/examples/ApiAppDelete.py +23 -0
  450. data/oas/examples/ApiAppDelete.rb +20 -0
  451. data/oas/examples/ApiAppDelete.ts +19 -0
  452. data/oas/examples/ApiAppGet.cs +34 -0
  453. data/oas/examples/ApiAppGet.java +41 -0
  454. data/oas/examples/ApiAppGet.js +19 -0
  455. data/oas/examples/ApiAppGet.php +24 -0
  456. data/oas/examples/ApiAppGet.py +23 -0
  457. data/oas/examples/ApiAppGet.rb +20 -0
  458. data/oas/examples/ApiAppGet.ts +19 -0
  459. data/oas/examples/ApiAppList.cs +35 -0
  460. data/oas/examples/ApiAppList.java +42 -0
  461. data/oas/examples/ApiAppList.js +20 -0
  462. data/oas/examples/ApiAppList.php +25 -0
  463. data/oas/examples/ApiAppList.py +27 -0
  464. data/oas/examples/ApiAppList.rb +21 -0
  465. data/oas/examples/ApiAppList.ts +20 -0
  466. data/oas/examples/ApiAppUpdate.cs +61 -0
  467. data/oas/examples/ApiAppUpdate.java +63 -0
  468. data/oas/examples/ApiAppUpdate.js +31 -0
  469. data/oas/examples/ApiAppUpdate.php +36 -0
  470. data/oas/examples/ApiAppUpdate.py +37 -0
  471. data/oas/examples/ApiAppUpdate.rb +32 -0
  472. data/oas/examples/ApiAppUpdate.ts +31 -0
  473. data/oas/examples/BulkSendJobGet.cs +35 -0
  474. data/oas/examples/BulkSendJobGet.java +41 -0
  475. data/oas/examples/BulkSendJobGet.js +19 -0
  476. data/oas/examples/BulkSendJobGet.php +24 -0
  477. data/oas/examples/BulkSendJobGet.py +23 -0
  478. data/oas/examples/BulkSendJobGet.rb +20 -0
  479. data/oas/examples/BulkSendJobGet.ts +19 -0
  480. data/oas/examples/BulkSendJobList.cs +36 -0
  481. data/oas/examples/BulkSendJobList.java +42 -0
  482. data/oas/examples/BulkSendJobList.js +20 -0
  483. data/oas/examples/BulkSendJobList.php +25 -0
  484. data/oas/examples/BulkSendJobList.py +27 -0
  485. data/oas/examples/BulkSendJobList.rb +21 -0
  486. data/oas/examples/BulkSendJobList.ts +20 -0
  487. data/oas/examples/EmbeddedEditUrl.cs +40 -0
  488. data/oas/examples/EmbeddedEditUrl.java +47 -0
  489. data/oas/examples/EmbeddedEditUrl.js +24 -0
  490. data/oas/examples/EmbeddedEditUrl.php +28 -0
  491. data/oas/examples/EmbeddedEditUrl.py +28 -0
  492. data/oas/examples/EmbeddedEditUrl.rb +24 -0
  493. data/oas/examples/EmbeddedEditUrl.ts +24 -0
  494. data/oas/examples/EmbeddedSignUrl.cs +35 -0
  495. data/oas/examples/EmbeddedSignUrl.java +44 -0
  496. data/oas/examples/EmbeddedSignUrl.js +19 -0
  497. data/oas/examples/EmbeddedSignUrl.php +24 -0
  498. data/oas/examples/EmbeddedSignUrl.py +23 -0
  499. data/oas/examples/EmbeddedSignUrl.rb +20 -0
  500. data/oas/examples/EmbeddedSignUrl.ts +19 -0
  501. data/oas/examples/OauthTokenGenerate.cs +40 -0
  502. data/oas/examples/OauthTokenGenerate.java +45 -0
  503. data/oas/examples/OauthTokenGenerate.js +23 -0
  504. data/oas/examples/OauthTokenGenerate.php +22 -0
  505. data/oas/examples/OauthTokenGenerate.py +28 -0
  506. data/oas/examples/OauthTokenGenerate.rb +24 -0
  507. data/oas/examples/OauthTokenGenerate.ts +23 -0
  508. data/oas/examples/OauthTokenRefresh.cs +37 -0
  509. data/oas/examples/OauthTokenRefresh.java +42 -0
  510. data/oas/examples/OauthTokenRefresh.js +20 -0
  511. data/oas/examples/OauthTokenRefresh.php +19 -0
  512. data/oas/examples/OauthTokenRefresh.py +25 -0
  513. data/oas/examples/OauthTokenRefresh.rb +21 -0
  514. data/oas/examples/OauthTokenRefresh.ts +20 -0
  515. data/oas/examples/ReportCreate.cs +42 -0
  516. data/oas/examples/ReportCreate.java +47 -0
  517. data/oas/examples/ReportCreate.js +23 -0
  518. data/oas/examples/ReportCreate.php +27 -0
  519. data/oas/examples/ReportCreate.py +27 -0
  520. data/oas/examples/ReportCreate.rb +23 -0
  521. data/oas/examples/ReportCreate.ts +23 -0
  522. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.cs +82 -0
  523. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.java +81 -0
  524. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.js +63 -0
  525. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.php +60 -0
  526. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.py +70 -0
  527. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.rb +59 -0
  528. data/oas/examples/SignatureRequestBulkCreateEmbeddedWithTemplate.ts +63 -0
  529. data/oas/examples/SignatureRequestBulkSendWithTemplate.cs +81 -0
  530. data/oas/examples/SignatureRequestBulkSendWithTemplate.java +81 -0
  531. data/oas/examples/SignatureRequestBulkSendWithTemplate.js +65 -0
  532. data/oas/examples/SignatureRequestBulkSendWithTemplate.php +62 -0
  533. data/oas/examples/SignatureRequestBulkSendWithTemplate.py +69 -0
  534. data/oas/examples/SignatureRequestBulkSendWithTemplate.rb +58 -0
  535. data/oas/examples/SignatureRequestBulkSendWithTemplate.ts +65 -0
  536. data/oas/examples/SignatureRequestCancel.cs +34 -0
  537. data/oas/examples/SignatureRequestCancel.java +42 -0
  538. data/oas/examples/SignatureRequestCancel.js +19 -0
  539. data/oas/examples/SignatureRequestCancel.php +23 -0
  540. data/oas/examples/SignatureRequestCancel.py +23 -0
  541. data/oas/examples/SignatureRequestCancel.rb +20 -0
  542. data/oas/examples/SignatureRequestCancel.ts +19 -0
  543. data/oas/examples/SignatureRequestCreateEmbedded.cs +64 -0
  544. data/oas/examples/SignatureRequestCreateEmbedded.java +69 -0
  545. data/oas/examples/SignatureRequestCreateEmbedded.js +52 -0
  546. data/oas/examples/SignatureRequestCreateEmbedded.php +53 -0
  547. data/oas/examples/SignatureRequestCreateEmbedded.py +53 -0
  548. data/oas/examples/SignatureRequestCreateEmbedded.rb +46 -0
  549. data/oas/examples/SignatureRequestCreateEmbedded.ts +52 -0
  550. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.cs +55 -0
  551. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.java +51 -0
  552. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.js +41 -0
  553. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.php +43 -0
  554. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.py +45 -0
  555. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.rb +39 -0
  556. data/oas/examples/SignatureRequestCreateEmbeddedWithTemplate.ts +41 -0
  557. data/oas/examples/SignatureRequestFiles.cs +34 -0
  558. data/oas/examples/SignatureRequestFiles.java +41 -0
  559. data/oas/examples/SignatureRequestFiles.js +19 -0
  560. data/oas/examples/SignatureRequestFiles.php +24 -0
  561. data/oas/examples/SignatureRequestFiles.py +23 -0
  562. data/oas/examples/SignatureRequestFiles.rb +20 -0
  563. data/oas/examples/SignatureRequestFiles.ts +19 -0
  564. data/oas/examples/SignatureRequestGet.cs +34 -0
  565. data/oas/examples/SignatureRequestGet.java +41 -0
  566. data/oas/examples/SignatureRequestGet.js +19 -0
  567. data/oas/examples/SignatureRequestGet.php +24 -0
  568. data/oas/examples/SignatureRequestGet.py +23 -0
  569. data/oas/examples/SignatureRequestGet.rb +20 -0
  570. data/oas/examples/SignatureRequestGet.ts +19 -0
  571. data/oas/examples/SignatureRequestList.cs +34 -0
  572. data/oas/examples/SignatureRequestList.java +41 -0
  573. data/oas/examples/SignatureRequestList.js +20 -0
  574. data/oas/examples/SignatureRequestList.php +25 -0
  575. data/oas/examples/SignatureRequestList.py +27 -0
  576. data/oas/examples/SignatureRequestList.rb +21 -0
  577. data/oas/examples/SignatureRequestList.ts +20 -0
  578. data/oas/examples/SignatureRequestReleaseHold.cs +34 -0
  579. data/oas/examples/SignatureRequestReleaseHold.java +40 -0
  580. data/oas/examples/SignatureRequestReleaseHold.js +19 -0
  581. data/oas/examples/SignatureRequestReleaseHold.php +24 -0
  582. data/oas/examples/SignatureRequestReleaseHold.py +23 -0
  583. data/oas/examples/SignatureRequestReleaseHold.rb +20 -0
  584. data/oas/examples/SignatureRequestReleaseHold.ts +19 -0
  585. data/oas/examples/SignatureRequestRemind.cs +38 -0
  586. data/oas/examples/SignatureRequestRemind.java +43 -0
  587. data/oas/examples/SignatureRequestRemind.js +23 -0
  588. data/oas/examples/SignatureRequestRemind.php +27 -0
  589. data/oas/examples/SignatureRequestRemind.py +27 -0
  590. data/oas/examples/SignatureRequestRemind.rb +23 -0
  591. data/oas/examples/SignatureRequestRemind.ts +23 -0
  592. data/oas/examples/SignatureRequestRemove.cs +33 -0
  593. data/oas/examples/SignatureRequestRemove.java +39 -0
  594. data/oas/examples/SignatureRequestRemove.js +19 -0
  595. data/oas/examples/SignatureRequestRemove.php +20 -0
  596. data/oas/examples/SignatureRequestRemove.py +23 -0
  597. data/oas/examples/SignatureRequestRemove.rb +20 -0
  598. data/oas/examples/SignatureRequestRemove.ts +19 -0
  599. data/oas/examples/SignatureRequestSend.cs +75 -0
  600. data/oas/examples/SignatureRequestSend.java +75 -0
  601. data/oas/examples/SignatureRequestSend.js +60 -0
  602. data/oas/examples/SignatureRequestSend.php +60 -0
  603. data/oas/examples/SignatureRequestSend.py +64 -0
  604. data/oas/examples/SignatureRequestSend.rb +56 -0
  605. data/oas/examples/SignatureRequestSend.ts +60 -0
  606. data/oas/examples/SignatureRequestSendWithTemplate.cs +69 -0
  607. data/oas/examples/SignatureRequestSendWithTemplate.java +75 -0
  608. data/oas/examples/SignatureRequestSendWithTemplate.js +54 -0
  609. data/oas/examples/SignatureRequestSendWithTemplate.php +54 -0
  610. data/oas/examples/SignatureRequestSendWithTemplate.py +58 -0
  611. data/oas/examples/SignatureRequestSendWithTemplate.rb +50 -0
  612. data/oas/examples/SignatureRequestSendWithTemplate.ts +54 -0
  613. data/oas/examples/SignatureRequestUpdate.cs +39 -0
  614. data/oas/examples/SignatureRequestUpdate.java +44 -0
  615. data/oas/examples/SignatureRequestUpdate.js +24 -0
  616. data/oas/examples/SignatureRequestUpdate.php +28 -0
  617. data/oas/examples/SignatureRequestUpdate.py +28 -0
  618. data/oas/examples/SignatureRequestUpdate.rb +24 -0
  619. data/oas/examples/SignatureRequestUpdate.ts +24 -0
  620. data/oas/examples/TeamAddMember.cs +36 -0
  621. data/oas/examples/TeamAddMember.java +41 -0
  622. data/oas/examples/TeamAddMember.js +21 -0
  623. data/oas/examples/TeamAddMember.php +25 -0
  624. data/oas/examples/TeamAddMember.py +25 -0
  625. data/oas/examples/TeamAddMember.rb +21 -0
  626. data/oas/examples/TeamAddMember.ts +21 -0
  627. data/oas/examples/TeamCreate.cs +36 -0
  628. data/oas/examples/TeamCreate.java +41 -0
  629. data/oas/examples/TeamCreate.js +21 -0
  630. data/oas/examples/TeamCreate.php +25 -0
  631. data/oas/examples/TeamCreate.py +25 -0
  632. data/oas/examples/TeamCreate.rb +21 -0
  633. data/oas/examples/TeamCreate.ts +21 -0
  634. data/oas/examples/TeamDelete.cs +31 -0
  635. data/oas/examples/TeamDelete.java +37 -0
  636. data/oas/examples/TeamDelete.js +17 -0
  637. data/oas/examples/TeamDelete.php +21 -0
  638. data/oas/examples/TeamDelete.py +21 -0
  639. data/oas/examples/TeamDelete.rb +18 -0
  640. data/oas/examples/TeamDelete.ts +17 -0
  641. data/oas/examples/TeamGet.cs +32 -0
  642. data/oas/examples/TeamGet.java +38 -0
  643. data/oas/examples/TeamGet.js +17 -0
  644. data/oas/examples/TeamGet.php +22 -0
  645. data/oas/examples/TeamGet.py +21 -0
  646. data/oas/examples/TeamGet.rb +18 -0
  647. data/oas/examples/TeamGet.ts +17 -0
  648. data/oas/examples/TeamInfo.cs +32 -0
  649. data/oas/examples/TeamInfo.java +38 -0
  650. data/oas/examples/TeamInfo.js +17 -0
  651. data/oas/examples/TeamInfo.php +22 -0
  652. data/oas/examples/TeamInfo.py +21 -0
  653. data/oas/examples/TeamInfo.rb +18 -0
  654. data/oas/examples/TeamInfo.ts +17 -0
  655. data/oas/examples/TeamMembers.cs +33 -0
  656. data/oas/examples/TeamMembers.java +40 -0
  657. data/oas/examples/TeamMembers.js +19 -0
  658. data/oas/examples/TeamMembers.php +24 -0
  659. data/oas/examples/TeamMembers.py +23 -0
  660. data/oas/examples/TeamMembers.rb +20 -0
  661. data/oas/examples/TeamMembers.ts +19 -0
  662. data/oas/examples/TeamRemoveMember.cs +37 -0
  663. data/oas/examples/TeamRemoveMember.java +42 -0
  664. data/oas/examples/TeamRemoveMember.js +22 -0
  665. data/oas/examples/TeamRemoveMember.php +26 -0
  666. data/oas/examples/TeamRemoveMember.py +26 -0
  667. data/oas/examples/TeamRemoveMember.rb +22 -0
  668. data/oas/examples/TeamRemoveMember.ts +22 -0
  669. data/oas/examples/TeamSubTeams.cs +33 -0
  670. data/oas/examples/TeamSubTeams.java +40 -0
  671. data/oas/examples/TeamSubTeams.js +19 -0
  672. data/oas/examples/TeamSubTeams.php +24 -0
  673. data/oas/examples/TeamSubTeams.py +23 -0
  674. data/oas/examples/TeamSubTeams.rb +20 -0
  675. data/oas/examples/TeamSubTeams.ts +19 -0
  676. data/oas/examples/TeamUpdate.cs +36 -0
  677. data/oas/examples/TeamUpdate.java +40 -0
  678. data/oas/examples/TeamUpdate.js +21 -0
  679. data/oas/examples/TeamUpdate.php +25 -0
  680. data/oas/examples/TeamUpdate.py +25 -0
  681. data/oas/examples/TeamUpdate.rb +21 -0
  682. data/oas/examples/TeamUpdate.ts +21 -0
  683. data/oas/examples/TemplateAddUser.cs +38 -0
  684. data/oas/examples/TemplateAddUser.java +42 -0
  685. data/oas/examples/TemplateAddUser.js +23 -0
  686. data/oas/examples/TemplateAddUser.php +27 -0
  687. data/oas/examples/TemplateAddUser.py +27 -0
  688. data/oas/examples/TemplateAddUser.rb +23 -0
  689. data/oas/examples/TemplateAddUser.ts +23 -0
  690. data/oas/examples/TemplateCreateEmbeddedDraft.cs +69 -0
  691. data/oas/examples/TemplateCreateEmbeddedDraft.java +70 -0
  692. data/oas/examples/TemplateCreateEmbeddedDraft.js +60 -0
  693. data/oas/examples/TemplateCreateEmbeddedDraft.php +53 -0
  694. data/oas/examples/TemplateCreateEmbeddedDraft.py +58 -0
  695. data/oas/examples/TemplateCreateEmbeddedDraft.rb +49 -0
  696. data/oas/examples/TemplateCreateEmbeddedDraft.ts +60 -0
  697. data/oas/examples/TemplateDelete.cs +33 -0
  698. data/oas/examples/TemplateDelete.java +39 -0
  699. data/oas/examples/TemplateDelete.js +19 -0
  700. data/oas/examples/TemplateDelete.php +23 -0
  701. data/oas/examples/TemplateDelete.py +23 -0
  702. data/oas/examples/TemplateDelete.rb +20 -0
  703. data/oas/examples/TemplateDelete.ts +19 -0
  704. data/oas/examples/TemplateFiles.cs +34 -0
  705. data/oas/examples/TemplateFiles.java +40 -0
  706. data/oas/examples/TemplateFiles.js +19 -0
  707. data/oas/examples/TemplateFiles.php +24 -0
  708. data/oas/examples/TemplateFiles.py +23 -0
  709. data/oas/examples/TemplateFiles.rb +20 -0
  710. data/oas/examples/TemplateFiles.ts +19 -0
  711. data/oas/examples/TemplateGet.cs +34 -0
  712. data/oas/examples/TemplateGet.java +40 -0
  713. data/oas/examples/TemplateGet.js +19 -0
  714. data/oas/examples/TemplateGet.php +24 -0
  715. data/oas/examples/TemplateGet.py +23 -0
  716. data/oas/examples/TemplateGet.rb +20 -0
  717. data/oas/examples/TemplateGet.ts +19 -0
  718. data/oas/examples/TemplateList.cs +34 -0
  719. data/oas/examples/TemplateList.java +40 -0
  720. data/oas/examples/TemplateList.js +19 -0
  721. data/oas/examples/TemplateList.php +24 -0
  722. data/oas/examples/TemplateList.py +25 -0
  723. data/oas/examples/TemplateList.rb +20 -0
  724. data/oas/examples/TemplateList.ts +19 -0
  725. data/oas/examples/TemplateRemoveUser.cs +38 -0
  726. data/oas/examples/TemplateRemoveUser.java +43 -0
  727. data/oas/examples/TemplateRemoveUser.js +23 -0
  728. data/oas/examples/TemplateRemoveUser.php +27 -0
  729. data/oas/examples/TemplateRemoveUser.py +27 -0
  730. data/oas/examples/TemplateRemoveUser.rb +23 -0
  731. data/oas/examples/TemplateRemoveUser.ts +23 -0
  732. data/oas/examples/TemplateUpdateFiles.cs +38 -0
  733. data/oas/examples/TemplateUpdateFiles.java +44 -0
  734. data/oas/examples/TemplateUpdateFiles.js +23 -0
  735. data/oas/examples/TemplateUpdateFiles.php +27 -0
  736. data/oas/examples/TemplateUpdateFiles.py +27 -0
  737. data/oas/examples/TemplateUpdateFiles.rb +23 -0
  738. data/oas/examples/TemplateUpdateFiles.ts +23 -0
  739. data/oas/examples/UnclaimedDraftCreate.cs +75 -0
  740. data/oas/examples/UnclaimedDraftCreate.java +73 -0
  741. data/oas/examples/UnclaimedDraftCreate.js +63 -0
  742. data/oas/examples/UnclaimedDraftCreate.php +60 -0
  743. data/oas/examples/UnclaimedDraftCreate.py +64 -0
  744. data/oas/examples/UnclaimedDraftCreate.rb +56 -0
  745. data/oas/examples/UnclaimedDraftCreate.ts +63 -0
  746. data/oas/examples/UnclaimedDraftCreateEmbedded.cs +39 -0
  747. data/oas/examples/UnclaimedDraftCreateEmbedded.java +46 -0
  748. data/oas/examples/UnclaimedDraftCreateEmbedded.js +24 -0
  749. data/oas/examples/UnclaimedDraftCreateEmbedded.php +28 -0
  750. data/oas/examples/UnclaimedDraftCreateEmbedded.py +28 -0
  751. data/oas/examples/UnclaimedDraftCreateEmbedded.rb +24 -0
  752. data/oas/examples/UnclaimedDraftCreateEmbedded.ts +24 -0
  753. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.cs +52 -0
  754. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.java +58 -0
  755. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.js +37 -0
  756. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.php +39 -0
  757. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.py +41 -0
  758. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.rb +35 -0
  759. data/oas/examples/UnclaimedDraftCreateEmbeddedWithTemplate.ts +37 -0
  760. data/oas/examples/UnclaimedDraftEditAndResend.cs +39 -0
  761. data/oas/examples/UnclaimedDraftEditAndResend.java +44 -0
  762. data/oas/examples/UnclaimedDraftEditAndResend.js +24 -0
  763. data/oas/examples/UnclaimedDraftEditAndResend.php +28 -0
  764. data/oas/examples/UnclaimedDraftEditAndResend.py +28 -0
  765. data/oas/examples/UnclaimedDraftEditAndResend.rb +24 -0
  766. data/oas/examples/UnclaimedDraftEditAndResend.ts +24 -0
  767. data/oas/examples/json/AccountCreateOAuthResponseExample.json +14 -0
  768. data/oas/examples/json/AccountCreateRequestDefaultExample.json +3 -0
  769. data/oas/examples/json/AccountCreateRequestOAuthExample.json +5 -0
  770. data/oas/examples/json/AccountCreateResponseExample.json +18 -0
  771. data/oas/examples/json/AccountGetResponseExample.json +18 -0
  772. data/oas/examples/json/AccountUpdateRequestDefaultExample.json +4 -0
  773. data/oas/examples/json/AccountUpdateResponseExample.json +18 -0
  774. data/oas/examples/json/AccountVerifyFoundResponseExample.json +5 -0
  775. data/oas/examples/json/AccountVerifyNotFoundResponseExample.json +1 -0
  776. data/oas/examples/json/AccountVerifyRequestDefaultExample.json +3 -0
  777. data/oas/examples/json/ApiAppCreateRequestDefaultExample.json +17 -0
  778. data/oas/examples/json/ApiAppCreateRequestFormDataExample.json +18 -0
  779. data/oas/examples/json/ApiAppCreateResponseExample.json +26 -0
  780. data/oas/examples/json/ApiAppGetResponseExample.json +22 -0
  781. data/oas/examples/json/ApiAppListResponseExample.json +43 -0
  782. data/oas/examples/json/ApiAppUpdateRequestDefaultExample.json +8 -0
  783. data/oas/examples/json/ApiAppUpdateRequestFormDataExample.json +9 -0
  784. data/oas/examples/json/ApiAppUpdateResponseExample.json +26 -0
  785. data/oas/examples/json/BulkSendJobGetResponseExample.json +69 -0
  786. data/oas/examples/json/BulkSendJobListResponseExample.json +22 -0
  787. data/oas/examples/json/EmbeddedEditUrlRequestDefaultExample.json +6 -0
  788. data/oas/examples/json/EmbeddedEditUrlResponseExample.json +6 -0
  789. data/oas/examples/json/EmbeddedSignUrlResponseExample.json +6 -0
  790. data/oas/examples/json/Error400ResponseExample.json +7 -0
  791. data/oas/examples/json/Error401ResponseExample.json +6 -0
  792. data/oas/examples/json/Error402ResponseExample.json +6 -0
  793. data/oas/examples/json/Error403ResponseExample.json +6 -0
  794. data/oas/examples/json/Error404ResponseExample.json +6 -0
  795. data/oas/examples/json/Error409ResponseExample.json +6 -0
  796. data/oas/examples/json/Error410ResponseExample.json +6 -0
  797. data/oas/examples/json/Error422ResponseExample.json +6 -0
  798. data/oas/examples/json/Error429ResponseExample.json +6 -0
  799. data/oas/examples/json/Error4XXResponseExample.json +7 -0
  800. data/oas/examples/json/EventCallbackAccountSignatureRequestSentExample.json +51 -0
  801. data/oas/examples/json/EventCallbackAccountTemplateCreatedExample.json +140 -0
  802. data/oas/examples/json/EventCallbackApiAppAccountConfirmedExample.json +28 -0
  803. data/oas/examples/json/EventCallbackApiAppSignatureRequestSentExample.json +51 -0
  804. data/oas/examples/json/EventCallbackApiAppTemplateCreatedExample.json +140 -0
  805. data/oas/examples/json/OAuthTokenGenerateRequestExample.json +7 -0
  806. data/oas/examples/json/OAuthTokenGenerateResponseExample.json +7 -0
  807. data/oas/examples/json/OAuthTokenRefreshRequestExample.json +4 -0
  808. data/oas/examples/json/OAuthTokenRefreshResponseExample.json +6 -0
  809. data/oas/examples/json/ReportCreateRequestDefaultExample.json +8 -0
  810. data/oas/examples/json/ReportCreateResponseExample.json +11 -0
  811. data/oas/examples/json/SignatureRequestBulkCreateEmbeddedWithTemplateRequestDefaultExample.json +49 -0
  812. data/oas/examples/json/SignatureRequestBulkCreateEmbeddedWithTemplateRequestFormDataExample.json +16 -0
  813. data/oas/examples/json/SignatureRequestBulkCreateEmbeddedWithTemplateResponseExample.json +8 -0
  814. data/oas/examples/json/SignatureRequestBulkSendWithTemplateRequestDefaultExample.json +48 -0
  815. data/oas/examples/json/SignatureRequestBulkSendWithTemplateRequestFormDataExample.json +15 -0
  816. data/oas/examples/json/SignatureRequestBulkSendWithTemplateResponseExample.json +8 -0
  817. data/oas/examples/json/SignatureRequestCreateEmbeddedRequestDefaultExample.json +33 -0
  818. data/oas/examples/json/SignatureRequestCreateEmbeddedRequestFormDataExample.json +34 -0
  819. data/oas/examples/json/SignatureRequestCreateEmbeddedResponseExample.json +52 -0
  820. data/oas/examples/json/SignatureRequestCreateEmbeddedWithTemplateRequestDefaultExample.json +23 -0
  821. data/oas/examples/json/SignatureRequestCreateEmbeddedWithTemplateRequestFormDataExample.json +27 -0
  822. data/oas/examples/json/SignatureRequestCreateEmbeddedWithTemplateResponseExample.json +45 -0
  823. data/oas/examples/json/SignatureRequestFilesResponseExample.json +4 -0
  824. data/oas/examples/json/SignatureRequestGetResponseExample.json +58 -0
  825. data/oas/examples/json/SignatureRequestListResponseExample.json +112 -0
  826. data/oas/examples/json/SignatureRequestReleaseHoldResponseExample.json +32 -0
  827. data/oas/examples/json/SignatureRequestRemindRequestDefaultExample.json +3 -0
  828. data/oas/examples/json/SignatureRequestRemindResponseExample.json +35 -0
  829. data/oas/examples/json/SignatureRequestSendFormDataExample.json +40 -0
  830. data/oas/examples/json/SignatureRequestSendRequestDefaultExample.json +39 -0
  831. data/oas/examples/json/SignatureRequestSendResponseExample.json +76 -0
  832. data/oas/examples/json/SignatureRequestSendWithTemplateRequestDefaultExample.json +36 -0
  833. data/oas/examples/json/SignatureRequestSendWithTemplateRequestFormDataExample.json +40 -0
  834. data/oas/examples/json/SignatureRequestSendWithTemplateResponseExample.json +46 -0
  835. data/oas/examples/json/SignatureRequestUpdateRequestDefaultExample.json +4 -0
  836. data/oas/examples/json/SignatureRequestUpdateResponseExample.json +32 -0
  837. data/oas/examples/json/TeamAddMemberRequestAccountIdExample.json +3 -0
  838. data/oas/examples/json/TeamAddMemberRequestEmailAddressExample.json +3 -0
  839. data/oas/examples/json/TeamAddMemberResponseExample.json +34 -0
  840. data/oas/examples/json/TeamCreateRequestDefaultExample.json +3 -0
  841. data/oas/examples/json/TeamCreateResponseExample.json +21 -0
  842. data/oas/examples/json/TeamDoesNotExistResponseExample.json +6 -0
  843. data/oas/examples/json/TeamGetInfoResponseExample.json +12 -0
  844. data/oas/examples/json/TeamGetResponseExample.json +34 -0
  845. data/oas/examples/json/TeamGetRootInfoResponseExample.json +9 -0
  846. data/oas/examples/json/TeamMembersResponseExample.json +20 -0
  847. data/oas/examples/json/TeamRemoveMemberRequestAccountIdExample.json +3 -0
  848. data/oas/examples/json/TeamRemoveMemberRequestEmailAddressExample.json +4 -0
  849. data/oas/examples/json/TeamRemoveMemberResponseExample.json +21 -0
  850. data/oas/examples/json/TeamSubTeamsResponseExample.json +18 -0
  851. data/oas/examples/json/TeamUpdateRequestDefaultExample.json +3 -0
  852. data/oas/examples/json/TeamUpdateResponseExample.json +21 -0
  853. data/oas/examples/json/TemplateAddUserRequestDefaultExample.json +3 -0
  854. data/oas/examples/json/TemplateAddUserResponseExample.json +202 -0
  855. data/oas/examples/json/TemplateCreateEmbeddedDraftRequestDefaultExample.json +36 -0
  856. data/oas/examples/json/TemplateCreateEmbeddedDraftRequestFormDataExample.json +36 -0
  857. data/oas/examples/json/TemplateCreateEmbeddedDraftRequestFormFieldGroupsExample.json +75 -0
  858. data/oas/examples/json/TemplateCreateEmbeddedDraftRequestFormFieldRulesExample.json +85 -0
  859. data/oas/examples/json/TemplateCreateEmbeddedDraftRequestFormFieldsPerDocumentExample.json +66 -0
  860. data/oas/examples/json/TemplateCreateEmbeddedDraftResponseExample.json +7 -0
  861. data/oas/examples/json/TemplateFilesResponseExample.json +4 -0
  862. data/oas/examples/json/TemplateGetResponseExample.json +190 -0
  863. data/oas/examples/json/TemplateListResponseExample.json +263 -0
  864. data/oas/examples/json/TemplateRemoveUserRequestDefaultExample.json +3 -0
  865. data/oas/examples/json/TemplateRemoveUserResponseExample.json +190 -0
  866. data/oas/examples/json/TemplateUpdateFilesRequestDefaultExample.json +5 -0
  867. data/oas/examples/json/TemplateUpdateFilesRequestFormDataExample.json +5 -0
  868. data/oas/examples/json/TemplateUpdateFilesResponseExample.json +5 -0
  869. data/oas/examples/json/UnclaimedDraftCreateEmbeddedRequestDefaultExample.json +8 -0
  870. data/oas/examples/json/UnclaimedDraftCreateEmbeddedRequestFormDataExample.json +8 -0
  871. data/oas/examples/json/UnclaimedDraftCreateEmbeddedRequestFormFieldGroupsExample.json +47 -0
  872. data/oas/examples/json/UnclaimedDraftCreateEmbeddedRequestFormFieldRulesExample.json +57 -0
  873. data/oas/examples/json/UnclaimedDraftCreateEmbeddedRequestFormFieldsPerDocumentExample.json +38 -0
  874. data/oas/examples/json/UnclaimedDraftCreateEmbeddedResponseExample.json +10 -0
  875. data/oas/examples/json/UnclaimedDraftCreateEmbeddedWithTemplateRequestDefaultExample.json +21 -0
  876. data/oas/examples/json/UnclaimedDraftCreateEmbeddedWithTemplateRequestFormDataExample.json +24 -0
  877. data/oas/examples/json/UnclaimedDraftCreateEmbeddedWithTemplateResponseExample.json +9 -0
  878. data/oas/examples/json/UnclaimedDraftCreateRequestDefaultExample.json +14 -0
  879. data/oas/examples/json/UnclaimedDraftCreateRequestFormDataExample.json +6 -0
  880. data/oas/examples/json/UnclaimedDraftCreateRequestFormFieldGroupsExample.json +45 -0
  881. data/oas/examples/json/UnclaimedDraftCreateRequestFormFieldRulesExample.json +55 -0
  882. data/oas/examples/json/UnclaimedDraftCreateRequestFormFieldsPerDocumentExample.json +36 -0
  883. data/oas/examples/json/UnclaimedDraftCreateResponseExample.json +8 -0
  884. data/oas/examples/json/UnclaimedDraftEditAndResendExample.json +10 -0
  885. data/oas/examples/json/UnclaimedDraftEditAndResendRequestDefaultExample.json +4 -0
  886. data/oas/markdown/en/descriptions/account-callback-description.md +5 -0
  887. data/oas/markdown/en/descriptions/api-app-callback-description.md +5 -0
  888. data/oas/markdown/en/tags/account-tag-description.md +1 -0
  889. data/oas/markdown/en/tags/api-app-tag-description.md +1 -0
  890. data/oas/markdown/en/tags/bulk-send-job-tag-description.md +1 -0
  891. data/oas/markdown/en/tags/callbacks-tag-description.md +7 -0
  892. data/oas/markdown/en/tags/embedded-tag-description.md +1 -0
  893. data/oas/markdown/en/tags/oauth-tag-description.md +20 -0
  894. data/oas/markdown/en/tags/report-tag-description.md +1 -0
  895. data/oas/markdown/en/tags/signature-request-tag-description.md +1 -0
  896. data/oas/markdown/en/tags/team-tag-description.md +1 -0
  897. data/oas/markdown/en/tags/template-tag-description.md +1 -0
  898. data/oas/markdown/en/tags/unclaimed-draft-tag-description.md +1 -0
  899. data/oas/openapi-raw.yaml +9709 -0
  900. data/oas/openapi-sdk.yaml +10206 -0
  901. data/oas/openapi.yaml +10251 -0
  902. data/oas/src/Hello/OpenApi/RawFile.php +220 -0
  903. data/oas/src/Hello/OpenApi/TranslationResult.php +53 -0
  904. data/oas/test_fixtures/AccountCreateRequest.json +7 -0
  905. data/oas/test_fixtures/AccountCreateResponse.json +15 -0
  906. data/oas/test_fixtures/AccountGetResponse.json +14 -0
  907. data/oas/test_fixtures/AccountUpdateRequest.json +5 -0
  908. data/oas/test_fixtures/AccountVerifyRequest.json +5 -0
  909. data/oas/test_fixtures/AccountVerifyResponse.json +7 -0
  910. data/oas/test_fixtures/ApiAppCreateRequest.json +36 -0
  911. data/oas/test_fixtures/ApiAppGetResponse.json +27 -0
  912. data/oas/test_fixtures/ApiAppListResponse.json +42 -0
  913. data/oas/test_fixtures/ApiAppUpdateRequest.json +36 -0
  914. data/oas/test_fixtures/BulkSendJobGetResponse.json +67 -0
  915. data/oas/test_fixtures/BulkSendJobListResponse.json +24 -0
  916. data/oas/test_fixtures/BulkSendJobSendResponse.json +10 -0
  917. data/oas/test_fixtures/EmbeddedEditUrlRequest.json +28 -0
  918. data/oas/test_fixtures/EmbeddedEditUrlResponse.json +8 -0
  919. data/oas/test_fixtures/EmbeddedSignUrlResponse.json +8 -0
  920. data/oas/test_fixtures/ErrorResponse.json +9 -0
  921. data/oas/test_fixtures/EventCallbackHelper.json +50 -0
  922. data/oas/test_fixtures/FileResponse.json +6 -0
  923. data/oas/test_fixtures/OAuthTokenGenerateRequest.json +9 -0
  924. data/oas/test_fixtures/OAuthTokenRefreshRequest.json +6 -0
  925. data/oas/test_fixtures/OAuthTokenResponse.json +15 -0
  926. data/oas/test_fixtures/ReportCreateRequest.json +10 -0
  927. data/oas/test_fixtures/ReportCreateResponse.json +13 -0
  928. data/oas/test_fixtures/SignatureRequestBulkCreateEmbeddedWithTemplateRequest.json +68 -0
  929. data/oas/test_fixtures/SignatureRequestBulkSendWithTemplateRequest.json +67 -0
  930. data/oas/test_fixtures/SignatureRequestCreateEmbeddedRequest.json +121 -0
  931. data/oas/test_fixtures/SignatureRequestCreateEmbeddedWithTemplateRequest.json +63 -0
  932. data/oas/test_fixtures/SignatureRequestGetResponse.json +146 -0
  933. data/oas/test_fixtures/SignatureRequestListResponse.json +102 -0
  934. data/oas/test_fixtures/SignatureRequestRemindRequest.json +5 -0
  935. data/oas/test_fixtures/SignatureRequestSendRequest.json +271 -0
  936. data/oas/test_fixtures/SignatureRequestSendWithTemplateRequest.json +48 -0
  937. data/oas/test_fixtures/SignatureRequestUpdateRequest.json +7 -0
  938. data/oas/test_fixtures/SubFormFieldsPerDocument.json +107 -0
  939. data/oas/test_fixtures/TeamAddMemberRequest.json +6 -0
  940. data/oas/test_fixtures/TeamCreateRequest.json +5 -0
  941. data/oas/test_fixtures/TeamGetResponse.json +34 -0
  942. data/oas/test_fixtures/TeamRemoveMemberRequest.json +7 -0
  943. data/oas/test_fixtures/TeamUpdateRequest.json +5 -0
  944. data/oas/test_fixtures/TemplateAddUserRequest.json +7 -0
  945. data/oas/test_fixtures/TemplateCreateEmbeddedDraftRequest.json +121 -0
  946. data/oas/test_fixtures/TemplateCreateEmbeddedDraftResponse.json +9 -0
  947. data/oas/test_fixtures/TemplateGetResponse.json +102 -0
  948. data/oas/test_fixtures/TemplateListResponse.json +143 -0
  949. data/oas/test_fixtures/TemplateRemoveUserRequest.json +6 -0
  950. data/oas/test_fixtures/TemplateUpdateFilesRequest.json +14 -0
  951. data/oas/test_fixtures/TemplateUpdateFilesResponse.json +7 -0
  952. data/oas/test_fixtures/UnclaimedDraftCreateEmbeddedRequest.json +137 -0
  953. data/oas/test_fixtures/UnclaimedDraftCreateEmbeddedWithTemplateRequest.json +70 -0
  954. data/oas/test_fixtures/UnclaimedDraftCreateRequest.json +122 -0
  955. data/oas/test_fixtures/UnclaimedDraftCreateResponse.json +9 -0
  956. data/oas/test_fixtures/UnclaimedDraftEditAndResendRequest.json +15 -0
  957. data/oas/test_fixtures/pdf-sample-2.pdf +0 -0
  958. data/oas/test_fixtures/pdf-sample.pdf +0 -0
  959. data/oas/translations/en-plugin.json +8 -0
  960. data/oas/translations/en.yaml +1513 -0
  961. data/openapi-config.yaml +21 -0
  962. data/run-build +47 -0
  963. data/spec/api/account_api_spec.rb +110 -0
  964. data/spec/api/api_app_api_spec.rb +94 -0
  965. data/spec/api/bulk_send_job_api_spec.rb +55 -0
  966. data/spec/api/embedded_api_spec.rb +58 -0
  967. data/spec/api/oauth_api_spec.rb +58 -0
  968. data/spec/api/report_api_spec.rb +41 -0
  969. data/spec/api/signature_request_api_spec.rb +265 -0
  970. data/spec/api/team_api_spec.rb +108 -0
  971. data/spec/api/template_api_spec.rb +153 -0
  972. data/spec/api/unclaimed_draft_api_spec.rb +94 -0
  973. data/spec/api_client_spec.rb +226 -0
  974. data/spec/configuration_spec.rb +42 -0
  975. data/spec/event_callback_helper_spec.rb +25 -0
  976. data/spec/fixtures_spec.rb +60 -0
  977. data/spec/models/deserialize_spec.rb +53 -0
  978. data/spec/models/sub_form_fields_per_document_base_spec.rb +30 -0
  979. data/spec/spec_helper.rb +97 -90
  980. data/spec/test_utils.rb +27 -0
  981. data/templates/Gemfile.mustache +10 -0
  982. data/templates/README.mustache +119 -0
  983. data/templates/Rakefile.mustache +10 -0
  984. data/templates/api.mustache +280 -0
  985. data/templates/api_client.mustache +288 -0
  986. data/templates/api_client_faraday_partial.mustache +136 -0
  987. data/templates/api_client_spec.mustache +220 -0
  988. data/templates/api_client_typhoeus_partial.mustache +153 -0
  989. data/templates/api_doc.mustache +77 -0
  990. data/templates/api_error.mustache +49 -0
  991. data/templates/api_info.mustache +12 -0
  992. data/templates/api_test.mustache +47 -0
  993. data/templates/base_object.mustache +146 -0
  994. data/templates/configuration.mustache +383 -0
  995. data/templates/configuration_spec.mustache +34 -0
  996. data/templates/configuration_tls_faraday_partial.mustache +29 -0
  997. data/templates/configuration_tls_typhoeus_partial.mustache +34 -0
  998. data/templates/event_callback_helper.mustache +24 -0
  999. data/templates/gem.mustache +52 -0
  1000. data/templates/gemspec.mustache +35 -0
  1001. data/templates/git_push.sh.mustache +57 -0
  1002. data/templates/gitignore.mustache +41 -0
  1003. data/templates/model.mustache +26 -0
  1004. data/templates/model_doc.mustache +12 -0
  1005. data/templates/model_test.mustache +77 -0
  1006. data/templates/partial_model_enum_class.mustache +20 -0
  1007. data/templates/partial_model_generic.mustache +402 -0
  1008. data/templates/partial_model_generic_doc.mustache +10 -0
  1009. data/templates/partial_oneof_module.mustache +137 -0
  1010. data/templates/partial_oneof_module_doc.mustache +92 -0
  1011. data/templates/rspec.mustache +2 -0
  1012. data/templates/rubocop.mustache +148 -0
  1013. data/templates/spec_helper.mustache +103 -0
  1014. data/templates/travis.mustache +14 -0
  1015. data/templates/version.mustache +7 -0
  1016. data/vendor/autoload.php +7 -0
  1017. data/vendor/bin/yaml-lint +117 -0
  1018. data/vendor/composer/ClassLoader.php +572 -0
  1019. data/vendor/composer/InstalledVersions.php +350 -0
  1020. data/vendor/composer/LICENSE +21 -0
  1021. data/vendor/composer/autoload_classmap.php +10 -0
  1022. data/vendor/composer/autoload_files.php +11 -0
  1023. data/vendor/composer/autoload_namespaces.php +9 -0
  1024. data/vendor/composer/autoload_psr4.php +11 -0
  1025. data/vendor/composer/autoload_real.php +80 -0
  1026. data/vendor/composer/autoload_static.php +46 -0
  1027. data/vendor/composer/installed.json +239 -0
  1028. data/vendor/composer/installed.php +50 -0
  1029. data/vendor/composer/platform_check.php +26 -0
  1030. data/vendor/symfony/deprecation-contracts/.gitignore +3 -0
  1031. data/vendor/symfony/deprecation-contracts/CHANGELOG.md +5 -0
  1032. data/vendor/symfony/deprecation-contracts/LICENSE +19 -0
  1033. data/vendor/symfony/deprecation-contracts/README.md +26 -0
  1034. data/vendor/symfony/deprecation-contracts/composer.json +35 -0
  1035. data/vendor/symfony/deprecation-contracts/function.php +27 -0
  1036. data/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
  1037. data/vendor/symfony/polyfill-ctype/LICENSE +19 -0
  1038. data/vendor/symfony/polyfill-ctype/README.md +12 -0
  1039. data/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
  1040. data/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
  1041. data/vendor/symfony/polyfill-ctype/composer.json +41 -0
  1042. data/vendor/symfony/yaml/CHANGELOG.md +237 -0
  1043. data/vendor/symfony/yaml/Command/LintCommand.php +289 -0
  1044. data/vendor/symfony/yaml/Dumper.php +140 -0
  1045. data/vendor/symfony/yaml/Escaper.php +95 -0
  1046. data/vendor/symfony/yaml/Exception/DumpException.php +21 -0
  1047. data/vendor/symfony/yaml/Exception/ExceptionInterface.php +21 -0
  1048. data/vendor/symfony/yaml/Exception/ParseException.php +132 -0
  1049. data/vendor/symfony/yaml/Exception/RuntimeException.php +21 -0
  1050. data/vendor/symfony/yaml/Inline.php +812 -0
  1051. data/vendor/symfony/yaml/LICENSE +19 -0
  1052. data/vendor/symfony/yaml/Parser.php +1305 -0
  1053. data/vendor/symfony/yaml/README.md +13 -0
  1054. data/vendor/symfony/yaml/Resources/bin/yaml-lint +45 -0
  1055. data/vendor/symfony/yaml/Tag/TaggedValue.php +38 -0
  1056. data/vendor/symfony/yaml/Unescaper.php +132 -0
  1057. data/vendor/symfony/yaml/Yaml.php +100 -0
  1058. data/vendor/symfony/yaml/composer.json +42 -0
  1059. metadata +1092 -182
  1060. data/.gitignore +0 -19
  1061. data/.rspec +0 -2
  1062. data/.travis.yml +0 -15
  1063. data/CONTRIBUTING.md +0 -42
  1064. data/Guardfile +0 -14
  1065. data/lib/hello_sign/.error.rb.swp +0 -0
  1066. data/lib/hello_sign/api/account.rb +0 -78
  1067. data/lib/hello_sign/api/api_app.rb +0 -121
  1068. data/lib/hello_sign/api/bulk_send_job.rb +0 -62
  1069. data/lib/hello_sign/api/embedded.rb +0 -68
  1070. data/lib/hello_sign/api/oauth.rb +0 -95
  1071. data/lib/hello_sign/api/signature_request.rb +0 -662
  1072. data/lib/hello_sign/api/team.rb +0 -107
  1073. data/lib/hello_sign/api/template.rb +0 -227
  1074. data/lib/hello_sign/api/unclaimed_draft.rb +0 -328
  1075. data/lib/hello_sign/api.rb +0 -31
  1076. data/lib/hello_sign/client.rb +0 -369
  1077. data/lib/hello_sign/configuration.rb +0 -78
  1078. data/lib/hello_sign/error.rb +0 -99
  1079. data/lib/hello_sign/resource/account.rb +0 -43
  1080. data/lib/hello_sign/resource/api_app.rb +0 -43
  1081. data/lib/hello_sign/resource/base_resource.rb +0 -73
  1082. data/lib/hello_sign/resource/bulk_send_job.rb +0 -43
  1083. data/lib/hello_sign/resource/embedded.rb +0 -43
  1084. data/lib/hello_sign/resource/resource_array.rb +0 -56
  1085. data/lib/hello_sign/resource/signature_request.rb +0 -43
  1086. data/lib/hello_sign/resource/team.rb +0 -43
  1087. data/lib/hello_sign/resource/template.rb +0 -43
  1088. data/lib/hello_sign/resource/template_draft.rb +0 -44
  1089. data/lib/hello_sign/resource/unclaimed_draft.rb +0 -44
  1090. data/lib/hello_sign/resource.rb +0 -33
  1091. data/lib/hello_sign/version.rb +0 -25
  1092. data/lib/hello_sign.rb +0 -50
  1093. data/spec/fixtures/account.json +0 -15
  1094. data/spec/fixtures/api_app.json +0 -16
  1095. data/spec/fixtures/api_apps.json +0 -43
  1096. data/spec/fixtures/bulk_send_job.json +0 -88
  1097. data/spec/fixtures/bulk_send_jobs.json +0 -22
  1098. data/spec/fixtures/embedded.json +0 -6
  1099. data/spec/fixtures/empty.pdf +0 -0
  1100. data/spec/fixtures/error.json +0 -6
  1101. data/spec/fixtures/headers.json +0 -18
  1102. data/spec/fixtures/nda.pdf +0 -0
  1103. data/spec/fixtures/signature_request.json +0 -45
  1104. data/spec/fixtures/signature_requests.json +0 -44
  1105. data/spec/fixtures/team.json +0 -15
  1106. data/spec/fixtures/template.json +0 -53
  1107. data/spec/fixtures/templates.json +0 -59
  1108. data/spec/fixtures/token.json +0 -14
  1109. data/spec/fixtures/unclaimed_draft.json +0 -6
  1110. data/spec/hello_sign/.error_spec.rb.swp +0 -0
  1111. data/spec/hello_sign/api/account_spec.rb +0 -42
  1112. data/spec/hello_sign/api/api_app_spec.rb +0 -104
  1113. data/spec/hello_sign/api/bulk_send_job_spec.rb +0 -53
  1114. data/spec/hello_sign/api/embedded_spec.rb +0 -23
  1115. data/spec/hello_sign/api/oauth_spec.rb +0 -27
  1116. data/spec/hello_sign/api/signature_request_spec.rb +0 -230
  1117. data/spec/hello_sign/api/team_spec.rb +0 -101
  1118. data/spec/hello_sign/api/template_spec.rb +0 -172
  1119. data/spec/hello_sign/api/unclaimed_draft_spec.rb +0 -145
  1120. data/spec/hello_sign/client_spec.rb +0 -191
  1121. data/spec/hello_sign/error_spec.rb +0 -10
  1122. data/spec/hello_sign/resource/base_resource_spec.rb +0 -53
  1123. data/spec/hello_sign_spec.rb +0 -57
  1124. data/spec/scenarios/uploads_spec.rb +0 -19
@@ -0,0 +1,1305 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony\Component\Yaml;
13
+
14
+ use Symfony\Component\Yaml\Exception\ParseException;
15
+ use Symfony\Component\Yaml\Tag\TaggedValue;
16
+
17
+ /**
18
+ * Parser parses YAML strings to convert them to PHP arrays.
19
+ *
20
+ * @author Fabien Potencier <fabien@symfony.com>
21
+ *
22
+ * @final
23
+ */
24
+ class Parser
25
+ {
26
+ public const TAG_PATTERN = '(?P<tag>![\w!.\/:-]+)';
27
+ public const BLOCK_SCALAR_HEADER_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?';
28
+ public const REFERENCE_PATTERN = '#^&(?P<ref>[^ ]++) *+(?P<value>.*)#u';
29
+
30
+ private $filename;
31
+ private $offset = 0;
32
+ private $numberOfParsedLines = 0;
33
+ private $totalNumberOfLines;
34
+ private $lines = [];
35
+ private $currentLineNb = -1;
36
+ private $currentLine = '';
37
+ private $refs = [];
38
+ private $skippedLineNumbers = [];
39
+ private $locallySkippedLineNumbers = [];
40
+ private $refsBeingParsed = [];
41
+
42
+ /**
43
+ * Parses a YAML file into a PHP value.
44
+ *
45
+ * @param string $filename The path to the YAML file to be parsed
46
+ * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
47
+ *
48
+ * @return mixed
49
+ *
50
+ * @throws ParseException If the file could not be read or the YAML is not valid
51
+ */
52
+ public function parseFile(string $filename, int $flags = 0)
53
+ {
54
+ if (!is_file($filename)) {
55
+ throw new ParseException(sprintf('File "%s" does not exist.', $filename));
56
+ }
57
+
58
+ if (!is_readable($filename)) {
59
+ throw new ParseException(sprintf('File "%s" cannot be read.', $filename));
60
+ }
61
+
62
+ $this->filename = $filename;
63
+
64
+ try {
65
+ return $this->parse(file_get_contents($filename), $flags);
66
+ } finally {
67
+ $this->filename = null;
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Parses a YAML string to a PHP value.
73
+ *
74
+ * @param string $value A YAML string
75
+ * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
76
+ *
77
+ * @return mixed
78
+ *
79
+ * @throws ParseException If the YAML is not valid
80
+ */
81
+ public function parse(string $value, int $flags = 0)
82
+ {
83
+ if (false === preg_match('//u', $value)) {
84
+ throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename);
85
+ }
86
+
87
+ $this->refs = [];
88
+
89
+ $mbEncoding = null;
90
+
91
+ if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
92
+ $mbEncoding = mb_internal_encoding();
93
+ mb_internal_encoding('UTF-8');
94
+ }
95
+
96
+ try {
97
+ $data = $this->doParse($value, $flags);
98
+ } finally {
99
+ if (null !== $mbEncoding) {
100
+ mb_internal_encoding($mbEncoding);
101
+ }
102
+ $this->refsBeingParsed = [];
103
+ $this->offset = 0;
104
+ $this->lines = [];
105
+ $this->currentLine = '';
106
+ $this->numberOfParsedLines = 0;
107
+ $this->refs = [];
108
+ $this->skippedLineNumbers = [];
109
+ $this->locallySkippedLineNumbers = [];
110
+ $this->totalNumberOfLines = null;
111
+ }
112
+
113
+ return $data;
114
+ }
115
+
116
+ private function doParse(string $value, int $flags)
117
+ {
118
+ $this->currentLineNb = -1;
119
+ $this->currentLine = '';
120
+ $value = $this->cleanup($value);
121
+ $this->lines = explode("\n", $value);
122
+ $this->numberOfParsedLines = \count($this->lines);
123
+ $this->locallySkippedLineNumbers = [];
124
+
125
+ if (null === $this->totalNumberOfLines) {
126
+ $this->totalNumberOfLines = $this->numberOfParsedLines;
127
+ }
128
+
129
+ if (!$this->moveToNextLine()) {
130
+ return null;
131
+ }
132
+
133
+ $data = [];
134
+ $context = null;
135
+ $allowOverwrite = false;
136
+
137
+ while ($this->isCurrentLineEmpty()) {
138
+ if (!$this->moveToNextLine()) {
139
+ return null;
140
+ }
141
+ }
142
+
143
+ // Resolves the tag and returns if end of the document
144
+ if (null !== ($tag = $this->getLineTag($this->currentLine, $flags, false)) && !$this->moveToNextLine()) {
145
+ return new TaggedValue($tag, '');
146
+ }
147
+
148
+ do {
149
+ if ($this->isCurrentLineEmpty()) {
150
+ continue;
151
+ }
152
+
153
+ // tab?
154
+ if ("\t" === $this->currentLine[0]) {
155
+ throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
156
+ }
157
+
158
+ Inline::initialize($flags, $this->getRealCurrentLineNb(), $this->filename);
159
+
160
+ $isRef = $mergeNode = false;
161
+ if ('-' === $this->currentLine[0] && self::preg_match('#^\-((?P<leadspaces>\s+)(?P<value>.+))?$#u', rtrim($this->currentLine), $values)) {
162
+ if ($context && 'mapping' == $context) {
163
+ throw new ParseException('You cannot define a sequence item when in a mapping.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
164
+ }
165
+ $context = 'sequence';
166
+
167
+ if (isset($values['value']) && '&' === $values['value'][0] && self::preg_match(self::REFERENCE_PATTERN, $values['value'], $matches)) {
168
+ $isRef = $matches['ref'];
169
+ $this->refsBeingParsed[] = $isRef;
170
+ $values['value'] = $matches['value'];
171
+ }
172
+
173
+ if (isset($values['value'][1]) && '?' === $values['value'][0] && ' ' === $values['value'][1]) {
174
+ throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
175
+ }
176
+
177
+ // array
178
+ if (isset($values['value']) && 0 === strpos(ltrim($values['value'], ' '), '-')) {
179
+ // Inline first child
180
+ $currentLineNumber = $this->getRealCurrentLineNb();
181
+
182
+ $sequenceIndentation = \strlen($values['leadspaces']) + 1;
183
+ $sequenceYaml = substr($this->currentLine, $sequenceIndentation);
184
+ $sequenceYaml .= "\n".$this->getNextEmbedBlock($sequenceIndentation, true);
185
+
186
+ $data[] = $this->parseBlock($currentLineNumber, rtrim($sequenceYaml), $flags);
187
+ } elseif (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) {
188
+ $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true) ?? '', $flags);
189
+ } elseif (null !== $subTag = $this->getLineTag(ltrim($values['value'], ' '), $flags)) {
190
+ $data[] = new TaggedValue(
191
+ $subTag,
192
+ $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $flags)
193
+ );
194
+ } else {
195
+ if (
196
+ isset($values['leadspaces'])
197
+ && (
198
+ '!' === $values['value'][0]
199
+ || self::preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->trimTag($values['value']), $matches)
200
+ )
201
+ ) {
202
+ // this is a compact notation element, add to next block and parse
203
+ $block = $values['value'];
204
+ if ($this->isNextLineIndented()) {
205
+ $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1);
206
+ }
207
+
208
+ $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $flags);
209
+ } else {
210
+ $data[] = $this->parseValue($values['value'], $flags, $context);
211
+ }
212
+ }
213
+ if ($isRef) {
214
+ $this->refs[$isRef] = end($data);
215
+ array_pop($this->refsBeingParsed);
216
+ }
217
+ } elseif (
218
+ self::preg_match('#^(?P<key>(?:![^\s]++\s++)?(?:'.Inline::REGEX_QUOTED_STRING.'|(?:!?!php/const:)?[^ \'"\[\{!].*?)) *\:(( |\t)++(?P<value>.+))?$#u', rtrim($this->currentLine), $values)
219
+ && (false === strpos($values['key'], ' #') || \in_array($values['key'][0], ['"', "'"]))
220
+ ) {
221
+ if ($context && 'sequence' == $context) {
222
+ throw new ParseException('You cannot define a mapping item when in a sequence.', $this->currentLineNb + 1, $this->currentLine, $this->filename);
223
+ }
224
+ $context = 'mapping';
225
+
226
+ try {
227
+ $key = Inline::parseScalar($values['key']);
228
+ } catch (ParseException $e) {
229
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
230
+ $e->setSnippet($this->currentLine);
231
+
232
+ throw $e;
233
+ }
234
+
235
+ if (!\is_string($key) && !\is_int($key)) {
236
+ throw new ParseException((is_numeric($key) ? 'Numeric' : 'Non-string').' keys are not supported. Quote your evaluable mapping keys instead.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
237
+ }
238
+
239
+ // Convert float keys to strings, to avoid being converted to integers by PHP
240
+ if (\is_float($key)) {
241
+ $key = (string) $key;
242
+ }
243
+
244
+ if ('<<' === $key && (!isset($values['value']) || '&' !== $values['value'][0] || !self::preg_match('#^&(?P<ref>[^ ]+)#u', $values['value'], $refMatches))) {
245
+ $mergeNode = true;
246
+ $allowOverwrite = true;
247
+ if (isset($values['value'][0]) && '*' === $values['value'][0]) {
248
+ $refName = substr(rtrim($values['value']), 1);
249
+ if (!\array_key_exists($refName, $this->refs)) {
250
+ if (false !== $pos = array_search($refName, $this->refsBeingParsed, true)) {
251
+ throw new ParseException(sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$refName])), $refName), $this->currentLineNb + 1, $this->currentLine, $this->filename);
252
+ }
253
+
254
+ throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
255
+ }
256
+
257
+ $refValue = $this->refs[$refName];
258
+
259
+ if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $refValue instanceof \stdClass) {
260
+ $refValue = (array) $refValue;
261
+ }
262
+
263
+ if (!\is_array($refValue)) {
264
+ throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
265
+ }
266
+
267
+ $data += $refValue; // array union
268
+ } else {
269
+ if (isset($values['value']) && '' !== $values['value']) {
270
+ $value = $values['value'];
271
+ } else {
272
+ $value = $this->getNextEmbedBlock();
273
+ }
274
+ $parsed = $this->parseBlock($this->getRealCurrentLineNb() + 1, $value, $flags);
275
+
276
+ if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsed instanceof \stdClass) {
277
+ $parsed = (array) $parsed;
278
+ }
279
+
280
+ if (!\is_array($parsed)) {
281
+ throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
282
+ }
283
+
284
+ if (isset($parsed[0])) {
285
+ // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes
286
+ // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier
287
+ // in the sequence override keys specified in later mapping nodes.
288
+ foreach ($parsed as $parsedItem) {
289
+ if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $parsedItem instanceof \stdClass) {
290
+ $parsedItem = (array) $parsedItem;
291
+ }
292
+
293
+ if (!\is_array($parsedItem)) {
294
+ throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem, $this->filename);
295
+ }
296
+
297
+ $data += $parsedItem; // array union
298
+ }
299
+ } else {
300
+ // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the
301
+ // current mapping, unless the key already exists in it.
302
+ $data += $parsed; // array union
303
+ }
304
+ }
305
+ } elseif ('<<' !== $key && isset($values['value']) && '&' === $values['value'][0] && self::preg_match(self::REFERENCE_PATTERN, $values['value'], $matches)) {
306
+ $isRef = $matches['ref'];
307
+ $this->refsBeingParsed[] = $isRef;
308
+ $values['value'] = $matches['value'];
309
+ }
310
+
311
+ $subTag = null;
312
+ if ($mergeNode) {
313
+ // Merge keys
314
+ } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) {
315
+ // hash
316
+ // if next line is less indented or equal, then it means that the current value is null
317
+ if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
318
+ // Spec: Keys MUST be unique; first one wins.
319
+ // But overwriting is allowed when a merge node is used in current block.
320
+ if ($allowOverwrite || !isset($data[$key])) {
321
+ if (null !== $subTag) {
322
+ $data[$key] = new TaggedValue($subTag, '');
323
+ } else {
324
+ $data[$key] = null;
325
+ }
326
+ } else {
327
+ throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
328
+ }
329
+ } else {
330
+ // remember the parsed line number here in case we need it to provide some contexts in error messages below
331
+ $realCurrentLineNbKey = $this->getRealCurrentLineNb();
332
+ $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags);
333
+ if ('<<' === $key) {
334
+ $this->refs[$refMatches['ref']] = $value;
335
+
336
+ if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) {
337
+ $value = (array) $value;
338
+ }
339
+
340
+ $data += $value;
341
+ } elseif ($allowOverwrite || !isset($data[$key])) {
342
+ // Spec: Keys MUST be unique; first one wins.
343
+ // But overwriting is allowed when a merge node is used in current block.
344
+ if (null !== $subTag) {
345
+ $data[$key] = new TaggedValue($subTag, $value);
346
+ } else {
347
+ $data[$key] = $value;
348
+ }
349
+ } else {
350
+ throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
351
+ }
352
+ }
353
+ } else {
354
+ $value = $this->parseValue(rtrim($values['value']), $flags, $context);
355
+ // Spec: Keys MUST be unique; first one wins.
356
+ // But overwriting is allowed when a merge node is used in current block.
357
+ if ($allowOverwrite || !isset($data[$key])) {
358
+ $data[$key] = $value;
359
+ } else {
360
+ throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
361
+ }
362
+ }
363
+ if ($isRef) {
364
+ $this->refs[$isRef] = $data[$key];
365
+ array_pop($this->refsBeingParsed);
366
+ }
367
+ } elseif ('"' === $this->currentLine[0] || "'" === $this->currentLine[0]) {
368
+ if (null !== $context) {
369
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
370
+ }
371
+
372
+ try {
373
+ return Inline::parse($this->lexInlineQuotedString(), $flags, $this->refs);
374
+ } catch (ParseException $e) {
375
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
376
+ $e->setSnippet($this->currentLine);
377
+
378
+ throw $e;
379
+ }
380
+ } elseif ('{' === $this->currentLine[0]) {
381
+ if (null !== $context) {
382
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
383
+ }
384
+
385
+ try {
386
+ $parsedMapping = Inline::parse($this->lexInlineMapping(), $flags, $this->refs);
387
+
388
+ while ($this->moveToNextLine()) {
389
+ if (!$this->isCurrentLineEmpty()) {
390
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
391
+ }
392
+ }
393
+
394
+ return $parsedMapping;
395
+ } catch (ParseException $e) {
396
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
397
+ $e->setSnippet($this->currentLine);
398
+
399
+ throw $e;
400
+ }
401
+ } elseif ('[' === $this->currentLine[0]) {
402
+ if (null !== $context) {
403
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
404
+ }
405
+
406
+ try {
407
+ $parsedSequence = Inline::parse($this->lexInlineSequence(), $flags, $this->refs);
408
+
409
+ while ($this->moveToNextLine()) {
410
+ if (!$this->isCurrentLineEmpty()) {
411
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
412
+ }
413
+ }
414
+
415
+ return $parsedSequence;
416
+ } catch (ParseException $e) {
417
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
418
+ $e->setSnippet($this->currentLine);
419
+
420
+ throw $e;
421
+ }
422
+ } else {
423
+ // multiple documents are not supported
424
+ if ('---' === $this->currentLine) {
425
+ throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine, $this->filename);
426
+ }
427
+
428
+ if ($deprecatedUsage = (isset($this->currentLine[1]) && '?' === $this->currentLine[0] && ' ' === $this->currentLine[1])) {
429
+ throw new ParseException('Complex mappings are not supported.', $this->getRealCurrentLineNb() + 1, $this->currentLine);
430
+ }
431
+
432
+ // 1-liner optionally followed by newline(s)
433
+ if (\is_string($value) && $this->lines[0] === trim($value)) {
434
+ try {
435
+ $value = Inline::parse($this->lines[0], $flags, $this->refs);
436
+ } catch (ParseException $e) {
437
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
438
+ $e->setSnippet($this->currentLine);
439
+
440
+ throw $e;
441
+ }
442
+
443
+ return $value;
444
+ }
445
+
446
+ // try to parse the value as a multi-line string as a last resort
447
+ if (0 === $this->currentLineNb) {
448
+ $previousLineWasNewline = false;
449
+ $previousLineWasTerminatedWithBackslash = false;
450
+ $value = '';
451
+
452
+ foreach ($this->lines as $line) {
453
+ $trimmedLine = trim($line);
454
+ if ('#' === ($trimmedLine[0] ?? '')) {
455
+ continue;
456
+ }
457
+ // If the indentation is not consistent at offset 0, it is to be considered as a ParseError
458
+ if (0 === $this->offset && !$deprecatedUsage && isset($line[0]) && ' ' === $line[0]) {
459
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
460
+ }
461
+
462
+ if (false !== strpos($line, ': ')) {
463
+ throw new ParseException('Mapping values are not allowed in multi-line blocks.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
464
+ }
465
+
466
+ if ('' === $trimmedLine) {
467
+ $value .= "\n";
468
+ } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) {
469
+ $value .= ' ';
470
+ }
471
+
472
+ if ('' !== $trimmedLine && '\\' === substr($line, -1)) {
473
+ $value .= ltrim(substr($line, 0, -1));
474
+ } elseif ('' !== $trimmedLine) {
475
+ $value .= $trimmedLine;
476
+ }
477
+
478
+ if ('' === $trimmedLine) {
479
+ $previousLineWasNewline = true;
480
+ $previousLineWasTerminatedWithBackslash = false;
481
+ } elseif ('\\' === substr($line, -1)) {
482
+ $previousLineWasNewline = false;
483
+ $previousLineWasTerminatedWithBackslash = true;
484
+ } else {
485
+ $previousLineWasNewline = false;
486
+ $previousLineWasTerminatedWithBackslash = false;
487
+ }
488
+ }
489
+
490
+ try {
491
+ return Inline::parse(trim($value));
492
+ } catch (ParseException $e) {
493
+ // fall-through to the ParseException thrown below
494
+ }
495
+ }
496
+
497
+ throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
498
+ }
499
+ } while ($this->moveToNextLine());
500
+
501
+ if (null !== $tag) {
502
+ $data = new TaggedValue($tag, $data);
503
+ }
504
+
505
+ if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && 'mapping' === $context && !\is_object($data)) {
506
+ $object = new \stdClass();
507
+
508
+ foreach ($data as $key => $value) {
509
+ $object->$key = $value;
510
+ }
511
+
512
+ $data = $object;
513
+ }
514
+
515
+ return empty($data) ? null : $data;
516
+ }
517
+
518
+ private function parseBlock(int $offset, string $yaml, int $flags)
519
+ {
520
+ $skippedLineNumbers = $this->skippedLineNumbers;
521
+
522
+ foreach ($this->locallySkippedLineNumbers as $lineNumber) {
523
+ if ($lineNumber < $offset) {
524
+ continue;
525
+ }
526
+
527
+ $skippedLineNumbers[] = $lineNumber;
528
+ }
529
+
530
+ $parser = new self();
531
+ $parser->offset = $offset;
532
+ $parser->totalNumberOfLines = $this->totalNumberOfLines;
533
+ $parser->skippedLineNumbers = $skippedLineNumbers;
534
+ $parser->refs = &$this->refs;
535
+ $parser->refsBeingParsed = $this->refsBeingParsed;
536
+
537
+ return $parser->doParse($yaml, $flags);
538
+ }
539
+
540
+ /**
541
+ * Returns the current line number (takes the offset into account).
542
+ *
543
+ * @internal
544
+ */
545
+ public function getRealCurrentLineNb(): int
546
+ {
547
+ $realCurrentLineNumber = $this->currentLineNb + $this->offset;
548
+
549
+ foreach ($this->skippedLineNumbers as $skippedLineNumber) {
550
+ if ($skippedLineNumber > $realCurrentLineNumber) {
551
+ break;
552
+ }
553
+
554
+ ++$realCurrentLineNumber;
555
+ }
556
+
557
+ return $realCurrentLineNumber;
558
+ }
559
+
560
+ /**
561
+ * Returns the current line indentation.
562
+ */
563
+ private function getCurrentLineIndentation(): int
564
+ {
565
+ if (' ' !== ($this->currentLine[0] ?? '')) {
566
+ return 0;
567
+ }
568
+
569
+ return \strlen($this->currentLine) - \strlen(ltrim($this->currentLine, ' '));
570
+ }
571
+
572
+ /**
573
+ * Returns the next embed block of YAML.
574
+ *
575
+ * @param int|null $indentation The indent level at which the block is to be read, or null for default
576
+ * @param bool $inSequence True if the enclosing data structure is a sequence
577
+ *
578
+ * @throws ParseException When indentation problem are detected
579
+ */
580
+ private function getNextEmbedBlock(int $indentation = null, bool $inSequence = false): string
581
+ {
582
+ $oldLineIndentation = $this->getCurrentLineIndentation();
583
+
584
+ if (!$this->moveToNextLine()) {
585
+ return '';
586
+ }
587
+
588
+ if (null === $indentation) {
589
+ $newIndent = null;
590
+ $movements = 0;
591
+
592
+ do {
593
+ $EOF = false;
594
+
595
+ // empty and comment-like lines do not influence the indentation depth
596
+ if ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) {
597
+ $EOF = !$this->moveToNextLine();
598
+
599
+ if (!$EOF) {
600
+ ++$movements;
601
+ }
602
+ } else {
603
+ $newIndent = $this->getCurrentLineIndentation();
604
+ }
605
+ } while (!$EOF && null === $newIndent);
606
+
607
+ for ($i = 0; $i < $movements; ++$i) {
608
+ $this->moveToPreviousLine();
609
+ }
610
+
611
+ $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem();
612
+
613
+ if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) {
614
+ throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
615
+ }
616
+ } else {
617
+ $newIndent = $indentation;
618
+ }
619
+
620
+ $data = [];
621
+
622
+ if ($this->getCurrentLineIndentation() >= $newIndent) {
623
+ $data[] = substr($this->currentLine, $newIndent ?? 0);
624
+ } elseif ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()) {
625
+ $data[] = $this->currentLine;
626
+ } else {
627
+ $this->moveToPreviousLine();
628
+
629
+ return '';
630
+ }
631
+
632
+ if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) {
633
+ // the previous line contained a dash but no item content, this line is a sequence item with the same indentation
634
+ // and therefore no nested list or mapping
635
+ $this->moveToPreviousLine();
636
+
637
+ return '';
638
+ }
639
+
640
+ $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem();
641
+ $isItComment = $this->isCurrentLineComment();
642
+
643
+ while ($this->moveToNextLine()) {
644
+ if ($isItComment && !$isItUnindentedCollection) {
645
+ $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem();
646
+ $isItComment = $this->isCurrentLineComment();
647
+ }
648
+
649
+ $indent = $this->getCurrentLineIndentation();
650
+
651
+ if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) {
652
+ $this->moveToPreviousLine();
653
+ break;
654
+ }
655
+
656
+ if ($this->isCurrentLineBlank()) {
657
+ $data[] = substr($this->currentLine, $newIndent);
658
+ continue;
659
+ }
660
+
661
+ if ($indent >= $newIndent) {
662
+ $data[] = substr($this->currentLine, $newIndent);
663
+ } elseif ($this->isCurrentLineComment()) {
664
+ $data[] = $this->currentLine;
665
+ } elseif (0 == $indent) {
666
+ $this->moveToPreviousLine();
667
+
668
+ break;
669
+ } else {
670
+ throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
671
+ }
672
+ }
673
+
674
+ return implode("\n", $data);
675
+ }
676
+
677
+ private function hasMoreLines(): bool
678
+ {
679
+ return (\count($this->lines) - 1) > $this->currentLineNb;
680
+ }
681
+
682
+ /**
683
+ * Moves the parser to the next line.
684
+ */
685
+ private function moveToNextLine(): bool
686
+ {
687
+ if ($this->currentLineNb >= $this->numberOfParsedLines - 1) {
688
+ return false;
689
+ }
690
+
691
+ $this->currentLine = $this->lines[++$this->currentLineNb];
692
+
693
+ return true;
694
+ }
695
+
696
+ /**
697
+ * Moves the parser to the previous line.
698
+ */
699
+ private function moveToPreviousLine(): bool
700
+ {
701
+ if ($this->currentLineNb < 1) {
702
+ return false;
703
+ }
704
+
705
+ $this->currentLine = $this->lines[--$this->currentLineNb];
706
+
707
+ return true;
708
+ }
709
+
710
+ /**
711
+ * Parses a YAML value.
712
+ *
713
+ * @param string $value A YAML value
714
+ * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior
715
+ * @param string $context The parser context (either sequence or mapping)
716
+ *
717
+ * @return mixed
718
+ *
719
+ * @throws ParseException When reference does not exist
720
+ */
721
+ private function parseValue(string $value, int $flags, string $context)
722
+ {
723
+ if (0 === strpos($value, '*')) {
724
+ if (false !== $pos = strpos($value, '#')) {
725
+ $value = substr($value, 1, $pos - 2);
726
+ } else {
727
+ $value = substr($value, 1);
728
+ }
729
+
730
+ if (!\array_key_exists($value, $this->refs)) {
731
+ if (false !== $pos = array_search($value, $this->refsBeingParsed, true)) {
732
+ throw new ParseException(sprintf('Circular reference [%s] detected for reference "%s".', implode(', ', array_merge(\array_slice($this->refsBeingParsed, $pos), [$value])), $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
733
+ }
734
+
735
+ throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine, $this->filename);
736
+ }
737
+
738
+ return $this->refs[$value];
739
+ }
740
+
741
+ if (\in_array($value[0], ['!', '|', '>'], true) && self::preg_match('/^(?:'.self::TAG_PATTERN.' +)?'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) {
742
+ $modifiers = $matches['modifiers'] ?? '';
743
+
744
+ $data = $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), abs((int) $modifiers));
745
+
746
+ if ('' !== $matches['tag'] && '!' !== $matches['tag']) {
747
+ if ('!!binary' === $matches['tag']) {
748
+ return Inline::evaluateBinaryScalar($data);
749
+ }
750
+
751
+ return new TaggedValue(substr($matches['tag'], 1), $data);
752
+ }
753
+
754
+ return $data;
755
+ }
756
+
757
+ try {
758
+ if ('' !== $value && '{' === $value[0]) {
759
+ $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
760
+
761
+ return Inline::parse($this->lexInlineMapping($cursor), $flags, $this->refs);
762
+ } elseif ('' !== $value && '[' === $value[0]) {
763
+ $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
764
+
765
+ return Inline::parse($this->lexInlineSequence($cursor), $flags, $this->refs);
766
+ }
767
+
768
+ switch ($value[0] ?? '') {
769
+ case '"':
770
+ case "'":
771
+ $cursor = \strlen(rtrim($this->currentLine)) - \strlen(rtrim($value));
772
+ $parsedValue = Inline::parse($this->lexInlineQuotedString($cursor), $flags, $this->refs);
773
+
774
+ if (isset($this->currentLine[$cursor]) && preg_replace('/\s*(#.*)?$/A', '', substr($this->currentLine, $cursor))) {
775
+ throw new ParseException(sprintf('Unexpected characters near "%s".', substr($this->currentLine, $cursor)));
776
+ }
777
+
778
+ return $parsedValue;
779
+ default:
780
+ $lines = [];
781
+
782
+ while ($this->moveToNextLine()) {
783
+ // unquoted strings end before the first unindented line
784
+ if (0 === $this->getCurrentLineIndentation()) {
785
+ $this->moveToPreviousLine();
786
+
787
+ break;
788
+ }
789
+
790
+ $lines[] = trim($this->currentLine);
791
+ }
792
+
793
+ for ($i = 0, $linesCount = \count($lines), $previousLineBlank = false; $i < $linesCount; ++$i) {
794
+ if ('' === $lines[$i]) {
795
+ $value .= "\n";
796
+ $previousLineBlank = true;
797
+ } elseif ($previousLineBlank) {
798
+ $value .= $lines[$i];
799
+ $previousLineBlank = false;
800
+ } else {
801
+ $value .= ' '.$lines[$i];
802
+ $previousLineBlank = false;
803
+ }
804
+ }
805
+
806
+ Inline::$parsedLineNumber = $this->getRealCurrentLineNb();
807
+
808
+ $parsedValue = Inline::parse($value, $flags, $this->refs);
809
+
810
+ if ('mapping' === $context && \is_string($parsedValue) && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && false !== strpos($parsedValue, ': ')) {
811
+ throw new ParseException('A colon cannot be used in an unquoted mapping value.', $this->getRealCurrentLineNb() + 1, $value, $this->filename);
812
+ }
813
+
814
+ return $parsedValue;
815
+ }
816
+ } catch (ParseException $e) {
817
+ $e->setParsedLine($this->getRealCurrentLineNb() + 1);
818
+ $e->setSnippet($this->currentLine);
819
+
820
+ throw $e;
821
+ }
822
+ }
823
+
824
+ /**
825
+ * Parses a block scalar.
826
+ *
827
+ * @param string $style The style indicator that was used to begin this block scalar (| or >)
828
+ * @param string $chomping The chomping indicator that was used to begin this block scalar (+ or -)
829
+ * @param int $indentation The indentation indicator that was used to begin this block scalar
830
+ */
831
+ private function parseBlockScalar(string $style, string $chomping = '', int $indentation = 0): string
832
+ {
833
+ $notEOF = $this->moveToNextLine();
834
+ if (!$notEOF) {
835
+ return '';
836
+ }
837
+
838
+ $isCurrentLineBlank = $this->isCurrentLineBlank();
839
+ $blockLines = [];
840
+
841
+ // leading blank lines are consumed before determining indentation
842
+ while ($notEOF && $isCurrentLineBlank) {
843
+ // newline only if not EOF
844
+ if ($notEOF = $this->moveToNextLine()) {
845
+ $blockLines[] = '';
846
+ $isCurrentLineBlank = $this->isCurrentLineBlank();
847
+ }
848
+ }
849
+
850
+ // determine indentation if not specified
851
+ if (0 === $indentation) {
852
+ $currentLineLength = \strlen($this->currentLine);
853
+
854
+ for ($i = 0; $i < $currentLineLength && ' ' === $this->currentLine[$i]; ++$i) {
855
+ ++$indentation;
856
+ }
857
+ }
858
+
859
+ if ($indentation > 0) {
860
+ $pattern = sprintf('/^ {%d}(.*)$/', $indentation);
861
+
862
+ while (
863
+ $notEOF && (
864
+ $isCurrentLineBlank ||
865
+ self::preg_match($pattern, $this->currentLine, $matches)
866
+ )
867
+ ) {
868
+ if ($isCurrentLineBlank && \strlen($this->currentLine) > $indentation) {
869
+ $blockLines[] = substr($this->currentLine, $indentation);
870
+ } elseif ($isCurrentLineBlank) {
871
+ $blockLines[] = '';
872
+ } else {
873
+ $blockLines[] = $matches[1];
874
+ }
875
+
876
+ // newline only if not EOF
877
+ if ($notEOF = $this->moveToNextLine()) {
878
+ $isCurrentLineBlank = $this->isCurrentLineBlank();
879
+ }
880
+ }
881
+ } elseif ($notEOF) {
882
+ $blockLines[] = '';
883
+ }
884
+
885
+ if ($notEOF) {
886
+ $blockLines[] = '';
887
+ $this->moveToPreviousLine();
888
+ } elseif (!$notEOF && !$this->isCurrentLineLastLineInDocument()) {
889
+ $blockLines[] = '';
890
+ }
891
+
892
+ // folded style
893
+ if ('>' === $style) {
894
+ $text = '';
895
+ $previousLineIndented = false;
896
+ $previousLineBlank = false;
897
+
898
+ for ($i = 0, $blockLinesCount = \count($blockLines); $i < $blockLinesCount; ++$i) {
899
+ if ('' === $blockLines[$i]) {
900
+ $text .= "\n";
901
+ $previousLineIndented = false;
902
+ $previousLineBlank = true;
903
+ } elseif (' ' === $blockLines[$i][0]) {
904
+ $text .= "\n".$blockLines[$i];
905
+ $previousLineIndented = true;
906
+ $previousLineBlank = false;
907
+ } elseif ($previousLineIndented) {
908
+ $text .= "\n".$blockLines[$i];
909
+ $previousLineIndented = false;
910
+ $previousLineBlank = false;
911
+ } elseif ($previousLineBlank || 0 === $i) {
912
+ $text .= $blockLines[$i];
913
+ $previousLineIndented = false;
914
+ $previousLineBlank = false;
915
+ } else {
916
+ $text .= ' '.$blockLines[$i];
917
+ $previousLineIndented = false;
918
+ $previousLineBlank = false;
919
+ }
920
+ }
921
+ } else {
922
+ $text = implode("\n", $blockLines);
923
+ }
924
+
925
+ // deal with trailing newlines
926
+ if ('' === $chomping) {
927
+ $text = preg_replace('/\n+$/', "\n", $text);
928
+ } elseif ('-' === $chomping) {
929
+ $text = preg_replace('/\n+$/', '', $text);
930
+ }
931
+
932
+ return $text;
933
+ }
934
+
935
+ /**
936
+ * Returns true if the next line is indented.
937
+ */
938
+ private function isNextLineIndented(): bool
939
+ {
940
+ $currentIndentation = $this->getCurrentLineIndentation();
941
+ $movements = 0;
942
+
943
+ do {
944
+ $EOF = !$this->moveToNextLine();
945
+
946
+ if (!$EOF) {
947
+ ++$movements;
948
+ }
949
+ } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()));
950
+
951
+ if ($EOF) {
952
+ return false;
953
+ }
954
+
955
+ $ret = $this->getCurrentLineIndentation() > $currentIndentation;
956
+
957
+ for ($i = 0; $i < $movements; ++$i) {
958
+ $this->moveToPreviousLine();
959
+ }
960
+
961
+ return $ret;
962
+ }
963
+
964
+ /**
965
+ * Returns true if the current line is blank or if it is a comment line.
966
+ */
967
+ private function isCurrentLineEmpty(): bool
968
+ {
969
+ return $this->isCurrentLineBlank() || $this->isCurrentLineComment();
970
+ }
971
+
972
+ /**
973
+ * Returns true if the current line is blank.
974
+ */
975
+ private function isCurrentLineBlank(): bool
976
+ {
977
+ return '' === $this->currentLine || '' === trim($this->currentLine, ' ');
978
+ }
979
+
980
+ /**
981
+ * Returns true if the current line is a comment line.
982
+ */
983
+ private function isCurrentLineComment(): bool
984
+ {
985
+ //checking explicitly the first char of the trim is faster than loops or strpos
986
+ $ltrimmedLine = '' !== $this->currentLine && ' ' === $this->currentLine[0] ? ltrim($this->currentLine, ' ') : $this->currentLine;
987
+
988
+ return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0];
989
+ }
990
+
991
+ private function isCurrentLineLastLineInDocument(): bool
992
+ {
993
+ return ($this->offset + $this->currentLineNb) >= ($this->totalNumberOfLines - 1);
994
+ }
995
+
996
+ /**
997
+ * Cleanups a YAML string to be parsed.
998
+ *
999
+ * @param string $value The input YAML string
1000
+ */
1001
+ private function cleanup(string $value): string
1002
+ {
1003
+ $value = str_replace(["\r\n", "\r"], "\n", $value);
1004
+
1005
+ // strip YAML header
1006
+ $count = 0;
1007
+ $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count);
1008
+ $this->offset += $count;
1009
+
1010
+ // remove leading comments
1011
+ $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count);
1012
+ if (1 === $count) {
1013
+ // items have been removed, update the offset
1014
+ $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
1015
+ $value = $trimmedValue;
1016
+ }
1017
+
1018
+ // remove start of the document marker (---)
1019
+ $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count);
1020
+ if (1 === $count) {
1021
+ // items have been removed, update the offset
1022
+ $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
1023
+ $value = $trimmedValue;
1024
+
1025
+ // remove end of the document marker (...)
1026
+ $value = preg_replace('#\.\.\.\s*$#', '', $value);
1027
+ }
1028
+
1029
+ return $value;
1030
+ }
1031
+
1032
+ /**
1033
+ * Returns true if the next line starts unindented collection.
1034
+ */
1035
+ private function isNextLineUnIndentedCollection(): bool
1036
+ {
1037
+ $currentIndentation = $this->getCurrentLineIndentation();
1038
+ $movements = 0;
1039
+
1040
+ do {
1041
+ $EOF = !$this->moveToNextLine();
1042
+
1043
+ if (!$EOF) {
1044
+ ++$movements;
1045
+ }
1046
+ } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment()));
1047
+
1048
+ if ($EOF) {
1049
+ return false;
1050
+ }
1051
+
1052
+ $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem();
1053
+
1054
+ for ($i = 0; $i < $movements; ++$i) {
1055
+ $this->moveToPreviousLine();
1056
+ }
1057
+
1058
+ return $ret;
1059
+ }
1060
+
1061
+ /**
1062
+ * Returns true if the string is un-indented collection item.
1063
+ */
1064
+ private function isStringUnIndentedCollectionItem(): bool
1065
+ {
1066
+ return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- ');
1067
+ }
1068
+
1069
+ /**
1070
+ * A local wrapper for "preg_match" which will throw a ParseException if there
1071
+ * is an internal error in the PCRE engine.
1072
+ *
1073
+ * This avoids us needing to check for "false" every time PCRE is used
1074
+ * in the YAML engine
1075
+ *
1076
+ * @throws ParseException on a PCRE internal error
1077
+ *
1078
+ * @see preg_last_error()
1079
+ *
1080
+ * @internal
1081
+ */
1082
+ public static function preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int
1083
+ {
1084
+ if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) {
1085
+ switch (preg_last_error()) {
1086
+ case \PREG_INTERNAL_ERROR:
1087
+ $error = 'Internal PCRE error.';
1088
+ break;
1089
+ case \PREG_BACKTRACK_LIMIT_ERROR:
1090
+ $error = 'pcre.backtrack_limit reached.';
1091
+ break;
1092
+ case \PREG_RECURSION_LIMIT_ERROR:
1093
+ $error = 'pcre.recursion_limit reached.';
1094
+ break;
1095
+ case \PREG_BAD_UTF8_ERROR:
1096
+ $error = 'Malformed UTF-8 data.';
1097
+ break;
1098
+ case \PREG_BAD_UTF8_OFFSET_ERROR:
1099
+ $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.';
1100
+ break;
1101
+ default:
1102
+ $error = 'Error.';
1103
+ }
1104
+
1105
+ throw new ParseException($error);
1106
+ }
1107
+
1108
+ return $ret;
1109
+ }
1110
+
1111
+ /**
1112
+ * Trim the tag on top of the value.
1113
+ *
1114
+ * Prevent values such as "!foo {quz: bar}" to be considered as
1115
+ * a mapping block.
1116
+ */
1117
+ private function trimTag(string $value): string
1118
+ {
1119
+ if ('!' === $value[0]) {
1120
+ return ltrim(substr($value, 1, strcspn($value, " \r\n", 1)), ' ');
1121
+ }
1122
+
1123
+ return $value;
1124
+ }
1125
+
1126
+ private function getLineTag(string $value, int $flags, bool $nextLineCheck = true): ?string
1127
+ {
1128
+ if ('' === $value || '!' !== $value[0] || 1 !== self::preg_match('/^'.self::TAG_PATTERN.' *( +#.*)?$/', $value, $matches)) {
1129
+ return null;
1130
+ }
1131
+
1132
+ if ($nextLineCheck && !$this->isNextLineIndented()) {
1133
+ return null;
1134
+ }
1135
+
1136
+ $tag = substr($matches['tag'], 1);
1137
+
1138
+ // Built-in tags
1139
+ if ($tag && '!' === $tag[0]) {
1140
+ throw new ParseException(sprintf('The built-in tag "!%s" is not implemented.', $tag), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
1141
+ }
1142
+
1143
+ if (Yaml::PARSE_CUSTOM_TAGS & $flags) {
1144
+ return $tag;
1145
+ }
1146
+
1147
+ throw new ParseException(sprintf('Tags support is not enabled. You must use the flag "Yaml::PARSE_CUSTOM_TAGS" to use "%s".', $matches['tag']), $this->getRealCurrentLineNb() + 1, $value, $this->filename);
1148
+ }
1149
+
1150
+ private function lexInlineQuotedString(int &$cursor = 0): string
1151
+ {
1152
+ $quotation = $this->currentLine[$cursor];
1153
+ $value = $quotation;
1154
+ ++$cursor;
1155
+
1156
+ $previousLineWasNewline = true;
1157
+ $previousLineWasTerminatedWithBackslash = false;
1158
+ $lineNumber = 0;
1159
+
1160
+ do {
1161
+ if (++$lineNumber > 1) {
1162
+ $cursor += strspn($this->currentLine, ' ', $cursor);
1163
+ }
1164
+
1165
+ if ($this->isCurrentLineBlank()) {
1166
+ $value .= "\n";
1167
+ } elseif (!$previousLineWasNewline && !$previousLineWasTerminatedWithBackslash) {
1168
+ $value .= ' ';
1169
+ }
1170
+
1171
+ for (; \strlen($this->currentLine) > $cursor; ++$cursor) {
1172
+ switch ($this->currentLine[$cursor]) {
1173
+ case '\\':
1174
+ if ("'" === $quotation) {
1175
+ $value .= '\\';
1176
+ } elseif (isset($this->currentLine[++$cursor])) {
1177
+ $value .= '\\'.$this->currentLine[$cursor];
1178
+ }
1179
+
1180
+ break;
1181
+ case $quotation:
1182
+ ++$cursor;
1183
+
1184
+ if ("'" === $quotation && isset($this->currentLine[$cursor]) && "'" === $this->currentLine[$cursor]) {
1185
+ $value .= "''";
1186
+ break;
1187
+ }
1188
+
1189
+ return $value.$quotation;
1190
+ default:
1191
+ $value .= $this->currentLine[$cursor];
1192
+ }
1193
+ }
1194
+
1195
+ if ($this->isCurrentLineBlank()) {
1196
+ $previousLineWasNewline = true;
1197
+ $previousLineWasTerminatedWithBackslash = false;
1198
+ } elseif ('\\' === $this->currentLine[-1]) {
1199
+ $previousLineWasNewline = false;
1200
+ $previousLineWasTerminatedWithBackslash = true;
1201
+ } else {
1202
+ $previousLineWasNewline = false;
1203
+ $previousLineWasTerminatedWithBackslash = false;
1204
+ }
1205
+
1206
+ if ($this->hasMoreLines()) {
1207
+ $cursor = 0;
1208
+ }
1209
+ } while ($this->moveToNextLine());
1210
+
1211
+ throw new ParseException('Malformed inline YAML string.');
1212
+ }
1213
+
1214
+ private function lexUnquotedString(int &$cursor): string
1215
+ {
1216
+ $offset = $cursor;
1217
+ $cursor += strcspn($this->currentLine, '[]{},: ', $cursor);
1218
+
1219
+ if ($cursor === $offset) {
1220
+ throw new ParseException('Malformed unquoted YAML string.');
1221
+ }
1222
+
1223
+ return substr($this->currentLine, $offset, $cursor - $offset);
1224
+ }
1225
+
1226
+ private function lexInlineMapping(int &$cursor = 0): string
1227
+ {
1228
+ return $this->lexInlineStructure($cursor, '}');
1229
+ }
1230
+
1231
+ private function lexInlineSequence(int &$cursor = 0): string
1232
+ {
1233
+ return $this->lexInlineStructure($cursor, ']');
1234
+ }
1235
+
1236
+ private function lexInlineStructure(int &$cursor, string $closingTag): string
1237
+ {
1238
+ $value = $this->currentLine[$cursor];
1239
+ ++$cursor;
1240
+
1241
+ do {
1242
+ $this->consumeWhitespaces($cursor);
1243
+
1244
+ while (isset($this->currentLine[$cursor])) {
1245
+ switch ($this->currentLine[$cursor]) {
1246
+ case '"':
1247
+ case "'":
1248
+ $value .= $this->lexInlineQuotedString($cursor);
1249
+ break;
1250
+ case ':':
1251
+ case ',':
1252
+ $value .= $this->currentLine[$cursor];
1253
+ ++$cursor;
1254
+ break;
1255
+ case '{':
1256
+ $value .= $this->lexInlineMapping($cursor);
1257
+ break;
1258
+ case '[':
1259
+ $value .= $this->lexInlineSequence($cursor);
1260
+ break;
1261
+ case $closingTag:
1262
+ $value .= $this->currentLine[$cursor];
1263
+ ++$cursor;
1264
+
1265
+ return $value;
1266
+ case '#':
1267
+ break 2;
1268
+ default:
1269
+ $value .= $this->lexUnquotedString($cursor);
1270
+ }
1271
+
1272
+ if ($this->consumeWhitespaces($cursor)) {
1273
+ $value .= ' ';
1274
+ }
1275
+ }
1276
+
1277
+ if ($this->hasMoreLines()) {
1278
+ $cursor = 0;
1279
+ }
1280
+ } while ($this->moveToNextLine());
1281
+
1282
+ throw new ParseException('Malformed inline YAML string.');
1283
+ }
1284
+
1285
+ private function consumeWhitespaces(int &$cursor): bool
1286
+ {
1287
+ $whitespacesConsumed = 0;
1288
+
1289
+ do {
1290
+ $whitespaceOnlyTokenLength = strspn($this->currentLine, ' ', $cursor);
1291
+ $whitespacesConsumed += $whitespaceOnlyTokenLength;
1292
+ $cursor += $whitespaceOnlyTokenLength;
1293
+
1294
+ if (isset($this->currentLine[$cursor])) {
1295
+ return 0 < $whitespacesConsumed;
1296
+ }
1297
+
1298
+ if ($this->hasMoreLines()) {
1299
+ $cursor = 0;
1300
+ }
1301
+ } while ($this->moveToNextLine());
1302
+
1303
+ return 0 < $whitespacesConsumed;
1304
+ }
1305
+ }