@factify/sdk 0.3.13 → 0.3.14-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +13 -0
  2. package/dist/commonjs/funcs/organizationsInvitesAccept.d.ts +18 -0
  3. package/dist/commonjs/funcs/organizationsInvitesAccept.d.ts.map +1 -0
  4. package/dist/commonjs/funcs/organizationsInvitesAccept.js +131 -0
  5. package/dist/commonjs/funcs/organizationsInvitesAccept.js.map +1 -0
  6. package/dist/commonjs/funcs/organizationsInvitesCreate.d.ts +18 -0
  7. package/dist/commonjs/funcs/organizationsInvitesCreate.d.ts.map +1 -0
  8. package/dist/commonjs/funcs/organizationsInvitesCreate.js +127 -0
  9. package/dist/commonjs/funcs/organizationsInvitesCreate.js.map +1 -0
  10. package/dist/commonjs/funcs/organizationsInvitesList.d.ts +21 -0
  11. package/dist/commonjs/funcs/organizationsInvitesList.d.ts.map +1 -0
  12. package/dist/commonjs/funcs/organizationsInvitesList.js +161 -0
  13. package/dist/commonjs/funcs/organizationsInvitesList.js.map +1 -0
  14. package/dist/commonjs/funcs/organizationsInvitesResend.d.ts +18 -0
  15. package/dist/commonjs/funcs/organizationsInvitesResend.d.ts.map +1 -0
  16. package/dist/commonjs/funcs/organizationsInvitesResend.js +131 -0
  17. package/dist/commonjs/funcs/organizationsInvitesResend.js.map +1 -0
  18. package/dist/commonjs/funcs/organizationsInvitesRevoke.d.ts +18 -0
  19. package/dist/commonjs/funcs/organizationsInvitesRevoke.d.ts.map +1 -0
  20. package/dist/commonjs/funcs/organizationsInvitesRevoke.js +131 -0
  21. package/dist/commonjs/funcs/organizationsInvitesRevoke.js.map +1 -0
  22. package/dist/commonjs/lib/config.d.ts +3 -3
  23. package/dist/commonjs/lib/config.js +3 -3
  24. package/dist/commonjs/lib/config.js.map +1 -1
  25. package/dist/commonjs/models/components/acceptorganizationinviteresponse.d.ts +17 -0
  26. package/dist/commonjs/models/components/acceptorganizationinviteresponse.d.ts.map +1 -0
  27. package/dist/commonjs/models/components/acceptorganizationinviteresponse.js +51 -0
  28. package/dist/commonjs/models/components/acceptorganizationinviteresponse.js.map +1 -0
  29. package/dist/commonjs/models/components/createorganizationinviteresponse.d.ts +20 -0
  30. package/dist/commonjs/models/components/createorganizationinviteresponse.d.ts.map +1 -0
  31. package/dist/commonjs/models/components/createorganizationinviteresponse.js +51 -0
  32. package/dist/commonjs/models/components/createorganizationinviteresponse.js.map +1 -0
  33. package/dist/commonjs/models/components/index.d.ts +7 -0
  34. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  35. package/dist/commonjs/models/components/index.js +7 -0
  36. package/dist/commonjs/models/components/index.js.map +1 -1
  37. package/dist/commonjs/models/components/listorganizationinvitesresponse.d.ts +25 -0
  38. package/dist/commonjs/models/components/listorganizationinvitesresponse.d.ts.map +1 -0
  39. package/dist/commonjs/models/components/listorganizationinvitesresponse.js +54 -0
  40. package/dist/commonjs/models/components/listorganizationinvitesresponse.js.map +1 -0
  41. package/dist/commonjs/models/components/organizationinvite.d.ts +60 -0
  42. package/dist/commonjs/models/components/organizationinvite.d.ts.map +1 -0
  43. package/dist/commonjs/models/components/organizationinvite.js +71 -0
  44. package/dist/commonjs/models/components/organizationinvite.js.map +1 -0
  45. package/dist/commonjs/models/components/organizationinvitestatus.d.ts +21 -0
  46. package/dist/commonjs/models/components/organizationinvitestatus.d.ts.map +1 -0
  47. package/dist/commonjs/models/components/organizationinvitestatus.js +55 -0
  48. package/dist/commonjs/models/components/organizationinvitestatus.js.map +1 -0
  49. package/dist/commonjs/models/components/resendorganizationinviteresponse.d.ts +20 -0
  50. package/dist/commonjs/models/components/resendorganizationinviteresponse.d.ts.map +1 -0
  51. package/dist/commonjs/models/components/resendorganizationinviteresponse.js +51 -0
  52. package/dist/commonjs/models/components/resendorganizationinviteresponse.js.map +1 -0
  53. package/dist/commonjs/models/components/revokeorganizationinviteresponse.d.ts +20 -0
  54. package/dist/commonjs/models/components/revokeorganizationinviteresponse.d.ts.map +1 -0
  55. package/dist/commonjs/models/components/revokeorganizationinviteresponse.js +51 -0
  56. package/dist/commonjs/models/components/revokeorganizationinviteresponse.js.map +1 -0
  57. package/dist/commonjs/models/operations/acceptorganizationinvite.d.ts +60 -0
  58. package/dist/commonjs/models/operations/acceptorganizationinvite.d.ts.map +1 -0
  59. package/dist/commonjs/models/operations/acceptorganizationinvite.js +85 -0
  60. package/dist/commonjs/models/operations/acceptorganizationinvite.js.map +1 -0
  61. package/dist/commonjs/models/operations/createorganizationinvite.d.ts +67 -0
  62. package/dist/commonjs/models/operations/createorganizationinvite.d.ts.map +1 -0
  63. package/dist/commonjs/models/operations/createorganizationinvite.js +89 -0
  64. package/dist/commonjs/models/operations/createorganizationinvite.js.map +1 -0
  65. package/dist/commonjs/models/operations/index.d.ts +5 -0
  66. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  67. package/dist/commonjs/models/operations/index.js +5 -0
  68. package/dist/commonjs/models/operations/index.js.map +1 -1
  69. package/dist/commonjs/models/operations/listorganizationinvites.d.ts +82 -0
  70. package/dist/commonjs/models/operations/listorganizationinvites.d.ts.map +1 -0
  71. package/dist/commonjs/models/operations/listorganizationinvites.js +86 -0
  72. package/dist/commonjs/models/operations/listorganizationinvites.js.map +1 -0
  73. package/dist/commonjs/models/operations/resendorganizationinvite.d.ts +53 -0
  74. package/dist/commonjs/models/operations/resendorganizationinvite.d.ts.map +1 -0
  75. package/dist/commonjs/models/operations/resendorganizationinvite.js +83 -0
  76. package/dist/commonjs/models/operations/resendorganizationinvite.js.map +1 -0
  77. package/dist/commonjs/models/operations/revokeorganizationinvite.d.ts +53 -0
  78. package/dist/commonjs/models/operations/revokeorganizationinvite.d.ts.map +1 -0
  79. package/dist/commonjs/models/operations/revokeorganizationinvite.js +83 -0
  80. package/dist/commonjs/models/operations/revokeorganizationinvite.js.map +1 -0
  81. package/dist/commonjs/sdk/invites.d.ts +43 -0
  82. package/dist/commonjs/sdk/invites.d.ts.map +1 -0
  83. package/dist/commonjs/sdk/invites.js +63 -0
  84. package/dist/commonjs/sdk/invites.js.map +1 -0
  85. package/dist/commonjs/sdk/organizations.d.ts +3 -0
  86. package/dist/commonjs/sdk/organizations.d.ts.map +1 -1
  87. package/dist/commonjs/sdk/organizations.js +4 -0
  88. package/dist/commonjs/sdk/organizations.js.map +1 -1
  89. package/dist/esm/funcs/organizationsInvitesAccept.d.ts +18 -0
  90. package/dist/esm/funcs/organizationsInvitesAccept.d.ts.map +1 -0
  91. package/dist/esm/funcs/organizationsInvitesAccept.js +95 -0
  92. package/dist/esm/funcs/organizationsInvitesAccept.js.map +1 -0
  93. package/dist/esm/funcs/organizationsInvitesCreate.d.ts +18 -0
  94. package/dist/esm/funcs/organizationsInvitesCreate.d.ts.map +1 -0
  95. package/dist/esm/funcs/organizationsInvitesCreate.js +91 -0
  96. package/dist/esm/funcs/organizationsInvitesCreate.js.map +1 -0
  97. package/dist/esm/funcs/organizationsInvitesList.d.ts +21 -0
  98. package/dist/esm/funcs/organizationsInvitesList.d.ts.map +1 -0
  99. package/dist/esm/funcs/organizationsInvitesList.js +125 -0
  100. package/dist/esm/funcs/organizationsInvitesList.js.map +1 -0
  101. package/dist/esm/funcs/organizationsInvitesResend.d.ts +18 -0
  102. package/dist/esm/funcs/organizationsInvitesResend.d.ts.map +1 -0
  103. package/dist/esm/funcs/organizationsInvitesResend.js +95 -0
  104. package/dist/esm/funcs/organizationsInvitesResend.js.map +1 -0
  105. package/dist/esm/funcs/organizationsInvitesRevoke.d.ts +18 -0
  106. package/dist/esm/funcs/organizationsInvitesRevoke.d.ts.map +1 -0
  107. package/dist/esm/funcs/organizationsInvitesRevoke.js +95 -0
  108. package/dist/esm/funcs/organizationsInvitesRevoke.js.map +1 -0
  109. package/dist/esm/lib/config.d.ts +3 -3
  110. package/dist/esm/lib/config.js +3 -3
  111. package/dist/esm/lib/config.js.map +1 -1
  112. package/dist/esm/models/components/acceptorganizationinviteresponse.d.ts +17 -0
  113. package/dist/esm/models/components/acceptorganizationinviteresponse.d.ts.map +1 -0
  114. package/dist/esm/models/components/acceptorganizationinviteresponse.js +14 -0
  115. package/dist/esm/models/components/acceptorganizationinviteresponse.js.map +1 -0
  116. package/dist/esm/models/components/createorganizationinviteresponse.d.ts +20 -0
  117. package/dist/esm/models/components/createorganizationinviteresponse.d.ts.map +1 -0
  118. package/dist/esm/models/components/createorganizationinviteresponse.js +14 -0
  119. package/dist/esm/models/components/createorganizationinviteresponse.js.map +1 -0
  120. package/dist/esm/models/components/index.d.ts +7 -0
  121. package/dist/esm/models/components/index.d.ts.map +1 -1
  122. package/dist/esm/models/components/index.js +7 -0
  123. package/dist/esm/models/components/index.js.map +1 -1
  124. package/dist/esm/models/components/listorganizationinvitesresponse.d.ts +25 -0
  125. package/dist/esm/models/components/listorganizationinvitesresponse.d.ts.map +1 -0
  126. package/dist/esm/models/components/listorganizationinvitesresponse.js +17 -0
  127. package/dist/esm/models/components/listorganizationinvitesresponse.js.map +1 -0
  128. package/dist/esm/models/components/organizationinvite.d.ts +60 -0
  129. package/dist/esm/models/components/organizationinvite.d.ts.map +1 -0
  130. package/dist/esm/models/components/organizationinvite.js +34 -0
  131. package/dist/esm/models/components/organizationinvite.js.map +1 -0
  132. package/dist/esm/models/components/organizationinvitestatus.d.ts +21 -0
  133. package/dist/esm/models/components/organizationinvitestatus.d.ts.map +1 -0
  134. package/dist/esm/models/components/organizationinvitestatus.js +19 -0
  135. package/dist/esm/models/components/organizationinvitestatus.js.map +1 -0
  136. package/dist/esm/models/components/resendorganizationinviteresponse.d.ts +20 -0
  137. package/dist/esm/models/components/resendorganizationinviteresponse.d.ts.map +1 -0
  138. package/dist/esm/models/components/resendorganizationinviteresponse.js +14 -0
  139. package/dist/esm/models/components/resendorganizationinviteresponse.js.map +1 -0
  140. package/dist/esm/models/components/revokeorganizationinviteresponse.d.ts +20 -0
  141. package/dist/esm/models/components/revokeorganizationinviteresponse.d.ts.map +1 -0
  142. package/dist/esm/models/components/revokeorganizationinviteresponse.js +14 -0
  143. package/dist/esm/models/components/revokeorganizationinviteresponse.js.map +1 -0
  144. package/dist/esm/models/operations/acceptorganizationinvite.d.ts +60 -0
  145. package/dist/esm/models/operations/acceptorganizationinvite.d.ts.map +1 -0
  146. package/dist/esm/models/operations/acceptorganizationinvite.js +46 -0
  147. package/dist/esm/models/operations/acceptorganizationinvite.js.map +1 -0
  148. package/dist/esm/models/operations/createorganizationinvite.d.ts +67 -0
  149. package/dist/esm/models/operations/createorganizationinvite.d.ts.map +1 -0
  150. package/dist/esm/models/operations/createorganizationinvite.js +50 -0
  151. package/dist/esm/models/operations/createorganizationinvite.js.map +1 -0
  152. package/dist/esm/models/operations/index.d.ts +5 -0
  153. package/dist/esm/models/operations/index.d.ts.map +1 -1
  154. package/dist/esm/models/operations/index.js +5 -0
  155. package/dist/esm/models/operations/index.js.map +1 -1
  156. package/dist/esm/models/operations/listorganizationinvites.d.ts +82 -0
  157. package/dist/esm/models/operations/listorganizationinvites.d.ts.map +1 -0
  158. package/dist/esm/models/operations/listorganizationinvites.js +48 -0
  159. package/dist/esm/models/operations/listorganizationinvites.js.map +1 -0
  160. package/dist/esm/models/operations/resendorganizationinvite.d.ts +53 -0
  161. package/dist/esm/models/operations/resendorganizationinvite.d.ts.map +1 -0
  162. package/dist/esm/models/operations/resendorganizationinvite.js +44 -0
  163. package/dist/esm/models/operations/resendorganizationinvite.js.map +1 -0
  164. package/dist/esm/models/operations/revokeorganizationinvite.d.ts +53 -0
  165. package/dist/esm/models/operations/revokeorganizationinvite.d.ts.map +1 -0
  166. package/dist/esm/models/operations/revokeorganizationinvite.js +44 -0
  167. package/dist/esm/models/operations/revokeorganizationinvite.js.map +1 -0
  168. package/dist/esm/sdk/invites.d.ts +43 -0
  169. package/dist/esm/sdk/invites.d.ts.map +1 -0
  170. package/dist/esm/sdk/invites.js +59 -0
  171. package/dist/esm/sdk/invites.js.map +1 -0
  172. package/dist/esm/sdk/organizations.d.ts +3 -0
  173. package/dist/esm/sdk/organizations.d.ts.map +1 -1
  174. package/dist/esm/sdk/organizations.js +4 -0
  175. package/dist/esm/sdk/organizations.js.map +1 -1
  176. package/examples/package-lock.json +1 -1
  177. package/jsr.json +1 -1
  178. package/openapi.json +912 -1
  179. package/package.json +1 -1
  180. package/src/funcs/organizationsInvitesAccept.ts +188 -0
  181. package/src/funcs/organizationsInvitesCreate.ts +184 -0
  182. package/src/funcs/organizationsInvitesList.ts +256 -0
  183. package/src/funcs/organizationsInvitesResend.ts +188 -0
  184. package/src/funcs/organizationsInvitesRevoke.ts +188 -0
  185. package/src/lib/config.ts +3 -3
  186. package/src/models/components/acceptorganizationinviteresponse.ts +37 -0
  187. package/src/models/components/createorganizationinviteresponse.ts +43 -0
  188. package/src/models/components/index.ts +7 -0
  189. package/src/models/components/listorganizationinvitesresponse.ts +50 -0
  190. package/src/models/components/organizationinvite.ts +105 -0
  191. package/src/models/components/organizationinvitestatus.ts +35 -0
  192. package/src/models/components/resendorganizationinviteresponse.ts +43 -0
  193. package/src/models/components/revokeorganizationinviteresponse.ts +43 -0
  194. package/src/models/operations/acceptorganizationinvite.ts +142 -0
  195. package/src/models/operations/createorganizationinvite.ts +156 -0
  196. package/src/models/operations/index.ts +5 -0
  197. package/src/models/operations/listorganizationinvites.ts +158 -0
  198. package/src/models/operations/resendorganizationinvite.ts +134 -0
  199. package/src/models/operations/revokeorganizationinvite.ts +134 -0
  200. package/src/sdk/invites.ts +102 -0
  201. package/src/sdk/organizations.ts +6 -0
package/openapi.json CHANGED
@@ -161,6 +161,53 @@
161
161
  }
162
162
  },
163
163
  "schemas": {
164
+ "AcceptOrganizationInviteRequest": {
165
+ "additionalProperties": false,
166
+ "description": "AcceptOrganizationInviteRequest contains the invitation to accept.",
167
+ "properties": {
168
+ "invite_id": {
169
+ "description": "Invitation ID to accept.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
170
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
171
+ "title": "invite_id",
172
+ "type": "string"
173
+ },
174
+ "organization_id": {
175
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
176
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
177
+ "title": "organization_id",
178
+ "type": "string"
179
+ },
180
+ "token": {
181
+ "description": "The invitation token from the email link.",
182
+ "maxLength": 128,
183
+ "title": "token",
184
+ "type": "string"
185
+ }
186
+ },
187
+ "required": [
188
+ "organization_id",
189
+ "invite_id",
190
+ "token"
191
+ ],
192
+ "title": "AcceptOrganizationInviteRequest",
193
+ "type": "object"
194
+ },
195
+ "AcceptOrganizationInviteResponse": {
196
+ "additionalProperties": false,
197
+ "description": "AcceptOrganizationInviteResponse contains the organization the user joined.",
198
+ "properties": {
199
+ "organization": {
200
+ "$ref": "#/components/schemas/Organization",
201
+ "description": "The organization the user is now a member of.",
202
+ "title": "organization"
203
+ }
204
+ },
205
+ "required": [
206
+ "organization"
207
+ ],
208
+ "title": "AcceptOrganizationInviteResponse",
209
+ "type": "object"
210
+ },
164
211
  "AccessLevel": {
165
212
  "enum": [
166
213
  "private",
@@ -390,6 +437,60 @@
390
437
  "title": "CreateDocumentResponse",
391
438
  "type": "object"
392
439
  },
440
+ "CreateOrganizationInviteRequest": {
441
+ "additionalProperties": false,
442
+ "description": "CreateOrganizationInviteRequest contains the data needed to create an invitation.",
443
+ "properties": {
444
+ "email": {
445
+ "description": "Email address of the recipient.",
446
+ "format": "email",
447
+ "title": "email",
448
+ "type": "string"
449
+ },
450
+ "idempotency_key": {
451
+ "description": "Optional client-provided idempotency key for safe retries.\n If provided, duplicate requests with the same key within 24 hours\n return the original response without resending the invitation email.\n Recommended format: UUID or org_id + email + timestamp hash.",
452
+ "maxLength": 255,
453
+ "nullable": true,
454
+ "title": "idempotency_key",
455
+ "type": "string"
456
+ },
457
+ "message": {
458
+ "description": "Optional custom message from the sender (max 2000 bytes to support ~500 multibyte characters).",
459
+ "maxLength": 2000,
460
+ "nullable": true,
461
+ "title": "message",
462
+ "type": "string"
463
+ },
464
+ "organization_id": {
465
+ "description": "Organization to invite the user to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
466
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
467
+ "title": "organization_id",
468
+ "type": "string"
469
+ }
470
+ },
471
+ "required": [
472
+ "organization_id",
473
+ "email"
474
+ ],
475
+ "title": "CreateOrganizationInviteRequest",
476
+ "type": "object"
477
+ },
478
+ "CreateOrganizationInviteResponse": {
479
+ "additionalProperties": false,
480
+ "description": "CreateOrganizationInviteResponse contains the created invitation.",
481
+ "properties": {
482
+ "invite": {
483
+ "$ref": "#/components/schemas/OrganizationInvite",
484
+ "description": "The created (or existing) invitation.",
485
+ "title": "invite"
486
+ }
487
+ },
488
+ "required": [
489
+ "invite"
490
+ ],
491
+ "title": "CreateOrganizationInviteResponse",
492
+ "type": "object"
493
+ },
393
494
  "CreateOrganizationRequest": {
394
495
  "additionalProperties": false,
395
496
  "description": "CreateOrganizationRequest contains the data needed to create a new organization.",
@@ -962,6 +1063,96 @@
962
1063
  "title": "ListDocumentsResponse",
963
1064
  "type": "object"
964
1065
  },
1066
+ "ListOrganizationInvitesRequest": {
1067
+ "additionalProperties": false,
1068
+ "description": "ListOrganizationInvitesRequest specifies filters for listing invitations.\ncreated_time_range // created.after must be before created.before\nexpires_time_range // expires.after must be before expires.before\n",
1069
+ "properties": {
1070
+ "created": {
1071
+ "description": "Filter by creation time range.\n REST: ?created.after=2024-01-01T00:00:00Z\u0026created.before=2024-12-31T23:59:59Z",
1072
+ "format": "date-time",
1073
+ "nullable": true,
1074
+ "title": "created",
1075
+ "type": "string"
1076
+ },
1077
+ "email": {
1078
+ "$ref": "#/components/schemas/StringFilter",
1079
+ "description": "Filter by email address.\n REST: ?email.contains=dwight or ?email.exact=dwight@dundermifflin.com",
1080
+ "nullable": true,
1081
+ "title": "email"
1082
+ },
1083
+ "expires": {
1084
+ "description": "Filter by expiration time range.\n Useful for finding invitations expiring soon (expires.before) or still valid beyond a date (expires.after).\n REST: ?expires.after=2024-01-01T00:00:00Z\u0026expires.before=2024-01-31T23:59:59Z",
1085
+ "format": "date-time",
1086
+ "nullable": true,
1087
+ "title": "expires",
1088
+ "type": "string"
1089
+ },
1090
+ "organization_id": {
1091
+ "description": "Organization to list invitations for.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
1092
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
1093
+ "title": "organization_id",
1094
+ "type": "string"
1095
+ },
1096
+ "page_size": {
1097
+ "description": "Maximum number of items to return per page (1-100). Default: 50.",
1098
+ "format": "int32",
1099
+ "maximum": 100,
1100
+ "minimum": 1,
1101
+ "nullable": true,
1102
+ "title": "page_size",
1103
+ "type": "integer"
1104
+ },
1105
+ "page_token": {
1106
+ "description": "Opaque pagination token from a previous response.",
1107
+ "title": "page_token",
1108
+ "type": "string"
1109
+ },
1110
+ "sender_id": {
1111
+ "description": "Filter by sender. Only returns invitations sent by this user.\n REST: ?sender_id=user_01h2xcejqtf2nbrexx3vqjhp41\n Pattern: user_[0-9a-hjkmnp-tv-z]{26}",
1112
+ "nullable": true,
1113
+ "pattern": "^user_[0-9a-hjkmnp-tv-z]{26}$",
1114
+ "title": "sender_id",
1115
+ "type": "string"
1116
+ },
1117
+ "status": {
1118
+ "description": "Filter by status. If empty, returns all invitations.\n ORGANIZATION_INVITE_STATUS_UNSPECIFIED (0) is not a valid filter value.",
1119
+ "items": {
1120
+ "$ref": "#/components/schemas/OrganizationInviteStatus"
1121
+ },
1122
+ "title": "status",
1123
+ "type": "array"
1124
+ }
1125
+ },
1126
+ "required": [
1127
+ "organization_id"
1128
+ ],
1129
+ "title": "ListOrganizationInvitesRequest",
1130
+ "type": "object"
1131
+ },
1132
+ "ListOrganizationInvitesResponse": {
1133
+ "additionalProperties": false,
1134
+ "description": "ListOrganizationInvitesResponse contains a page of invitations.",
1135
+ "properties": {
1136
+ "items": {
1137
+ "description": "List of invitations.",
1138
+ "items": {
1139
+ "$ref": "#/components/schemas/OrganizationInvite"
1140
+ },
1141
+ "title": "items",
1142
+ "type": "array"
1143
+ },
1144
+ "pagination": {
1145
+ "$ref": "#/components/schemas/Pagination",
1146
+ "description": "Pagination metadata.",
1147
+ "title": "pagination"
1148
+ }
1149
+ },
1150
+ "required": [
1151
+ "pagination"
1152
+ ],
1153
+ "title": "ListOrganizationInvitesResponse",
1154
+ "type": "object"
1155
+ },
965
1156
  "ListOrganizationsRequest": {
966
1157
  "additionalProperties": false,
967
1158
  "description": "ListOrganizationsRequest specifies pagination for listing organizations.",
@@ -1095,6 +1286,96 @@
1095
1286
  "title": "Organization",
1096
1287
  "type": "object"
1097
1288
  },
1289
+ "OrganizationInvite": {
1290
+ "additionalProperties": false,
1291
+ "description": "OrganizationInvite represents an invitation to join an organization.\naccepted_fields_consistency // accepted_at and accepted_by must both be set or both be unset\n",
1292
+ "properties": {
1293
+ "accepted_at": {
1294
+ "description": "When the invitation was accepted (if accepted).",
1295
+ "format": "date-time",
1296
+ "title": "accepted_at",
1297
+ "type": "string"
1298
+ },
1299
+ "accepted_by": {
1300
+ "$ref": "#/components/schemas/User",
1301
+ "description": "User who accepted the invitation (if accepted).",
1302
+ "title": "accepted_by"
1303
+ },
1304
+ "created_at": {
1305
+ "description": "When the invitation was created.",
1306
+ "format": "date-time",
1307
+ "title": "created_at",
1308
+ "type": "string"
1309
+ },
1310
+ "email": {
1311
+ "description": "Email address of the recipient.",
1312
+ "example": "dwight@dundermifflin.com",
1313
+ "format": "email",
1314
+ "title": "email",
1315
+ "type": "string"
1316
+ },
1317
+ "expires_at": {
1318
+ "description": "When the invitation expires.",
1319
+ "format": "date-time",
1320
+ "title": "expires_at",
1321
+ "type": "string"
1322
+ },
1323
+ "id": {
1324
+ "description": "Unique identifier for the invitation.",
1325
+ "example": "inv_01h2xcejqtf2nbrexx3vqjhp41",
1326
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
1327
+ "title": "id",
1328
+ "type": "string"
1329
+ },
1330
+ "message": {
1331
+ "description": "Custom message from sender to recipient (if provided).\n Max 2000 bytes to support ~500 multibyte characters.",
1332
+ "maxLength": 2000,
1333
+ "nullable": true,
1334
+ "title": "message",
1335
+ "type": "string"
1336
+ },
1337
+ "organization_id": {
1338
+ "description": "Organization the invitation is for.",
1339
+ "example": "org_01h2xcejqtf2nbrexx3vqjhp41",
1340
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
1341
+ "title": "organization_id",
1342
+ "type": "string"
1343
+ },
1344
+ "sender": {
1345
+ "$ref": "#/components/schemas/User",
1346
+ "description": "User who sent the invitation (point-in-time snapshot at creation).",
1347
+ "title": "sender"
1348
+ },
1349
+ "status": {
1350
+ "$ref": "#/components/schemas/OrganizationInviteStatus",
1351
+ "description": "Current status of the invitation.",
1352
+ "title": "status"
1353
+ }
1354
+ },
1355
+ "required": [
1356
+ "id",
1357
+ "organization_id",
1358
+ "email",
1359
+ "status",
1360
+ "sender",
1361
+ "created_at",
1362
+ "expires_at"
1363
+ ],
1364
+ "title": "OrganizationInvite",
1365
+ "type": "object"
1366
+ },
1367
+ "OrganizationInviteStatus": {
1368
+ "description": "OrganizationInviteStatus represents the state of an organization invitation.",
1369
+ "enum": [
1370
+ "ORGANIZATION_INVITE_STATUS_UNSPECIFIED",
1371
+ "ORGANIZATION_INVITE_STATUS_PENDING",
1372
+ "ORGANIZATION_INVITE_STATUS_ACCEPTED",
1373
+ "ORGANIZATION_INVITE_STATUS_EXPIRED",
1374
+ "ORGANIZATION_INVITE_STATUS_REVOKED"
1375
+ ],
1376
+ "title": "OrganizationInviteStatus",
1377
+ "type": "string"
1378
+ },
1098
1379
  "Pagination": {
1099
1380
  "additionalProperties": false,
1100
1381
  "description": "Pagination contains cursor-based pagination metadata.\n Follows Google AIP-158 for pagination field naming.",
@@ -1160,6 +1441,46 @@
1160
1441
  "failed"
1161
1442
  ]
1162
1443
  },
1444
+ "ResendOrganizationInviteRequest": {
1445
+ "additionalProperties": false,
1446
+ "description": "ResendOrganizationInviteRequest identifies an invitation to resend.",
1447
+ "properties": {
1448
+ "invite_id": {
1449
+ "description": "Invitation ID to resend.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
1450
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
1451
+ "title": "invite_id",
1452
+ "type": "string"
1453
+ },
1454
+ "organization_id": {
1455
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
1456
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
1457
+ "title": "organization_id",
1458
+ "type": "string"
1459
+ }
1460
+ },
1461
+ "required": [
1462
+ "organization_id",
1463
+ "invite_id"
1464
+ ],
1465
+ "title": "ResendOrganizationInviteRequest",
1466
+ "type": "object"
1467
+ },
1468
+ "ResendOrganizationInviteResponse": {
1469
+ "additionalProperties": false,
1470
+ "description": "ResendOrganizationInviteResponse contains the updated invitation.",
1471
+ "properties": {
1472
+ "invite": {
1473
+ "$ref": "#/components/schemas/OrganizationInvite",
1474
+ "description": "The invitation with updated send count and timestamp.",
1475
+ "title": "invite"
1476
+ }
1477
+ },
1478
+ "required": [
1479
+ "invite"
1480
+ ],
1481
+ "title": "ResendOrganizationInviteResponse",
1482
+ "type": "object"
1483
+ },
1163
1484
  "RevokeApiKeyRequest": {
1164
1485
  "additionalProperties": false,
1165
1486
  "description": "RevokeApiKeyRequest identifies an API key to revoke.",
@@ -1201,6 +1522,66 @@
1201
1522
  "title": "RevokeApiKeyResponse",
1202
1523
  "type": "object"
1203
1524
  },
1525
+ "RevokeOrganizationInviteRequest": {
1526
+ "additionalProperties": false,
1527
+ "description": "RevokeOrganizationInviteRequest identifies an invitation to revoke.",
1528
+ "properties": {
1529
+ "invite_id": {
1530
+ "description": "Invitation ID to revoke.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
1531
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
1532
+ "title": "invite_id",
1533
+ "type": "string"
1534
+ },
1535
+ "organization_id": {
1536
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
1537
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
1538
+ "title": "organization_id",
1539
+ "type": "string"
1540
+ }
1541
+ },
1542
+ "required": [
1543
+ "organization_id",
1544
+ "invite_id"
1545
+ ],
1546
+ "title": "RevokeOrganizationInviteRequest",
1547
+ "type": "object"
1548
+ },
1549
+ "RevokeOrganizationInviteResponse": {
1550
+ "additionalProperties": false,
1551
+ "description": "RevokeOrganizationInviteResponse contains the revoked invitation.",
1552
+ "properties": {
1553
+ "invite": {
1554
+ "$ref": "#/components/schemas/OrganizationInvite",
1555
+ "description": "The revoked invitation with updated status.",
1556
+ "title": "invite"
1557
+ }
1558
+ },
1559
+ "required": [
1560
+ "invite"
1561
+ ],
1562
+ "title": "RevokeOrganizationInviteResponse",
1563
+ "type": "object"
1564
+ },
1565
+ "StringFilter": {
1566
+ "additionalProperties": false,
1567
+ "description": "StringFilter provides flexible string matching options.\n Used with Vanguard dot notation: ?email.contains=john or ?email.exact=john@example.com\n\n Note on case sensitivity: `contains` is case-insensitive for user-friendly partial\n matching (e.g., finding \"john\" matches \"John.Doe@...\"). `exact` is case-sensitive\n for precise lookups where the caller knows the exact value. For email addresses,\n this matches RFC 5321 behavior where the domain is case-insensitive but local-part\n handling varies by provider.\nmutually_exclusive // only one of contains or exact can be specified\n",
1568
+ "properties": {
1569
+ "contains": {
1570
+ "description": "Case-insensitive substring match.\n REST: ?field.contains=value",
1571
+ "nullable": true,
1572
+ "title": "contains",
1573
+ "type": "string"
1574
+ },
1575
+ "exact": {
1576
+ "description": "Exact match (case-sensitive).\n REST: ?field.exact=value",
1577
+ "nullable": true,
1578
+ "title": "exact",
1579
+ "type": "string"
1580
+ }
1581
+ },
1582
+ "title": "StringFilter",
1583
+ "type": "object"
1584
+ },
1204
1585
  "TimestampFilter": {
1205
1586
  "additionalProperties": false,
1206
1587
  "description": "TimestampFilter specifies a time range for filtering.\n Used with Vanguard dot notation: ?created.after=...\u0026created.before=...",
@@ -2746,6 +3127,536 @@
2746
3127
  ]
2747
3128
  }
2748
3129
  },
3130
+ "/v1beta/organizations/{organization_id}/invites": {
3131
+ "get": {
3132
+ "description": "List invitations for an organization. Requires permission to invite organization members.",
3133
+ "operationId": "listOrganizationInvites",
3134
+ "parameters": [
3135
+ {
3136
+ "description": "Organization to list invitations for.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3137
+ "in": "path",
3138
+ "name": "organization_id",
3139
+ "required": true,
3140
+ "schema": {
3141
+ "description": "Organization to list invitations for.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3142
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
3143
+ "title": "organization_id",
3144
+ "type": "string"
3145
+ }
3146
+ },
3147
+ {
3148
+ "description": "Filter by status. If empty, returns all invitations.\n ORGANIZATION_INVITE_STATUS_UNSPECIFIED (0) is not a valid filter value.",
3149
+ "in": "query",
3150
+ "name": "status",
3151
+ "schema": {
3152
+ "description": "Filter by status. If empty, returns all invitations.\n ORGANIZATION_INVITE_STATUS_UNSPECIFIED (0) is not a valid filter value.",
3153
+ "items": {
3154
+ "$ref": "#/components/schemas/OrganizationInviteStatus"
3155
+ },
3156
+ "title": "status",
3157
+ "type": "array"
3158
+ }
3159
+ },
3160
+ {
3161
+ "description": "Opaque pagination token from a previous response.",
3162
+ "in": "query",
3163
+ "name": "page_token",
3164
+ "schema": {
3165
+ "description": "Opaque pagination token from a previous response.",
3166
+ "title": "page_token",
3167
+ "type": "string"
3168
+ }
3169
+ },
3170
+ {
3171
+ "description": "Maximum number of items to return per page (1-100). Default: 50.",
3172
+ "in": "query",
3173
+ "name": "page_size",
3174
+ "schema": {
3175
+ "description": "Maximum number of items to return per page (1-100). Default: 50.",
3176
+ "format": "int32",
3177
+ "maximum": 100,
3178
+ "minimum": 1,
3179
+ "title": "page_size",
3180
+ "type": "integer"
3181
+ }
3182
+ },
3183
+ {
3184
+ "description": "Case-insensitive substring match.\n REST: ?field.contains=value",
3185
+ "in": "query",
3186
+ "name": "email.contains",
3187
+ "schema": {
3188
+ "description": "Case-insensitive substring match.\n REST: ?field.contains=value",
3189
+ "title": "contains",
3190
+ "type": "string"
3191
+ }
3192
+ },
3193
+ {
3194
+ "description": "Exact match (case-sensitive).\n REST: ?field.exact=value",
3195
+ "in": "query",
3196
+ "name": "email.exact",
3197
+ "schema": {
3198
+ "description": "Exact match (case-sensitive).\n REST: ?field.exact=value",
3199
+ "title": "exact",
3200
+ "type": "string"
3201
+ }
3202
+ },
3203
+ {
3204
+ "description": "Filter by sender. Only returns invitations sent by this user.\n REST: ?sender_id=user_01h2xcejqtf2nbrexx3vqjhp41\n Pattern: user_[0-9a-hjkmnp-tv-z]{26}",
3205
+ "in": "query",
3206
+ "name": "sender_id",
3207
+ "schema": {
3208
+ "description": "Filter by sender. Only returns invitations sent by this user.\n REST: ?sender_id=user_01h2xcejqtf2nbrexx3vqjhp41\n Pattern: user_[0-9a-hjkmnp-tv-z]{26}",
3209
+ "pattern": "^user_[0-9a-hjkmnp-tv-z]{26}$",
3210
+ "title": "sender_id",
3211
+ "type": "string"
3212
+ }
3213
+ },
3214
+ {
3215
+ "description": "Filter by created.after (RFC 3339 format, e.g., 2024-01-15T09:30:00Z)",
3216
+ "in": "query",
3217
+ "name": "created.after",
3218
+ "schema": {
3219
+ "format": "date-time",
3220
+ "type": "string"
3221
+ }
3222
+ }
3223
+ ],
3224
+ "responses": {
3225
+ "200": {
3226
+ "content": {
3227
+ "application/json": {
3228
+ "schema": {
3229
+ "$ref": "#/components/schemas/ListOrganizationInvitesResponse"
3230
+ }
3231
+ }
3232
+ },
3233
+ "description": "Success"
3234
+ },
3235
+ "400": {
3236
+ "$ref": "#/components/responses/BadRequest"
3237
+ },
3238
+ "401": {
3239
+ "$ref": "#/components/responses/Unauthorized"
3240
+ },
3241
+ "403": {
3242
+ "$ref": "#/components/responses/Forbidden"
3243
+ },
3244
+ "404": {
3245
+ "$ref": "#/components/responses/NotFound"
3246
+ },
3247
+ "429": {
3248
+ "$ref": "#/components/responses/RateLimitExceeded"
3249
+ },
3250
+ "500": {
3251
+ "$ref": "#/components/responses/InternalServerError"
3252
+ }
3253
+ },
3254
+ "summary": "List organization invitations",
3255
+ "tags": [
3256
+ "Organizations"
3257
+ ],
3258
+ "x-speakeasy-pagination": {
3259
+ "inputs": [
3260
+ {
3261
+ "in": "parameters",
3262
+ "name": "page_token",
3263
+ "type": "cursor"
3264
+ }
3265
+ ],
3266
+ "outputs": {
3267
+ "nextCursor": "$.pagination.next_page_token"
3268
+ },
3269
+ "type": "cursor"
3270
+ },
3271
+ "x-speakeasy-group": "organizations.invites",
3272
+ "x-speakeasy-name-override": "list",
3273
+ "x-codeSamples": [
3274
+ {
3275
+ "lang": "typescript",
3276
+ "label": "listOrganizationInvites",
3277
+ "source": "import { Factify } from \"@factify/sdk\";\n\nconst factify = new Factify({\n bearerAuth: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n});\n\nasync function run() {\n const result = await factify.organizations.invites.list({\n organizationId: \"\u003cid\u003e\",\n });\n\n for await (const page of result) {\n console.log(page);\n }\n}\n\nrun();"
3278
+ }
3279
+ ]
3280
+ },
3281
+ "post": {
3282
+ "description": "Creates an invitation and sends an email to the specified address. Returns FAILED_PRECONDITION if the email belongs to an existing organization member. Idempotency: If a PENDING invitation already exists for this email, the existing invitation is resent (same token, refreshed expiration). Expired or revoked invitations are ignored - a new invitation is created.",
3283
+ "operationId": "createOrganizationInvite",
3284
+ "parameters": [
3285
+ {
3286
+ "description": "Organization to invite the user to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3287
+ "in": "path",
3288
+ "name": "organization_id",
3289
+ "required": true,
3290
+ "schema": {
3291
+ "description": "Organization to invite the user to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3292
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
3293
+ "title": "organization_id",
3294
+ "type": "string"
3295
+ }
3296
+ }
3297
+ ],
3298
+ "requestBody": {
3299
+ "content": {
3300
+ "application/json": {
3301
+ "schema": {
3302
+ "additionalProperties": false,
3303
+ "description": "CreateOrganizationInviteRequest contains the data needed to create an invitation.",
3304
+ "properties": {
3305
+ "email": {
3306
+ "description": "Email address of the recipient.",
3307
+ "format": "email",
3308
+ "title": "email",
3309
+ "type": "string"
3310
+ },
3311
+ "idempotency_key": {
3312
+ "description": "Optional client-provided idempotency key for safe retries.\n If provided, duplicate requests with the same key within 24 hours\n return the original response without resending the invitation email.\n Recommended format: UUID or org_id + email + timestamp hash.",
3313
+ "maxLength": 255,
3314
+ "nullable": true,
3315
+ "title": "idempotency_key",
3316
+ "type": "string"
3317
+ },
3318
+ "message": {
3319
+ "description": "Optional custom message from the sender (max 2000 bytes to support ~500 multibyte characters).",
3320
+ "maxLength": 2000,
3321
+ "nullable": true,
3322
+ "title": "message",
3323
+ "type": "string"
3324
+ }
3325
+ },
3326
+ "required": [
3327
+ "email"
3328
+ ],
3329
+ "title": "CreateOrganizationInviteRequest",
3330
+ "type": "object"
3331
+ }
3332
+ }
3333
+ },
3334
+ "required": true
3335
+ },
3336
+ "responses": {
3337
+ "200": {
3338
+ "content": {
3339
+ "application/json": {
3340
+ "schema": {
3341
+ "$ref": "#/components/schemas/CreateOrganizationInviteResponse"
3342
+ }
3343
+ }
3344
+ },
3345
+ "description": "Success"
3346
+ },
3347
+ "400": {
3348
+ "$ref": "#/components/responses/BadRequest"
3349
+ },
3350
+ "401": {
3351
+ "$ref": "#/components/responses/Unauthorized"
3352
+ },
3353
+ "403": {
3354
+ "$ref": "#/components/responses/Forbidden"
3355
+ },
3356
+ "404": {
3357
+ "$ref": "#/components/responses/NotFound"
3358
+ },
3359
+ "429": {
3360
+ "$ref": "#/components/responses/RateLimitExceeded"
3361
+ },
3362
+ "500": {
3363
+ "$ref": "#/components/responses/InternalServerError"
3364
+ }
3365
+ },
3366
+ "summary": "Invite a user to join an organization",
3367
+ "tags": [
3368
+ "Organizations"
3369
+ ],
3370
+ "x-speakeasy-group": "organizations.invites",
3371
+ "x-speakeasy-name-override": "create",
3372
+ "x-codeSamples": [
3373
+ {
3374
+ "lang": "typescript",
3375
+ "label": "createOrganizationInvite",
3376
+ "source": "import { Factify } from \"@factify/sdk\";\n\nconst factify = new Factify({\n bearerAuth: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n});\n\nasync function run() {\n const result = await factify.organizations.invites.create({\n organizationId: \"\u003cid\u003e\",\n body: {\n email: \"Willie_Parisian16@hotmail.com\",\n },\n });\n\n console.log(result);\n}\n\nrun();"
3377
+ }
3378
+ ]
3379
+ }
3380
+ },
3381
+ "/v1beta/organizations/{organization_id}/invites/{invite_id}:accept": {
3382
+ "post": {
3383
+ "description": "Accepts the invitation and adds the authenticated user as a member of the organization. The authenticated user's verified email must match the invitation email (case-insensitive). Returns PERMISSION_DENIED if emails don't match, FAILED_PRECONDITION if the user is already a member, or NOT_FOUND if the invitation is invalid/expired.",
3384
+ "operationId": "acceptOrganizationInvite",
3385
+ "parameters": [
3386
+ {
3387
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3388
+ "in": "path",
3389
+ "name": "organization_id",
3390
+ "required": true,
3391
+ "schema": {
3392
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3393
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
3394
+ "title": "organization_id",
3395
+ "type": "string"
3396
+ }
3397
+ },
3398
+ {
3399
+ "description": "Invitation ID to accept.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3400
+ "in": "path",
3401
+ "name": "invite_id",
3402
+ "required": true,
3403
+ "schema": {
3404
+ "description": "Invitation ID to accept.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3405
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
3406
+ "title": "invite_id",
3407
+ "type": "string"
3408
+ }
3409
+ }
3410
+ ],
3411
+ "requestBody": {
3412
+ "content": {
3413
+ "application/json": {
3414
+ "schema": {
3415
+ "additionalProperties": false,
3416
+ "description": "AcceptOrganizationInviteRequest contains the invitation to accept.",
3417
+ "properties": {
3418
+ "token": {
3419
+ "description": "The invitation token from the email link.",
3420
+ "maxLength": 128,
3421
+ "title": "token",
3422
+ "type": "string"
3423
+ }
3424
+ },
3425
+ "required": [
3426
+ "token"
3427
+ ],
3428
+ "title": "AcceptOrganizationInviteRequest",
3429
+ "type": "object"
3430
+ }
3431
+ }
3432
+ },
3433
+ "required": true
3434
+ },
3435
+ "responses": {
3436
+ "200": {
3437
+ "content": {
3438
+ "application/json": {
3439
+ "schema": {
3440
+ "$ref": "#/components/schemas/AcceptOrganizationInviteResponse"
3441
+ }
3442
+ }
3443
+ },
3444
+ "description": "Success"
3445
+ },
3446
+ "400": {
3447
+ "$ref": "#/components/responses/BadRequest"
3448
+ },
3449
+ "401": {
3450
+ "$ref": "#/components/responses/Unauthorized"
3451
+ },
3452
+ "403": {
3453
+ "$ref": "#/components/responses/Forbidden"
3454
+ },
3455
+ "404": {
3456
+ "$ref": "#/components/responses/NotFound"
3457
+ },
3458
+ "429": {
3459
+ "$ref": "#/components/responses/RateLimitExceeded"
3460
+ },
3461
+ "500": {
3462
+ "$ref": "#/components/responses/InternalServerError"
3463
+ }
3464
+ },
3465
+ "summary": "Accept an invitation",
3466
+ "tags": [
3467
+ "Organizations"
3468
+ ],
3469
+ "x-speakeasy-group": "organizations.invites",
3470
+ "x-speakeasy-name-override": "accept",
3471
+ "x-codeSamples": [
3472
+ {
3473
+ "lang": "typescript",
3474
+ "label": "acceptOrganizationInvite",
3475
+ "source": "import { Factify } from \"@factify/sdk\";\n\nconst factify = new Factify({\n bearerAuth: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n});\n\nasync function run() {\n const result = await factify.organizations.invites.accept({\n organizationId: \"\u003cid\u003e\",\n inviteId: \"\u003cid\u003e\",\n body: {\n token: \"\u003cvalue\u003e\",\n },\n });\n\n console.log(result);\n}\n\nrun();"
3476
+ }
3477
+ ]
3478
+ }
3479
+ },
3480
+ "/v1beta/organizations/{organization_id}/invites/{invite_id}:resend": {
3481
+ "post": {
3482
+ "description": "Resend an invitation email to the recipient. Useful if the original email was lost or expired. Requires permission to invite organization members.",
3483
+ "operationId": "resendOrganizationInvite",
3484
+ "parameters": [
3485
+ {
3486
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3487
+ "in": "path",
3488
+ "name": "organization_id",
3489
+ "required": true,
3490
+ "schema": {
3491
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3492
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
3493
+ "title": "organization_id",
3494
+ "type": "string"
3495
+ }
3496
+ },
3497
+ {
3498
+ "description": "Invitation ID to resend.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3499
+ "in": "path",
3500
+ "name": "invite_id",
3501
+ "required": true,
3502
+ "schema": {
3503
+ "description": "Invitation ID to resend.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3504
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
3505
+ "title": "invite_id",
3506
+ "type": "string"
3507
+ }
3508
+ }
3509
+ ],
3510
+ "requestBody": {
3511
+ "content": {
3512
+ "application/json": {
3513
+ "schema": {
3514
+ "additionalProperties": false,
3515
+ "description": "ResendOrganizationInviteRequest identifies an invitation to resend.",
3516
+ "properties": {},
3517
+ "required": [],
3518
+ "title": "ResendOrganizationInviteRequest",
3519
+ "type": "object"
3520
+ }
3521
+ }
3522
+ },
3523
+ "required": true
3524
+ },
3525
+ "responses": {
3526
+ "200": {
3527
+ "content": {
3528
+ "application/json": {
3529
+ "schema": {
3530
+ "$ref": "#/components/schemas/ResendOrganizationInviteResponse"
3531
+ }
3532
+ }
3533
+ },
3534
+ "description": "Success"
3535
+ },
3536
+ "400": {
3537
+ "$ref": "#/components/responses/BadRequest"
3538
+ },
3539
+ "401": {
3540
+ "$ref": "#/components/responses/Unauthorized"
3541
+ },
3542
+ "403": {
3543
+ "$ref": "#/components/responses/Forbidden"
3544
+ },
3545
+ "404": {
3546
+ "$ref": "#/components/responses/NotFound"
3547
+ },
3548
+ "429": {
3549
+ "$ref": "#/components/responses/RateLimitExceeded"
3550
+ },
3551
+ "500": {
3552
+ "$ref": "#/components/responses/InternalServerError"
3553
+ }
3554
+ },
3555
+ "summary": "Resend an invitation email",
3556
+ "tags": [
3557
+ "Organizations"
3558
+ ],
3559
+ "x-speakeasy-group": "organizations.invites",
3560
+ "x-speakeasy-name-override": "resend",
3561
+ "x-codeSamples": [
3562
+ {
3563
+ "lang": "typescript",
3564
+ "label": "resendOrganizationInvite",
3565
+ "source": "import { Factify } from \"@factify/sdk\";\n\nconst factify = new Factify({\n bearerAuth: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n});\n\nasync function run() {\n const result = await factify.organizations.invites.resend({\n organizationId: \"\u003cid\u003e\",\n inviteId: \"\u003cid\u003e\",\n body: {},\n });\n\n console.log(result);\n}\n\nrun();"
3566
+ }
3567
+ ]
3568
+ }
3569
+ },
3570
+ "/v1beta/organizations/{organization_id}/invites/{invite_id}:revoke": {
3571
+ "post": {
3572
+ "description": "Revoke a pending invitation, preventing the recipient from joining. Requires permission to manage organization members.",
3573
+ "operationId": "revokeOrganizationInvite",
3574
+ "parameters": [
3575
+ {
3576
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3577
+ "in": "path",
3578
+ "name": "organization_id",
3579
+ "required": true,
3580
+ "schema": {
3581
+ "description": "Organization the invitation belongs to.\n Pattern: org_[0-9a-hjkmnp-tv-z]{26}",
3582
+ "pattern": "^org_[0-9a-hjkmnp-tv-z]{26}$",
3583
+ "title": "organization_id",
3584
+ "type": "string"
3585
+ }
3586
+ },
3587
+ {
3588
+ "description": "Invitation ID to revoke.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3589
+ "in": "path",
3590
+ "name": "invite_id",
3591
+ "required": true,
3592
+ "schema": {
3593
+ "description": "Invitation ID to revoke.\n Pattern: inv_[0-9a-hjkmnp-tv-z]{26}",
3594
+ "pattern": "^inv_[0-9a-hjkmnp-tv-z]{26}$",
3595
+ "title": "invite_id",
3596
+ "type": "string"
3597
+ }
3598
+ }
3599
+ ],
3600
+ "requestBody": {
3601
+ "content": {
3602
+ "application/json": {
3603
+ "schema": {
3604
+ "additionalProperties": false,
3605
+ "description": "RevokeOrganizationInviteRequest identifies an invitation to revoke.",
3606
+ "properties": {},
3607
+ "required": [],
3608
+ "title": "RevokeOrganizationInviteRequest",
3609
+ "type": "object"
3610
+ }
3611
+ }
3612
+ },
3613
+ "required": true
3614
+ },
3615
+ "responses": {
3616
+ "200": {
3617
+ "content": {
3618
+ "application/json": {
3619
+ "schema": {
3620
+ "$ref": "#/components/schemas/RevokeOrganizationInviteResponse"
3621
+ }
3622
+ }
3623
+ },
3624
+ "description": "Success"
3625
+ },
3626
+ "400": {
3627
+ "$ref": "#/components/responses/BadRequest"
3628
+ },
3629
+ "401": {
3630
+ "$ref": "#/components/responses/Unauthorized"
3631
+ },
3632
+ "403": {
3633
+ "$ref": "#/components/responses/Forbidden"
3634
+ },
3635
+ "404": {
3636
+ "$ref": "#/components/responses/NotFound"
3637
+ },
3638
+ "429": {
3639
+ "$ref": "#/components/responses/RateLimitExceeded"
3640
+ },
3641
+ "500": {
3642
+ "$ref": "#/components/responses/InternalServerError"
3643
+ }
3644
+ },
3645
+ "summary": "Revoke an invitation",
3646
+ "tags": [
3647
+ "Organizations"
3648
+ ],
3649
+ "x-speakeasy-group": "organizations.invites",
3650
+ "x-speakeasy-name-override": "revoke",
3651
+ "x-codeSamples": [
3652
+ {
3653
+ "lang": "typescript",
3654
+ "label": "revokeOrganizationInvite",
3655
+ "source": "import { Factify } from \"@factify/sdk\";\n\nconst factify = new Factify({\n bearerAuth: \"\u003cYOUR_BEARER_TOKEN_HERE\u003e\",\n});\n\nasync function run() {\n const result = await factify.organizations.invites.revoke({\n organizationId: \"\u003cid\u003e\",\n inviteId: \"\u003cid\u003e\",\n body: {},\n });\n\n console.log(result);\n}\n\nrun();"
3656
+ }
3657
+ ]
3658
+ }
3659
+ },
2749
3660
  "/v1beta/versions/{version_id}": {
2750
3661
  "get": {
2751
3662
  "description": "Retrieve a specific version by ID.",
@@ -2922,7 +3833,7 @@
2922
3833
  "name": "Versions"
2923
3834
  },
2924
3835
  {
2925
- "description": "Create and manage organizations.",
3836
+ "description": "Create and manage organizations and member invitations.",
2926
3837
  "name": "Organizations"
2927
3838
  },
2928
3839
  {