api-sdk-rb 1.11.66

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 (854) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +122 -0
  4. data/README.md +648 -0
  5. data/Rakefile +10 -0
  6. data/api-sdk-rb.gemspec +39 -0
  7. data/docs/AccountCreditBalance.md +26 -0
  8. data/docs/AccountCreditBalanceResponse.md +22 -0
  9. data/docs/AccountCreditTransaction.md +30 -0
  10. data/docs/AdapterConnection.md +30 -0
  11. data/docs/AdapterConnectionRemoval.md +18 -0
  12. data/docs/AddAiAnswersKnowledgeDocument201Response.md +22 -0
  13. data/docs/AddAiAnswersKnowledgeDocumentRequest.md +20 -0
  14. data/docs/AddDomainRequest.md +18 -0
  15. data/docs/AiAnswersKnowledge.md +20 -0
  16. data/docs/AiAnswersKnowledgeDocument.md +30 -0
  17. data/docs/AiAnswersKnowledgeRemoval.md +18 -0
  18. data/docs/AiAnswersKnowledgeTotals.md +24 -0
  19. data/docs/ApiKeyScope.md +15 -0
  20. data/docs/Canvas.md +32 -0
  21. data/docs/CanvasResponse.md +22 -0
  22. data/docs/CanvasesApi.md +377 -0
  23. data/docs/CheckCompositionAccessResponse.md +22 -0
  24. data/docs/CheckCompositionAccessResponseData.md +20 -0
  25. data/docs/Composition.md +46 -0
  26. data/docs/CompositionDataSource.md +20 -0
  27. data/docs/CompositionDataSourceResponse.md +22 -0
  28. data/docs/CompositionEntriesDescription.md +22 -0
  29. data/docs/CompositionEntriesDescriptionResponse.md +22 -0
  30. data/docs/CompositionEntriesReading.md +34 -0
  31. data/docs/CompositionEntriesReadingResponse.md +22 -0
  32. data/docs/CompositionEntryAggregateTally.md +28 -0
  33. data/docs/CompositionEntryAggregatesBlock.md +22 -0
  34. data/docs/CompositionEntryColumn.md +20 -0
  35. data/docs/CompositionEntryDeleteSuccess.md +20 -0
  36. data/docs/CompositionEntryDeleteSuccessData.md +18 -0
  37. data/docs/CompositionEntryItem.md +26 -0
  38. data/docs/CompositionEntryItemsMeta.md +22 -0
  39. data/docs/CompositionEntryItemsPageSuccess.md +22 -0
  40. data/docs/CompositionEntryTable.md +22 -0
  41. data/docs/CompositionEntryTally.md +20 -0
  42. data/docs/CompositionResponse.md +22 -0
  43. data/docs/CompositionVersion.md +26 -0
  44. data/docs/CompositionsApi.md +2768 -0
  45. data/docs/ContentCheckFinding.md +24 -0
  46. data/docs/ContentItemWriteResult.md +28 -0
  47. data/docs/ContentItemWriteResultValidationResult.md +22 -0
  48. data/docs/CopyPartnerPresetRequest.md +18 -0
  49. data/docs/CreateCanvasRequest.md +28 -0
  50. data/docs/CreateCompositionContentItem201Response.md +22 -0
  51. data/docs/CreateCompositionContentItemRequest.md +18 -0
  52. data/docs/CreateCompositionDatabaseRecord201Response.md +22 -0
  53. data/docs/CreateCompositionFromPresetRequest.md +26 -0
  54. data/docs/CreateCompositionFromWidget201Response.md +22 -0
  55. data/docs/CreateCompositionFromWidgetRequest.md +28 -0
  56. data/docs/CreateUserApiKeyRequest.md +24 -0
  57. data/docs/CreateWidget201Response.md +22 -0
  58. data/docs/CreateWidget201ResponseData.md +62 -0
  59. data/docs/CreatedUserApiKey.md +34 -0
  60. data/docs/CreatedUserApiKeyResponse.md +22 -0
  61. data/docs/CreditsApi.md +155 -0
  62. data/docs/DeleteCompositionContentItemResponse.md +22 -0
  63. data/docs/DeleteCompositionContentItemResponseData.md +20 -0
  64. data/docs/DeleteCompositionDataSourceResponse.md +22 -0
  65. data/docs/DeleteCompositionDataSourceResponseData.md +18 -0
  66. data/docs/DeleteManagedUser200Response.md +22 -0
  67. data/docs/DeletePersonalWorkspaceDomainResponse.md +22 -0
  68. data/docs/DeletePersonalWorkspaceDomainResponseData.md +18 -0
  69. data/docs/DeleteUserApiKeyResponse.md +22 -0
  70. data/docs/DeleteUserApiKeyResponseData.md +18 -0
  71. data/docs/DesignDefaults.md +18 -0
  72. data/docs/DuplicateComposition202Response.md +22 -0
  73. data/docs/DuplicateComposition202ResponseData.md +18 -0
  74. data/docs/DuplicateCompositionRequest.md +20 -0
  75. data/docs/EditorSession.md +34 -0
  76. data/docs/EditorSessionResponse.md +22 -0
  77. data/docs/Entitlement.md +38 -0
  78. data/docs/EntitlementsApi.md +163 -0
  79. data/docs/ErrorDetail.md +34 -0
  80. data/docs/ErrorResponse.md +22 -0
  81. data/docs/ExportCompositionEntryItems200Response.md +22 -0
  82. data/docs/ExportCompositionEntryItems200ResponseMeta.md +20 -0
  83. data/docs/GetAiAnswersKnowledge200Response.md +22 -0
  84. data/docs/GetAllCanvasesResponse.md +22 -0
  85. data/docs/GetAllCanvasesResponseData.md +24 -0
  86. data/docs/GetAllCompositions200Response.md +22 -0
  87. data/docs/GetAllManagedUsers200Response.md +22 -0
  88. data/docs/GetCompositionContentResponse.md +22 -0
  89. data/docs/GetCompositionContentSchemaResponse.md +22 -0
  90. data/docs/GetCompositionContentSchemaResponseData.md +28 -0
  91. data/docs/GetCompositionDataSourceResponse.md +22 -0
  92. data/docs/GetCompositionDatabaseRecords200Response.md +22 -0
  93. data/docs/GetCompositionDesignResponse.md +22 -0
  94. data/docs/GetCompositionDesignSchemaResponse.md +22 -0
  95. data/docs/GetCompositionDesignSchemaResponseData.md +28 -0
  96. data/docs/GetCompositionEmbedSchemaResponse.md +22 -0
  97. data/docs/GetCompositionEmbedSchemaResponseData.md +28 -0
  98. data/docs/GetCompositionEmbedSettingsResponse.md +22 -0
  99. data/docs/GetCompositionPreviewResponse.md +22 -0
  100. data/docs/GetCompositionPreviewResponseData.md +24 -0
  101. data/docs/GetCompositionVersions200Response.md +22 -0
  102. data/docs/GetCompositionsBatchRequest.md +18 -0
  103. data/docs/GetCompositionsBatchResponse.md +22 -0
  104. data/docs/GetCompositionsBatchResponseData.md +20 -0
  105. data/docs/GetInvoicesByPartnerId200Response.md +22 -0
  106. data/docs/GetManagedUserEntitlementsResponse.md +22 -0
  107. data/docs/GetManagedUserEntitlementsResponseData.md +20 -0
  108. data/docs/GetManagedUserLimits200Response.md +22 -0
  109. data/docs/GetManagedUserStorageUsage200Response.md +22 -0
  110. data/docs/GetManagedUserStorageUsage200ResponseData.md +22 -0
  111. data/docs/GetManagedUserStorageUsage200ResponseDataByPurpose.md +24 -0
  112. data/docs/GetManagedUsersByManagerIdResponse.md +22 -0
  113. data/docs/GetManagedUsersByManagerIdResponseData.md +24 -0
  114. data/docs/GetPartnerBillingOverview200Response.md +22 -0
  115. data/docs/GetPartnerCreditTransactions200Response.md +22 -0
  116. data/docs/GetPartnerDesignDefaults200Response.md +22 -0
  117. data/docs/GetPartnerEntitlementsResponse.md +22 -0
  118. data/docs/GetPartnerEntitlementsResponseData.md +20 -0
  119. data/docs/GetPersonalWorkspaceDomains200Response.md +22 -0
  120. data/docs/GetPublicCompositionEmbed200Response.md +46 -0
  121. data/docs/GetPublicCompositionEmbed200ResponseDataSource.md +20 -0
  122. data/docs/GetPublicCompositionEmbed200ResponseDirect.md +22 -0
  123. data/docs/GetUserAdapterConnections200Response.md +22 -0
  124. data/docs/GetUserApiKeyUsageLogsResponse.md +22 -0
  125. data/docs/GetUserApiKeyUsageLogsResponseData.md +18 -0
  126. data/docs/GetUserApiKeys200Response.md +22 -0
  127. data/docs/GetWidgets200Response.md +22 -0
  128. data/docs/GetWidgetsBatchRequest.md +18 -0
  129. data/docs/GetWidgetsBatchResponse.md +22 -0
  130. data/docs/GetWidgetsBatchResponseData.md +20 -0
  131. data/docs/GetWidgetsBatchResponseDataErrorsInner.md +20 -0
  132. data/docs/InvoicesApi.md +85 -0
  133. data/docs/ListPartnerPresets200Response.md +22 -0
  134. data/docs/ManagedUser.md +30 -0
  135. data/docs/ManagedUserEntriesMeta.md +26 -0
  136. data/docs/ManagedUserEntriesPageSuccess.md +22 -0
  137. data/docs/ManagedUserEntryItem.md +30 -0
  138. data/docs/ManagedUserLimits.md +24 -0
  139. data/docs/ManagedUserOperationUsage.md +26 -0
  140. data/docs/ManagedUserRemoval.md +20 -0
  141. data/docs/ManagedUserResponse.md +22 -0
  142. data/docs/ManagedUserUsage.md +28 -0
  143. data/docs/ManagedUserUsageResponse.md +22 -0
  144. data/docs/ManagedUserUsageTotals.md +24 -0
  145. data/docs/ManagedUsersApi.md +1239 -0
  146. data/docs/MyPartner.md +34 -0
  147. data/docs/MyPartners.md +22 -0
  148. data/docs/MyPartnersResponse.md +22 -0
  149. data/docs/NewComposition.md +38 -0
  150. data/docs/NewEditorSession.md +24 -0
  151. data/docs/NewManagedUser.md +22 -0
  152. data/docs/NewWidget.md +38 -0
  153. data/docs/OperationsApi.md +77 -0
  154. data/docs/OperationsIdGetResponse.md +22 -0
  155. data/docs/OperationsIdGetResponseData.md +32 -0
  156. data/docs/PartnerAnalyticsByManagedUser.md +24 -0
  157. data/docs/PartnerAnalyticsByManagedUserResponse.md +22 -0
  158. data/docs/PartnerAnalyticsOfDay.md +24 -0
  159. data/docs/PartnerAnalyticsOfManagedUser.md +36 -0
  160. data/docs/PartnerAnalyticsOfWidget.md +28 -0
  161. data/docs/PartnerAnalyticsSummary.md +32 -0
  162. data/docs/PartnerAnalyticsSummaryResponse.md +22 -0
  163. data/docs/PartnerAnalyticsTimeline.md +24 -0
  164. data/docs/PartnerAnalyticsTimelineResponse.md +22 -0
  165. data/docs/PartnerAnalyticsTopWidgets.md +24 -0
  166. data/docs/PartnerAnalyticsTopWidgetsResponse.md +22 -0
  167. data/docs/PartnerApi.md +9892 -0
  168. data/docs/PartnerBillingOverview.md +24 -0
  169. data/docs/PartnerBillingOverviewBillingIntegration.md +24 -0
  170. data/docs/PartnerBillingOverviewOperationalCredits.md +24 -0
  171. data/docs/PartnerBillingOverviewPartner.md +24 -0
  172. data/docs/PartnerContract.md +48 -0
  173. data/docs/PartnerContractResponse.md +22 -0
  174. data/docs/PartnerCustomization.md +50 -0
  175. data/docs/PartnerDataDatabase.md +32 -0
  176. data/docs/PartnerDataDatabaseRemoval.md +18 -0
  177. data/docs/PartnerDataDatabaseRemovalResponse.md +22 -0
  178. data/docs/PartnerDataDatabaseResponse.md +22 -0
  179. data/docs/PartnerEntryContextSecret.md +20 -0
  180. data/docs/PartnerEntryContextSecretResponse.md +22 -0
  181. data/docs/PartnerEntryContextSigning.md +28 -0
  182. data/docs/PartnerEntryContextSigningResponse.md +22 -0
  183. data/docs/PartnerExtraCreditsInvoice.md +40 -0
  184. data/docs/PartnerExtraCreditsInvoiceResponse.md +22 -0
  185. data/docs/PartnerInvoice.md +64 -0
  186. data/docs/PartnerNotification.md +30 -0
  187. data/docs/PartnerNotificationDefaultRecipients.md +20 -0
  188. data/docs/PartnerNotificationDelivery.md +46 -0
  189. data/docs/PartnerNotificationDeliveryLog.md +18 -0
  190. data/docs/PartnerNotificationDeliveryLogResponse.md +22 -0
  191. data/docs/PartnerNotificationDeliveryResponse.md +22 -0
  192. data/docs/PartnerNotificationEvent.md +28 -0
  193. data/docs/PartnerNotificationEventType.md +15 -0
  194. data/docs/PartnerNotificationPage.md +20 -0
  195. data/docs/PartnerNotificationPageResponse.md +22 -0
  196. data/docs/PartnerNotificationSettings.md +36 -0
  197. data/docs/PartnerNotificationSettingsChange.md +20 -0
  198. data/docs/PartnerNotificationSettingsChangeResponse.md +22 -0
  199. data/docs/PartnerNotificationSettingsResponse.md +22 -0
  200. data/docs/PartnerNotificationTestEventRequest.md +18 -0
  201. data/docs/PartnerNotificationTestEventResult.md +24 -0
  202. data/docs/PartnerNotificationTestEventResultResponse.md +22 -0
  203. data/docs/PartnerPreset.md +34 -0
  204. data/docs/PartnerPresetCopy.md +28 -0
  205. data/docs/PartnerPresetCopyResponse.md +22 -0
  206. data/docs/PartnerPresetRemoval.md +18 -0
  207. data/docs/PartnerPresetRemovalResponse.md +22 -0
  208. data/docs/PartnerPresetResponse.md +22 -0
  209. data/docs/PartnerReportPage.md +22 -0
  210. data/docs/PartnerReportPeriod.md +20 -0
  211. data/docs/PartnerStorageDestination.md +40 -0
  212. data/docs/PartnerStorageDestinationResponse.md +22 -0
  213. data/docs/PartnerStorageRemoval.md +18 -0
  214. data/docs/PartnerStorageRemovalResponse.md +22 -0
  215. data/docs/PartnerStorageUsage.md +24 -0
  216. data/docs/PartnerStorageUsageOfManagedUser.md +34 -0
  217. data/docs/PartnerStorageUsageResponse.md +22 -0
  218. data/docs/PartnerStorageUsageTotals.md +24 -0
  219. data/docs/PartnersApi.md +2708 -0
  220. data/docs/PersonalWorkspaceDomain.md +26 -0
  221. data/docs/PersonalWorkspaceDomainResult.md +20 -0
  222. data/docs/PersonalWorkspaceDomainResultResponse.md +22 -0
  223. data/docs/PostPublicCompositionEmbedStatus200Response.md +22 -0
  224. data/docs/PostPublicCompositionEmbedStatus200ResponseData.md +18 -0
  225. data/docs/PostPublicCompositionEmbedStatusRequest.md +18 -0
  226. data/docs/PublicAdapterCallError.md +24 -0
  227. data/docs/PublicAdapterCallRequest.md +26 -0
  228. data/docs/PublicAdapterCallResult.md +20 -0
  229. data/docs/PublicAdapterCallResultData.md +18 -0
  230. data/docs/PublicAdapterFileResult.md +20 -0
  231. data/docs/PublicAdapterFileResultData.md +18 -0
  232. data/docs/PublicAdapterFileResultDataFile.md +28 -0
  233. data/docs/PublicCompositionEntryCreated.md +20 -0
  234. data/docs/PublicCompositionEntryCreatedData.md +22 -0
  235. data/docs/PublicCompositionEntryRequest.md +22 -0
  236. data/docs/PublicEmbedApi.md +415 -0
  237. data/docs/PublicEmbedFailure.md +28 -0
  238. data/docs/PublicEmbedFailureDetails.md +20 -0
  239. data/docs/PublicEmbedFailureError.md +28 -0
  240. data/docs/PurposeStorageBucket.md +20 -0
  241. data/docs/RemoveAiAnswersKnowledgeDocument200Response.md +22 -0
  242. data/docs/RemoveUserAdapterConnection200Response.md +22 -0
  243. data/docs/RequestExtraCredits.md +18 -0
  244. data/docs/ResponseMeta.md +34 -0
  245. data/docs/RevokeManagedUserEditorSessionsResponse.md +22 -0
  246. data/docs/RevokeManagedUserEditorSessionsResponseData.md +18 -0
  247. data/docs/SetAdapterConnectionRequest.md +18 -0
  248. data/docs/SetCompositionDataSourceRequest.md +20 -0
  249. data/docs/SetDynamicContentRequest.md +26 -0
  250. data/docs/SetDynamicContentResponse.md +22 -0
  251. data/docs/SetDynamicContentResponseData.md +26 -0
  252. data/docs/SetDynamicContentResponseDataValidationResult.md +22 -0
  253. data/docs/SetManagedUserLimitsRequest.md +18 -0
  254. data/docs/SetPartnerDataDatabaseRequest.md +18 -0
  255. data/docs/SetPartnerDesignDefaultsRequest.md +18 -0
  256. data/docs/SetPartnerPresetRequest.md +24 -0
  257. data/docs/SetPartnerStorageDestinationRequest.md +32 -0
  258. data/docs/SetUserAdapterConnection200Response.md +22 -0
  259. data/docs/SuccessResponse.md +22 -0
  260. data/docs/TokensApi.md +77 -0
  261. data/docs/UpdateCanvasRequest.md +22 -0
  262. data/docs/UpdateComposition.md +32 -0
  263. data/docs/UpdateCompositionStatusRequest.md +18 -0
  264. data/docs/UpdateDomainRequest.md +18 -0
  265. data/docs/UpdateManagedUser.md +22 -0
  266. data/docs/UpdatePartnerEntryContextSigningRequest.md +18 -0
  267. data/docs/UpdatePartnerNotificationSettingsRequest.md +24 -0
  268. data/docs/UpdateUserApiKeyRequest.md +20 -0
  269. data/docs/Upload.md +44 -0
  270. data/docs/UploadLimits.md +28 -0
  271. data/docs/UploadLimitsResponse.md +22 -0
  272. data/docs/UploadResponse.md +22 -0
  273. data/docs/UploadsApi.md +372 -0
  274. data/docs/UploadsGet200Response.md +22 -0
  275. data/docs/UploadsIdDelete200Response.md +22 -0
  276. data/docs/UploadsIdDelete200ResponseData.md +18 -0
  277. data/docs/UserApiKey.md +34 -0
  278. data/docs/UserApiKeyResponse.md +22 -0
  279. data/docs/UserApiKeyUsageLog.md +32 -0
  280. data/docs/UsersApi.md +881 -0
  281. data/docs/ValidateCompositionContentResponse.md +22 -0
  282. data/docs/ValidateCompositionContentResponseData.md +24 -0
  283. data/docs/ValidateToken200Response.md +22 -0
  284. data/docs/ValidateToken200ResponseData.md +26 -0
  285. data/docs/Widget.md +60 -0
  286. data/docs/WidgetsApi.md +303 -0
  287. data/git_push.sh +57 -0
  288. data/lib/api-sdk-rb/api/canvases_api.rb +390 -0
  289. data/lib/api-sdk-rb/api/compositions_api.rb +3267 -0
  290. data/lib/api-sdk-rb/api/credits_api.rb +169 -0
  291. data/lib/api-sdk-rb/api/entitlements_api.rb +166 -0
  292. data/lib/api-sdk-rb/api/invoices_api.rb +110 -0
  293. data/lib/api-sdk-rb/api/managed_users_api.rb +1299 -0
  294. data/lib/api-sdk-rb/api/operations_api.rb +85 -0
  295. data/lib/api-sdk-rb/api/partner_api.rb +10693 -0
  296. data/lib/api-sdk-rb/api/partners_api.rb +2799 -0
  297. data/lib/api-sdk-rb/api/public_embed_api.rb +496 -0
  298. data/lib/api-sdk-rb/api/tokens_api.rb +77 -0
  299. data/lib/api-sdk-rb/api/uploads_api.rb +383 -0
  300. data/lib/api-sdk-rb/api/users_api.rb +934 -0
  301. data/lib/api-sdk-rb/api/widgets_api.rb +347 -0
  302. data/lib/api-sdk-rb/api_client.rb +394 -0
  303. data/lib/api-sdk-rb/api_error.rb +58 -0
  304. data/lib/api-sdk-rb/configuration.rb +425 -0
  305. data/lib/api-sdk-rb/models/account_credit_balance.rb +253 -0
  306. data/lib/api-sdk-rb/models/account_credit_balance_response.rb +247 -0
  307. data/lib/api-sdk-rb/models/account_credit_transaction.rb +277 -0
  308. data/lib/api-sdk-rb/models/adapter_connection.rb +355 -0
  309. data/lib/api-sdk-rb/models/adapter_connection_removal.rb +222 -0
  310. data/lib/api-sdk-rb/models/add_ai_answers_knowledge_document201_response.rb +246 -0
  311. data/lib/api-sdk-rb/models/add_ai_answers_knowledge_document_request.rb +277 -0
  312. data/lib/api-sdk-rb/models/add_domain_request.rb +222 -0
  313. data/lib/api-sdk-rb/models/ai_answers_knowledge.rb +240 -0
  314. data/lib/api-sdk-rb/models/ai_answers_knowledge_document.rb +373 -0
  315. data/lib/api-sdk-rb/models/ai_answers_knowledge_removal.rb +222 -0
  316. data/lib/api-sdk-rb/models/ai_answers_knowledge_totals.rb +273 -0
  317. data/lib/api-sdk-rb/models/api_key_scope.rb +47 -0
  318. data/lib/api-sdk-rb/models/canvas.rb +315 -0
  319. data/lib/api-sdk-rb/models/canvas_response.rb +247 -0
  320. data/lib/api-sdk-rb/models/check_composition_access_response.rb +247 -0
  321. data/lib/api-sdk-rb/models/check_composition_access_response_data.rb +225 -0
  322. data/lib/api-sdk-rb/models/composition.rb +447 -0
  323. data/lib/api-sdk-rb/models/composition_data_source.rb +287 -0
  324. data/lib/api-sdk-rb/models/composition_data_source_response.rb +247 -0
  325. data/lib/api-sdk-rb/models/composition_entries_description.rb +258 -0
  326. data/lib/api-sdk-rb/models/composition_entries_description_response.rb +247 -0
  327. data/lib/api-sdk-rb/models/composition_entries_reading.rb +368 -0
  328. data/lib/api-sdk-rb/models/composition_entries_reading_response.rb +247 -0
  329. data/lib/api-sdk-rb/models/composition_entry_aggregate_tally.rb +271 -0
  330. data/lib/api-sdk-rb/models/composition_entry_aggregates_block.rb +252 -0
  331. data/lib/api-sdk-rb/models/composition_entry_column.rb +239 -0
  332. data/lib/api-sdk-rb/models/composition_entry_delete_success.rb +237 -0
  333. data/lib/api-sdk-rb/models/composition_entry_delete_success_data.rb +221 -0
  334. data/lib/api-sdk-rb/models/composition_entry_item.rb +274 -0
  335. data/lib/api-sdk-rb/models/composition_entry_items_meta.rb +279 -0
  336. data/lib/api-sdk-rb/models/composition_entry_items_page_success.rb +255 -0
  337. data/lib/api-sdk-rb/models/composition_entry_table.rb +269 -0
  338. data/lib/api-sdk-rb/models/composition_entry_tally.rb +254 -0
  339. data/lib/api-sdk-rb/models/composition_response.rb +247 -0
  340. data/lib/api-sdk-rb/models/composition_version.rb +255 -0
  341. data/lib/api-sdk-rb/models/content_check_finding.rb +260 -0
  342. data/lib/api-sdk-rb/models/content_item_write_result.rb +266 -0
  343. data/lib/api-sdk-rb/models/content_item_write_result_validation_result.rb +236 -0
  344. data/lib/api-sdk-rb/models/copy_partner_preset_request.rb +243 -0
  345. data/lib/api-sdk-rb/models/create_canvas_request.rb +291 -0
  346. data/lib/api-sdk-rb/models/create_composition_content_item201_response.rb +246 -0
  347. data/lib/api-sdk-rb/models/create_composition_content_item_request.rb +233 -0
  348. data/lib/api-sdk-rb/models/create_composition_database_record201_response.rb +249 -0
  349. data/lib/api-sdk-rb/models/create_composition_from_preset_request.rb +259 -0
  350. data/lib/api-sdk-rb/models/create_composition_from_widget201_response.rb +246 -0
  351. data/lib/api-sdk-rb/models/create_composition_from_widget_request.rb +267 -0
  352. data/lib/api-sdk-rb/models/create_user_api_key_request.rb +335 -0
  353. data/lib/api-sdk-rb/models/create_widget201_response.rb +246 -0
  354. data/lib/api-sdk-rb/models/create_widget201_response_data.rb +493 -0
  355. data/lib/api-sdk-rb/models/created_user_api_key.rb +384 -0
  356. data/lib/api-sdk-rb/models/created_user_api_key_response.rb +247 -0
  357. data/lib/api-sdk-rb/models/delete_composition_content_item_response.rb +247 -0
  358. data/lib/api-sdk-rb/models/delete_composition_content_item_response_data.rb +223 -0
  359. data/lib/api-sdk-rb/models/delete_composition_data_source_response.rb +247 -0
  360. data/lib/api-sdk-rb/models/delete_composition_data_source_response_data.rb +222 -0
  361. data/lib/api-sdk-rb/models/delete_managed_user200_response.rb +246 -0
  362. data/lib/api-sdk-rb/models/delete_personal_workspace_domain_response.rb +247 -0
  363. data/lib/api-sdk-rb/models/delete_personal_workspace_domain_response_data.rb +214 -0
  364. data/lib/api-sdk-rb/models/delete_user_api_key_response.rb +247 -0
  365. data/lib/api-sdk-rb/models/delete_user_api_key_response_data.rb +214 -0
  366. data/lib/api-sdk-rb/models/design_defaults.rb +221 -0
  367. data/lib/api-sdk-rb/models/duplicate_composition202_response.rb +246 -0
  368. data/lib/api-sdk-rb/models/duplicate_composition202_response_data.rb +215 -0
  369. data/lib/api-sdk-rb/models/duplicate_composition_request.rb +227 -0
  370. data/lib/api-sdk-rb/models/editor_session.rb +367 -0
  371. data/lib/api-sdk-rb/models/editor_session_response.rb +247 -0
  372. data/lib/api-sdk-rb/models/entitlement.rb +350 -0
  373. data/lib/api-sdk-rb/models/error_detail.rb +317 -0
  374. data/lib/api-sdk-rb/models/error_response.rb +255 -0
  375. data/lib/api-sdk-rb/models/export_composition_entry_items200_response.rb +255 -0
  376. data/lib/api-sdk-rb/models/export_composition_entry_items200_response_meta.rb +237 -0
  377. data/lib/api-sdk-rb/models/get_ai_answers_knowledge200_response.rb +246 -0
  378. data/lib/api-sdk-rb/models/get_all_canvases_response.rb +247 -0
  379. data/lib/api-sdk-rb/models/get_all_canvases_response_data.rb +244 -0
  380. data/lib/api-sdk-rb/models/get_all_compositions200_response.rb +248 -0
  381. data/lib/api-sdk-rb/models/get_all_managed_users200_response.rb +248 -0
  382. data/lib/api-sdk-rb/models/get_composition_content_response.rb +247 -0
  383. data/lib/api-sdk-rb/models/get_composition_content_schema_response.rb +247 -0
  384. data/lib/api-sdk-rb/models/get_composition_content_schema_response_data.rb +261 -0
  385. data/lib/api-sdk-rb/models/get_composition_data_source_response.rb +243 -0
  386. data/lib/api-sdk-rb/models/get_composition_database_records200_response.rb +248 -0
  387. data/lib/api-sdk-rb/models/get_composition_design_response.rb +247 -0
  388. data/lib/api-sdk-rb/models/get_composition_design_schema_response.rb +247 -0
  389. data/lib/api-sdk-rb/models/get_composition_design_schema_response_data.rb +262 -0
  390. data/lib/api-sdk-rb/models/get_composition_embed_schema_response.rb +247 -0
  391. data/lib/api-sdk-rb/models/get_composition_embed_schema_response_data.rb +302 -0
  392. data/lib/api-sdk-rb/models/get_composition_embed_settings_response.rb +247 -0
  393. data/lib/api-sdk-rb/models/get_composition_preview_response.rb +247 -0
  394. data/lib/api-sdk-rb/models/get_composition_preview_response_data.rb +245 -0
  395. data/lib/api-sdk-rb/models/get_composition_versions200_response.rb +248 -0
  396. data/lib/api-sdk-rb/models/get_compositions_batch_request.rb +243 -0
  397. data/lib/api-sdk-rb/models/get_compositions_batch_response.rb +247 -0
  398. data/lib/api-sdk-rb/models/get_compositions_batch_response_data.rb +227 -0
  399. data/lib/api-sdk-rb/models/get_invoices_by_partner_id200_response.rb +248 -0
  400. data/lib/api-sdk-rb/models/get_managed_user_entitlements_response.rb +247 -0
  401. data/lib/api-sdk-rb/models/get_managed_user_entitlements_response_data.rb +225 -0
  402. data/lib/api-sdk-rb/models/get_managed_user_limits200_response.rb +246 -0
  403. data/lib/api-sdk-rb/models/get_managed_user_storage_usage200_response.rb +246 -0
  404. data/lib/api-sdk-rb/models/get_managed_user_storage_usage200_response_data.rb +253 -0
  405. data/lib/api-sdk-rb/models/get_managed_user_storage_usage200_response_data_by_purpose.rb +241 -0
  406. data/lib/api-sdk-rb/models/get_managed_users_by_manager_id_response.rb +247 -0
  407. data/lib/api-sdk-rb/models/get_managed_users_by_manager_id_response_data.rb +243 -0
  408. data/lib/api-sdk-rb/models/get_partner_billing_overview200_response.rb +246 -0
  409. data/lib/api-sdk-rb/models/get_partner_credit_transactions200_response.rb +248 -0
  410. data/lib/api-sdk-rb/models/get_partner_design_defaults200_response.rb +246 -0
  411. data/lib/api-sdk-rb/models/get_partner_entitlements_response.rb +247 -0
  412. data/lib/api-sdk-rb/models/get_partner_entitlements_response_data.rb +225 -0
  413. data/lib/api-sdk-rb/models/get_personal_workspace_domains200_response.rb +248 -0
  414. data/lib/api-sdk-rb/models/get_public_composition_embed200_response.rb +348 -0
  415. data/lib/api-sdk-rb/models/get_public_composition_embed200_response_data_source.rb +223 -0
  416. data/lib/api-sdk-rb/models/get_public_composition_embed200_response_direct.rb +234 -0
  417. data/lib/api-sdk-rb/models/get_user_adapter_connections200_response.rb +248 -0
  418. data/lib/api-sdk-rb/models/get_user_api_key_usage_logs_response.rb +247 -0
  419. data/lib/api-sdk-rb/models/get_user_api_key_usage_logs_response_data.rb +223 -0
  420. data/lib/api-sdk-rb/models/get_user_api_keys200_response.rb +248 -0
  421. data/lib/api-sdk-rb/models/get_widgets200_response.rb +248 -0
  422. data/lib/api-sdk-rb/models/get_widgets_batch_request.rb +223 -0
  423. data/lib/api-sdk-rb/models/get_widgets_batch_response.rb +247 -0
  424. data/lib/api-sdk-rb/models/get_widgets_batch_response_data.rb +227 -0
  425. data/lib/api-sdk-rb/models/get_widgets_batch_response_data_errors_inner.rb +223 -0
  426. data/lib/api-sdk-rb/models/list_partner_presets200_response.rb +248 -0
  427. data/lib/api-sdk-rb/models/managed_user.rb +312 -0
  428. data/lib/api-sdk-rb/models/managed_user_entries_meta.rb +274 -0
  429. data/lib/api-sdk-rb/models/managed_user_entries_page_success.rb +255 -0
  430. data/lib/api-sdk-rb/models/managed_user_entry_item.rb +313 -0
  431. data/lib/api-sdk-rb/models/managed_user_limits.rb +264 -0
  432. data/lib/api-sdk-rb/models/managed_user_operation_usage.rb +291 -0
  433. data/lib/api-sdk-rb/models/managed_user_removal.rb +239 -0
  434. data/lib/api-sdk-rb/models/managed_user_response.rb +247 -0
  435. data/lib/api-sdk-rb/models/managed_user_usage.rb +308 -0
  436. data/lib/api-sdk-rb/models/managed_user_usage_response.rb +247 -0
  437. data/lib/api-sdk-rb/models/managed_user_usage_totals.rb +270 -0
  438. data/lib/api-sdk-rb/models/my_partner.rb +368 -0
  439. data/lib/api-sdk-rb/models/my_partners.rb +288 -0
  440. data/lib/api-sdk-rb/models/my_partners_response.rb +247 -0
  441. data/lib/api-sdk-rb/models/new_composition.rb +350 -0
  442. data/lib/api-sdk-rb/models/new_editor_session.rb +340 -0
  443. data/lib/api-sdk-rb/models/new_managed_user.rb +242 -0
  444. data/lib/api-sdk-rb/models/new_widget.rb +434 -0
  445. data/lib/api-sdk-rb/models/operations_id_get_response.rb +247 -0
  446. data/lib/api-sdk-rb/models/operations_id_get_response_data.rb +348 -0
  447. data/lib/api-sdk-rb/models/partner_analytics_by_managed_user.rb +272 -0
  448. data/lib/api-sdk-rb/models/partner_analytics_by_managed_user_response.rb +247 -0
  449. data/lib/api-sdk-rb/models/partner_analytics_of_day.rb +270 -0
  450. data/lib/api-sdk-rb/models/partner_analytics_of_managed_user.rb +354 -0
  451. data/lib/api-sdk-rb/models/partner_analytics_of_widget.rb +300 -0
  452. data/lib/api-sdk-rb/models/partner_analytics_summary.rb +336 -0
  453. data/lib/api-sdk-rb/models/partner_analytics_summary_response.rb +247 -0
  454. data/lib/api-sdk-rb/models/partner_analytics_timeline.rb +270 -0
  455. data/lib/api-sdk-rb/models/partner_analytics_timeline_response.rb +247 -0
  456. data/lib/api-sdk-rb/models/partner_analytics_top_widgets.rb +269 -0
  457. data/lib/api-sdk-rb/models/partner_analytics_top_widgets_response.rb +247 -0
  458. data/lib/api-sdk-rb/models/partner_billing_overview.rb +265 -0
  459. data/lib/api-sdk-rb/models/partner_billing_overview_billing_integration.rb +304 -0
  460. data/lib/api-sdk-rb/models/partner_billing_overview_operational_credits.rb +276 -0
  461. data/lib/api-sdk-rb/models/partner_billing_overview_partner.rb +304 -0
  462. data/lib/api-sdk-rb/models/partner_contract.rb +400 -0
  463. data/lib/api-sdk-rb/models/partner_contract_response.rb +247 -0
  464. data/lib/api-sdk-rb/models/partner_customization.rb +414 -0
  465. data/lib/api-sdk-rb/models/partner_data_database.rb +332 -0
  466. data/lib/api-sdk-rb/models/partner_data_database_removal.rb +222 -0
  467. data/lib/api-sdk-rb/models/partner_data_database_removal_response.rb +247 -0
  468. data/lib/api-sdk-rb/models/partner_data_database_response.rb +247 -0
  469. data/lib/api-sdk-rb/models/partner_entry_context_secret.rb +239 -0
  470. data/lib/api-sdk-rb/models/partner_entry_context_secret_response.rb +247 -0
  471. data/lib/api-sdk-rb/models/partner_entry_context_signing.rb +299 -0
  472. data/lib/api-sdk-rb/models/partner_entry_context_signing_response.rb +247 -0
  473. data/lib/api-sdk-rb/models/partner_extra_credits_invoice.rb +394 -0
  474. data/lib/api-sdk-rb/models/partner_extra_credits_invoice_response.rb +247 -0
  475. data/lib/api-sdk-rb/models/partner_invoice.rb +489 -0
  476. data/lib/api-sdk-rb/models/partner_notification.rb +358 -0
  477. data/lib/api-sdk-rb/models/partner_notification_default_recipients.rb +244 -0
  478. data/lib/api-sdk-rb/models/partner_notification_delivery.rb +466 -0
  479. data/lib/api-sdk-rb/models/partner_notification_delivery_log.rb +224 -0
  480. data/lib/api-sdk-rb/models/partner_notification_delivery_log_response.rb +247 -0
  481. data/lib/api-sdk-rb/models/partner_notification_delivery_response.rb +247 -0
  482. data/lib/api-sdk-rb/models/partner_notification_event.rb +351 -0
  483. data/lib/api-sdk-rb/models/partner_notification_event_type.rb +54 -0
  484. data/lib/api-sdk-rb/models/partner_notification_page.rb +237 -0
  485. data/lib/api-sdk-rb/models/partner_notification_page_response.rb +247 -0
  486. data/lib/api-sdk-rb/models/partner_notification_settings.rb +366 -0
  487. data/lib/api-sdk-rb/models/partner_notification_settings_change.rb +235 -0
  488. data/lib/api-sdk-rb/models/partner_notification_settings_change_response.rb +247 -0
  489. data/lib/api-sdk-rb/models/partner_notification_settings_response.rb +247 -0
  490. data/lib/api-sdk-rb/models/partner_notification_test_event_request.rb +244 -0
  491. data/lib/api-sdk-rb/models/partner_notification_test_event_result.rb +263 -0
  492. data/lib/api-sdk-rb/models/partner_notification_test_event_result_response.rb +247 -0
  493. data/lib/api-sdk-rb/models/partner_preset.rb +344 -0
  494. data/lib/api-sdk-rb/models/partner_preset_copy.rb +308 -0
  495. data/lib/api-sdk-rb/models/partner_preset_copy_response.rb +247 -0
  496. data/lib/api-sdk-rb/models/partner_preset_removal.rb +222 -0
  497. data/lib/api-sdk-rb/models/partner_preset_removal_response.rb +247 -0
  498. data/lib/api-sdk-rb/models/partner_preset_response.rb +247 -0
  499. data/lib/api-sdk-rb/models/partner_report_page.rb +257 -0
  500. data/lib/api-sdk-rb/models/partner_report_period.rb +240 -0
  501. data/lib/api-sdk-rb/models/partner_storage_destination.rb +393 -0
  502. data/lib/api-sdk-rb/models/partner_storage_destination_response.rb +247 -0
  503. data/lib/api-sdk-rb/models/partner_storage_removal.rb +222 -0
  504. data/lib/api-sdk-rb/models/partner_storage_removal_response.rb +247 -0
  505. data/lib/api-sdk-rb/models/partner_storage_usage.rb +272 -0
  506. data/lib/api-sdk-rb/models/partner_storage_usage_of_managed_user.rb +334 -0
  507. data/lib/api-sdk-rb/models/partner_storage_usage_response.rb +247 -0
  508. data/lib/api-sdk-rb/models/partner_storage_usage_totals.rb +273 -0
  509. data/lib/api-sdk-rb/models/personal_workspace_domain.rb +275 -0
  510. data/lib/api-sdk-rb/models/personal_workspace_domain_result.rb +237 -0
  511. data/lib/api-sdk-rb/models/personal_workspace_domain_result_response.rb +247 -0
  512. data/lib/api-sdk-rb/models/post_public_composition_embed_status200_response.rb +246 -0
  513. data/lib/api-sdk-rb/models/post_public_composition_embed_status200_response_data.rb +239 -0
  514. data/lib/api-sdk-rb/models/post_public_composition_embed_status_request.rb +251 -0
  515. data/lib/api-sdk-rb/models/public_adapter_call_error.rb +265 -0
  516. data/lib/api-sdk-rb/models/public_adapter_call_request.rb +332 -0
  517. data/lib/api-sdk-rb/models/public_adapter_call_result.rb +237 -0
  518. data/lib/api-sdk-rb/models/public_adapter_call_result_data.rb +224 -0
  519. data/lib/api-sdk-rb/models/public_adapter_file_result.rb +237 -0
  520. data/lib/api-sdk-rb/models/public_adapter_file_result_data.rb +221 -0
  521. data/lib/api-sdk-rb/models/public_adapter_file_result_data_file.rb +318 -0
  522. data/lib/api-sdk-rb/models/public_composition_entry_created.rb +237 -0
  523. data/lib/api-sdk-rb/models/public_composition_entry_created_data.rb +253 -0
  524. data/lib/api-sdk-rb/models/public_composition_entry_request.rb +246 -0
  525. data/lib/api-sdk-rb/models/public_embed_failure.rb +291 -0
  526. data/lib/api-sdk-rb/models/public_embed_failure_details.rb +260 -0
  527. data/lib/api-sdk-rb/models/public_embed_failure_error.rb +283 -0
  528. data/lib/api-sdk-rb/models/purpose_storage_bucket.rb +237 -0
  529. data/lib/api-sdk-rb/models/remove_ai_answers_knowledge_document200_response.rb +246 -0
  530. data/lib/api-sdk-rb/models/remove_user_adapter_connection200_response.rb +246 -0
  531. data/lib/api-sdk-rb/models/request_extra_credits.rb +250 -0
  532. data/lib/api-sdk-rb/models/response_meta.rb +297 -0
  533. data/lib/api-sdk-rb/models/revoke_managed_user_editor_sessions_response.rb +247 -0
  534. data/lib/api-sdk-rb/models/revoke_managed_user_editor_sessions_response_data.rb +215 -0
  535. data/lib/api-sdk-rb/models/set_adapter_connection_request.rb +241 -0
  536. data/lib/api-sdk-rb/models/set_composition_data_source_request.rb +284 -0
  537. data/lib/api-sdk-rb/models/set_dynamic_content_request.rb +266 -0
  538. data/lib/api-sdk-rb/models/set_dynamic_content_response.rb +247 -0
  539. data/lib/api-sdk-rb/models/set_dynamic_content_response_data.rb +251 -0
  540. data/lib/api-sdk-rb/models/set_dynamic_content_response_data_validation_result.rb +236 -0
  541. data/lib/api-sdk-rb/models/set_managed_user_limits_request.rb +241 -0
  542. data/lib/api-sdk-rb/models/set_partner_data_database_request.rb +222 -0
  543. data/lib/api-sdk-rb/models/set_partner_design_defaults_request.rb +217 -0
  544. data/lib/api-sdk-rb/models/set_partner_preset_request.rb +322 -0
  545. data/lib/api-sdk-rb/models/set_partner_storage_destination_request.rb +331 -0
  546. data/lib/api-sdk-rb/models/set_user_adapter_connection200_response.rb +246 -0
  547. data/lib/api-sdk-rb/models/success_response.rb +250 -0
  548. data/lib/api-sdk-rb/models/update_canvas_request.rb +236 -0
  549. data/lib/api-sdk-rb/models/update_composition.rb +285 -0
  550. data/lib/api-sdk-rb/models/update_composition_status_request.rb +256 -0
  551. data/lib/api-sdk-rb/models/update_domain_request.rb +223 -0
  552. data/lib/api-sdk-rb/models/update_managed_user.rb +235 -0
  553. data/lib/api-sdk-rb/models/update_partner_entry_context_signing_request.rb +222 -0
  554. data/lib/api-sdk-rb/models/update_partner_notification_settings_request.rb +289 -0
  555. data/lib/api-sdk-rb/models/update_user_api_key_request.rb +254 -0
  556. data/lib/api-sdk-rb/models/upload.rb +462 -0
  557. data/lib/api-sdk-rb/models/upload_limits.rb +269 -0
  558. data/lib/api-sdk-rb/models/upload_limits_response.rb +247 -0
  559. data/lib/api-sdk-rb/models/upload_response.rb +247 -0
  560. data/lib/api-sdk-rb/models/uploads_get200_response.rb +248 -0
  561. data/lib/api-sdk-rb/models/uploads_id_delete200_response.rb +246 -0
  562. data/lib/api-sdk-rb/models/uploads_id_delete200_response_data.rb +214 -0
  563. data/lib/api-sdk-rb/models/user_api_key.rb +382 -0
  564. data/lib/api-sdk-rb/models/user_api_key_response.rb +247 -0
  565. data/lib/api-sdk-rb/models/user_api_key_usage_log.rb +326 -0
  566. data/lib/api-sdk-rb/models/validate_composition_content_response.rb +247 -0
  567. data/lib/api-sdk-rb/models/validate_composition_content_response_data.rb +258 -0
  568. data/lib/api-sdk-rb/models/validate_token200_response.rb +246 -0
  569. data/lib/api-sdk-rb/models/validate_token200_response_data.rb +286 -0
  570. data/lib/api-sdk-rb/models/widget.rb +475 -0
  571. data/lib/api-sdk-rb/version.rb +15 -0
  572. data/lib/api-sdk-rb.rb +319 -0
  573. data/spec/api/canvases_api_spec.rb +104 -0
  574. data/spec/api/compositions_api_spec.rb +578 -0
  575. data/spec/api/credits_api_spec.rb +62 -0
  576. data/spec/api/entitlements_api_spec.rb +65 -0
  577. data/spec/api/invoices_api_spec.rb +50 -0
  578. data/spec/api/managed_users_api_spec.rb +256 -0
  579. data/spec/api/operations_api_spec.rb +47 -0
  580. data/spec/api/partner_api_spec.rb +1895 -0
  581. data/spec/api/partners_api_spec.rb +525 -0
  582. data/spec/api/public_embed_api_spec.rb +115 -0
  583. data/spec/api/tokens_api_spec.rb +45 -0
  584. data/spec/api/uploads_api_spec.rb +101 -0
  585. data/spec/api/users_api_spec.rb +195 -0
  586. data/spec/api/widgets_api_spec.rb +90 -0
  587. data/spec/models/account_credit_balance_response_spec.rb +48 -0
  588. data/spec/models/account_credit_balance_spec.rb +60 -0
  589. data/spec/models/account_credit_transaction_spec.rb +72 -0
  590. data/spec/models/adapter_connection_removal_spec.rb +36 -0
  591. data/spec/models/adapter_connection_spec.rb +76 -0
  592. data/spec/models/add_ai_answers_knowledge_document201_response_spec.rb +48 -0
  593. data/spec/models/add_ai_answers_knowledge_document_request_spec.rb +42 -0
  594. data/spec/models/add_domain_request_spec.rb +36 -0
  595. data/spec/models/ai_answers_knowledge_document_spec.rb +76 -0
  596. data/spec/models/ai_answers_knowledge_removal_spec.rb +36 -0
  597. data/spec/models/ai_answers_knowledge_spec.rb +42 -0
  598. data/spec/models/ai_answers_knowledge_totals_spec.rb +54 -0
  599. data/spec/models/api_key_scope_spec.rb +30 -0
  600. data/spec/models/canvas_response_spec.rb +48 -0
  601. data/spec/models/canvas_spec.rb +78 -0
  602. data/spec/models/check_composition_access_response_data_spec.rb +42 -0
  603. data/spec/models/check_composition_access_response_spec.rb +48 -0
  604. data/spec/models/composition_data_source_response_spec.rb +48 -0
  605. data/spec/models/composition_data_source_spec.rb +42 -0
  606. data/spec/models/composition_entries_description_response_spec.rb +48 -0
  607. data/spec/models/composition_entries_description_spec.rb +48 -0
  608. data/spec/models/composition_entries_reading_response_spec.rb +48 -0
  609. data/spec/models/composition_entries_reading_spec.rb +84 -0
  610. data/spec/models/composition_entry_aggregate_tally_spec.rb +66 -0
  611. data/spec/models/composition_entry_aggregates_block_spec.rb +48 -0
  612. data/spec/models/composition_entry_column_spec.rb +42 -0
  613. data/spec/models/composition_entry_delete_success_data_spec.rb +36 -0
  614. data/spec/models/composition_entry_delete_success_spec.rb +42 -0
  615. data/spec/models/composition_entry_item_spec.rb +60 -0
  616. data/spec/models/composition_entry_items_meta_spec.rb +52 -0
  617. data/spec/models/composition_entry_items_page_success_spec.rb +48 -0
  618. data/spec/models/composition_entry_table_spec.rb +48 -0
  619. data/spec/models/composition_entry_tally_spec.rb +42 -0
  620. data/spec/models/composition_response_spec.rb +48 -0
  621. data/spec/models/composition_spec.rb +124 -0
  622. data/spec/models/composition_version_spec.rb +60 -0
  623. data/spec/models/content_check_finding_spec.rb +54 -0
  624. data/spec/models/content_item_write_result_spec.rb +66 -0
  625. data/spec/models/content_item_write_result_validation_result_spec.rb +48 -0
  626. data/spec/models/copy_partner_preset_request_spec.rb +36 -0
  627. data/spec/models/create_canvas_request_spec.rb +66 -0
  628. data/spec/models/create_composition_content_item201_response_spec.rb +48 -0
  629. data/spec/models/create_composition_content_item_request_spec.rb +36 -0
  630. data/spec/models/create_composition_database_record201_response_spec.rb +48 -0
  631. data/spec/models/create_composition_from_preset_request_spec.rb +60 -0
  632. data/spec/models/create_composition_from_widget201_response_spec.rb +48 -0
  633. data/spec/models/create_composition_from_widget_request_spec.rb +66 -0
  634. data/spec/models/create_user_api_key_request_spec.rb +58 -0
  635. data/spec/models/create_widget201_response_data_spec.rb +172 -0
  636. data/spec/models/create_widget201_response_spec.rb +48 -0
  637. data/spec/models/created_user_api_key_response_spec.rb +48 -0
  638. data/spec/models/created_user_api_key_spec.rb +88 -0
  639. data/spec/models/delete_composition_content_item_response_data_spec.rb +42 -0
  640. data/spec/models/delete_composition_content_item_response_spec.rb +48 -0
  641. data/spec/models/delete_composition_data_source_response_data_spec.rb +36 -0
  642. data/spec/models/delete_composition_data_source_response_spec.rb +48 -0
  643. data/spec/models/delete_managed_user200_response_spec.rb +48 -0
  644. data/spec/models/delete_personal_workspace_domain_response_data_spec.rb +36 -0
  645. data/spec/models/delete_personal_workspace_domain_response_spec.rb +48 -0
  646. data/spec/models/delete_user_api_key_response_data_spec.rb +36 -0
  647. data/spec/models/delete_user_api_key_response_spec.rb +48 -0
  648. data/spec/models/design_defaults_spec.rb +36 -0
  649. data/spec/models/duplicate_composition202_response_data_spec.rb +36 -0
  650. data/spec/models/duplicate_composition202_response_spec.rb +48 -0
  651. data/spec/models/duplicate_composition_request_spec.rb +42 -0
  652. data/spec/models/editor_session_response_spec.rb +48 -0
  653. data/spec/models/editor_session_spec.rb +88 -0
  654. data/spec/models/entitlement_spec.rb +100 -0
  655. data/spec/models/error_detail_spec.rb +84 -0
  656. data/spec/models/error_response_spec.rb +48 -0
  657. data/spec/models/export_composition_entry_items200_response_meta_spec.rb +42 -0
  658. data/spec/models/export_composition_entry_items200_response_spec.rb +48 -0
  659. data/spec/models/get_ai_answers_knowledge200_response_spec.rb +48 -0
  660. data/spec/models/get_all_canvases_response_data_spec.rb +54 -0
  661. data/spec/models/get_all_canvases_response_spec.rb +48 -0
  662. data/spec/models/get_all_compositions200_response_spec.rb +48 -0
  663. data/spec/models/get_all_managed_users200_response_spec.rb +48 -0
  664. data/spec/models/get_composition_content_response_spec.rb +48 -0
  665. data/spec/models/get_composition_content_schema_response_data_spec.rb +66 -0
  666. data/spec/models/get_composition_content_schema_response_spec.rb +48 -0
  667. data/spec/models/get_composition_data_source_response_spec.rb +48 -0
  668. data/spec/models/get_composition_database_records200_response_spec.rb +48 -0
  669. data/spec/models/get_composition_design_response_spec.rb +48 -0
  670. data/spec/models/get_composition_design_schema_response_data_spec.rb +66 -0
  671. data/spec/models/get_composition_design_schema_response_spec.rb +48 -0
  672. data/spec/models/get_composition_embed_schema_response_data_spec.rb +70 -0
  673. data/spec/models/get_composition_embed_schema_response_spec.rb +48 -0
  674. data/spec/models/get_composition_embed_settings_response_spec.rb +48 -0
  675. data/spec/models/get_composition_preview_response_data_spec.rb +54 -0
  676. data/spec/models/get_composition_preview_response_spec.rb +48 -0
  677. data/spec/models/get_composition_versions200_response_spec.rb +48 -0
  678. data/spec/models/get_compositions_batch_request_spec.rb +36 -0
  679. data/spec/models/get_compositions_batch_response_data_spec.rb +42 -0
  680. data/spec/models/get_compositions_batch_response_spec.rb +48 -0
  681. data/spec/models/get_invoices_by_partner_id200_response_spec.rb +48 -0
  682. data/spec/models/get_managed_user_entitlements_response_data_spec.rb +42 -0
  683. data/spec/models/get_managed_user_entitlements_response_spec.rb +48 -0
  684. data/spec/models/get_managed_user_limits200_response_spec.rb +48 -0
  685. data/spec/models/get_managed_user_storage_usage200_response_data_by_purpose_spec.rb +54 -0
  686. data/spec/models/get_managed_user_storage_usage200_response_data_spec.rb +48 -0
  687. data/spec/models/get_managed_user_storage_usage200_response_spec.rb +48 -0
  688. data/spec/models/get_managed_users_by_manager_id_response_data_spec.rb +54 -0
  689. data/spec/models/get_managed_users_by_manager_id_response_spec.rb +48 -0
  690. data/spec/models/get_partner_billing_overview200_response_spec.rb +48 -0
  691. data/spec/models/get_partner_credit_transactions200_response_spec.rb +48 -0
  692. data/spec/models/get_partner_design_defaults200_response_spec.rb +48 -0
  693. data/spec/models/get_partner_entitlements_response_data_spec.rb +42 -0
  694. data/spec/models/get_partner_entitlements_response_spec.rb +48 -0
  695. data/spec/models/get_personal_workspace_domains200_response_spec.rb +48 -0
  696. data/spec/models/get_public_composition_embed200_response_data_source_spec.rb +42 -0
  697. data/spec/models/get_public_composition_embed200_response_direct_spec.rb +48 -0
  698. data/spec/models/get_public_composition_embed200_response_spec.rb +120 -0
  699. data/spec/models/get_user_adapter_connections200_response_spec.rb +48 -0
  700. data/spec/models/get_user_api_key_usage_logs_response_data_spec.rb +36 -0
  701. data/spec/models/get_user_api_key_usage_logs_response_spec.rb +48 -0
  702. data/spec/models/get_user_api_keys200_response_spec.rb +48 -0
  703. data/spec/models/get_widgets200_response_spec.rb +48 -0
  704. data/spec/models/get_widgets_batch_request_spec.rb +36 -0
  705. data/spec/models/get_widgets_batch_response_data_errors_inner_spec.rb +42 -0
  706. data/spec/models/get_widgets_batch_response_data_spec.rb +42 -0
  707. data/spec/models/get_widgets_batch_response_spec.rb +48 -0
  708. data/spec/models/list_partner_presets200_response_spec.rb +48 -0
  709. data/spec/models/managed_user_entries_meta_spec.rb +60 -0
  710. data/spec/models/managed_user_entries_page_success_spec.rb +48 -0
  711. data/spec/models/managed_user_entry_item_spec.rb +72 -0
  712. data/spec/models/managed_user_limits_spec.rb +54 -0
  713. data/spec/models/managed_user_operation_usage_spec.rb +60 -0
  714. data/spec/models/managed_user_removal_spec.rb +42 -0
  715. data/spec/models/managed_user_response_spec.rb +48 -0
  716. data/spec/models/managed_user_spec.rb +72 -0
  717. data/spec/models/managed_user_usage_response_spec.rb +48 -0
  718. data/spec/models/managed_user_usage_spec.rb +66 -0
  719. data/spec/models/managed_user_usage_totals_spec.rb +54 -0
  720. data/spec/models/my_partner_spec.rb +88 -0
  721. data/spec/models/my_partners_response_spec.rb +48 -0
  722. data/spec/models/my_partners_spec.rb +52 -0
  723. data/spec/models/new_composition_spec.rb +96 -0
  724. data/spec/models/new_editor_session_spec.rb +58 -0
  725. data/spec/models/new_managed_user_spec.rb +48 -0
  726. data/spec/models/new_widget_spec.rb +100 -0
  727. data/spec/models/operations_id_get_response_data_spec.rb +82 -0
  728. data/spec/models/operations_id_get_response_spec.rb +48 -0
  729. data/spec/models/partner_analytics_by_managed_user_response_spec.rb +48 -0
  730. data/spec/models/partner_analytics_by_managed_user_spec.rb +54 -0
  731. data/spec/models/partner_analytics_of_day_spec.rb +54 -0
  732. data/spec/models/partner_analytics_of_managed_user_spec.rb +90 -0
  733. data/spec/models/partner_analytics_of_widget_spec.rb +66 -0
  734. data/spec/models/partner_analytics_summary_response_spec.rb +48 -0
  735. data/spec/models/partner_analytics_summary_spec.rb +78 -0
  736. data/spec/models/partner_analytics_timeline_response_spec.rb +48 -0
  737. data/spec/models/partner_analytics_timeline_spec.rb +54 -0
  738. data/spec/models/partner_analytics_top_widgets_response_spec.rb +48 -0
  739. data/spec/models/partner_analytics_top_widgets_spec.rb +54 -0
  740. data/spec/models/partner_billing_overview_billing_integration_spec.rb +58 -0
  741. data/spec/models/partner_billing_overview_operational_credits_spec.rb +54 -0
  742. data/spec/models/partner_billing_overview_partner_spec.rb +58 -0
  743. data/spec/models/partner_billing_overview_spec.rb +54 -0
  744. data/spec/models/partner_contract_response_spec.rb +48 -0
  745. data/spec/models/partner_contract_spec.rb +130 -0
  746. data/spec/models/partner_customization_spec.rb +136 -0
  747. data/spec/models/partner_data_database_removal_response_spec.rb +48 -0
  748. data/spec/models/partner_data_database_removal_spec.rb +36 -0
  749. data/spec/models/partner_data_database_response_spec.rb +48 -0
  750. data/spec/models/partner_data_database_spec.rb +78 -0
  751. data/spec/models/partner_entry_context_secret_response_spec.rb +48 -0
  752. data/spec/models/partner_entry_context_secret_spec.rb +42 -0
  753. data/spec/models/partner_entry_context_signing_response_spec.rb +48 -0
  754. data/spec/models/partner_entry_context_signing_spec.rb +66 -0
  755. data/spec/models/partner_extra_credits_invoice_response_spec.rb +48 -0
  756. data/spec/models/partner_extra_credits_invoice_spec.rb +102 -0
  757. data/spec/models/partner_invoice_spec.rb +178 -0
  758. data/spec/models/partner_notification_default_recipients_spec.rb +42 -0
  759. data/spec/models/partner_notification_delivery_log_response_spec.rb +48 -0
  760. data/spec/models/partner_notification_delivery_log_spec.rb +36 -0
  761. data/spec/models/partner_notification_delivery_response_spec.rb +48 -0
  762. data/spec/models/partner_notification_delivery_spec.rb +128 -0
  763. data/spec/models/partner_notification_event_spec.rb +74 -0
  764. data/spec/models/partner_notification_event_type_spec.rb +30 -0
  765. data/spec/models/partner_notification_page_response_spec.rb +48 -0
  766. data/spec/models/partner_notification_page_spec.rb +42 -0
  767. data/spec/models/partner_notification_settings_change_response_spec.rb +48 -0
  768. data/spec/models/partner_notification_settings_change_spec.rb +42 -0
  769. data/spec/models/partner_notification_settings_response_spec.rb +48 -0
  770. data/spec/models/partner_notification_settings_spec.rb +90 -0
  771. data/spec/models/partner_notification_spec.rb +76 -0
  772. data/spec/models/partner_notification_test_event_request_spec.rb +36 -0
  773. data/spec/models/partner_notification_test_event_result_response_spec.rb +48 -0
  774. data/spec/models/partner_notification_test_event_result_spec.rb +54 -0
  775. data/spec/models/partner_preset_copy_response_spec.rb +48 -0
  776. data/spec/models/partner_preset_copy_spec.rb +66 -0
  777. data/spec/models/partner_preset_removal_response_spec.rb +48 -0
  778. data/spec/models/partner_preset_removal_spec.rb +36 -0
  779. data/spec/models/partner_preset_response_spec.rb +48 -0
  780. data/spec/models/partner_preset_spec.rb +84 -0
  781. data/spec/models/partner_report_page_spec.rb +48 -0
  782. data/spec/models/partner_report_period_spec.rb +42 -0
  783. data/spec/models/partner_storage_destination_response_spec.rb +48 -0
  784. data/spec/models/partner_storage_destination_spec.rb +102 -0
  785. data/spec/models/partner_storage_removal_response_spec.rb +48 -0
  786. data/spec/models/partner_storage_removal_spec.rb +36 -0
  787. data/spec/models/partner_storage_usage_of_managed_user_spec.rb +84 -0
  788. data/spec/models/partner_storage_usage_response_spec.rb +48 -0
  789. data/spec/models/partner_storage_usage_spec.rb +54 -0
  790. data/spec/models/partner_storage_usage_totals_spec.rb +54 -0
  791. data/spec/models/personal_workspace_domain_result_response_spec.rb +48 -0
  792. data/spec/models/personal_workspace_domain_result_spec.rb +42 -0
  793. data/spec/models/personal_workspace_domain_spec.rb +60 -0
  794. data/spec/models/post_public_composition_embed_status200_response_data_spec.rb +40 -0
  795. data/spec/models/post_public_composition_embed_status200_response_spec.rb +48 -0
  796. data/spec/models/post_public_composition_embed_status_request_spec.rb +36 -0
  797. data/spec/models/public_adapter_call_error_spec.rb +54 -0
  798. data/spec/models/public_adapter_call_request_spec.rb +60 -0
  799. data/spec/models/public_adapter_call_result_data_spec.rb +36 -0
  800. data/spec/models/public_adapter_call_result_spec.rb +42 -0
  801. data/spec/models/public_adapter_file_result_data_file_spec.rb +66 -0
  802. data/spec/models/public_adapter_file_result_data_spec.rb +36 -0
  803. data/spec/models/public_adapter_file_result_spec.rb +42 -0
  804. data/spec/models/public_composition_entry_created_data_spec.rb +48 -0
  805. data/spec/models/public_composition_entry_created_spec.rb +42 -0
  806. data/spec/models/public_composition_entry_request_spec.rb +48 -0
  807. data/spec/models/public_embed_failure_details_spec.rb +46 -0
  808. data/spec/models/public_embed_failure_error_spec.rb +66 -0
  809. data/spec/models/public_embed_failure_spec.rb +66 -0
  810. data/spec/models/purpose_storage_bucket_spec.rb +42 -0
  811. data/spec/models/remove_ai_answers_knowledge_document200_response_spec.rb +48 -0
  812. data/spec/models/remove_user_adapter_connection200_response_spec.rb +48 -0
  813. data/spec/models/request_extra_credits_spec.rb +36 -0
  814. data/spec/models/response_meta_spec.rb +84 -0
  815. data/spec/models/revoke_managed_user_editor_sessions_response_data_spec.rb +36 -0
  816. data/spec/models/revoke_managed_user_editor_sessions_response_spec.rb +48 -0
  817. data/spec/models/set_adapter_connection_request_spec.rb +36 -0
  818. data/spec/models/set_composition_data_source_request_spec.rb +42 -0
  819. data/spec/models/set_dynamic_content_request_spec.rb +60 -0
  820. data/spec/models/set_dynamic_content_response_data_spec.rb +60 -0
  821. data/spec/models/set_dynamic_content_response_data_validation_result_spec.rb +48 -0
  822. data/spec/models/set_dynamic_content_response_spec.rb +48 -0
  823. data/spec/models/set_managed_user_limits_request_spec.rb +36 -0
  824. data/spec/models/set_partner_data_database_request_spec.rb +36 -0
  825. data/spec/models/set_partner_design_defaults_request_spec.rb +36 -0
  826. data/spec/models/set_partner_preset_request_spec.rb +54 -0
  827. data/spec/models/set_partner_storage_destination_request_spec.rb +78 -0
  828. data/spec/models/set_user_adapter_connection200_response_spec.rb +48 -0
  829. data/spec/models/success_response_spec.rb +48 -0
  830. data/spec/models/update_canvas_request_spec.rb +48 -0
  831. data/spec/models/update_composition_spec.rb +78 -0
  832. data/spec/models/update_composition_status_request_spec.rb +40 -0
  833. data/spec/models/update_domain_request_spec.rb +36 -0
  834. data/spec/models/update_managed_user_spec.rb +48 -0
  835. data/spec/models/update_partner_entry_context_signing_request_spec.rb +36 -0
  836. data/spec/models/update_partner_notification_settings_request_spec.rb +54 -0
  837. data/spec/models/update_user_api_key_request_spec.rb +42 -0
  838. data/spec/models/upload_limits_response_spec.rb +48 -0
  839. data/spec/models/upload_limits_spec.rb +66 -0
  840. data/spec/models/upload_response_spec.rb +48 -0
  841. data/spec/models/upload_spec.rb +126 -0
  842. data/spec/models/uploads_get200_response_spec.rb +48 -0
  843. data/spec/models/uploads_id_delete200_response_data_spec.rb +36 -0
  844. data/spec/models/uploads_id_delete200_response_spec.rb +48 -0
  845. data/spec/models/user_api_key_response_spec.rb +48 -0
  846. data/spec/models/user_api_key_spec.rb +88 -0
  847. data/spec/models/user_api_key_usage_log_spec.rb +78 -0
  848. data/spec/models/validate_composition_content_response_data_spec.rb +54 -0
  849. data/spec/models/validate_composition_content_response_spec.rb +48 -0
  850. data/spec/models/validate_token200_response_data_spec.rb +64 -0
  851. data/spec/models/validate_token200_response_spec.rb +48 -0
  852. data/spec/models/widget_spec.rb +166 -0
  853. data/spec/spec_helper.rb +111 -0
  854. metadata +1216 -0
@@ -0,0 +1,2708 @@
1
+ # ApiSdkRb::PartnersApi
2
+
3
+ All URIs are relative to *https://api.widgetic.com/v1*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**create_partner_extra_credits_invoice_0**](PartnersApi.md#create_partner_extra_credits_invoice_0) | **POST** /partners/{partnerId}/credits/extra-invoice | Buy extra credits for a partner |
8
+ | [**get_my_partners_0**](PartnersApi.md#get_my_partners_0) | **GET** /partners/mine | Find the partner you administer |
9
+ | [**get_partner_adapter_connections_0**](PartnersApi.md#get_partner_adapter_connections_0) | **GET** /partners/{partnerId}/adapter-connections | See which adapter keys a partner has connected |
10
+ | [**get_partner_analytics_by_managed_user_0**](PartnersApi.md#get_partner_analytics_by_managed_user_0) | **GET** /partners/{partnerId}/analytics/managed-users | What each managed user's widgets did |
11
+ | [**get_partner_analytics_summary_0**](PartnersApi.md#get_partner_analytics_summary_0) | **GET** /partners/{partnerId}/analytics/summary | What was done with a partner's published widgets |
12
+ | [**get_partner_analytics_timeline_0**](PartnersApi.md#get_partner_analytics_timeline_0) | **GET** /partners/{partnerId}/analytics/timeline | What was done with a partner's widgets, day by day |
13
+ | [**get_partner_analytics_top_widgets_0**](PartnersApi.md#get_partner_analytics_top_widgets_0) | **GET** /partners/{partnerId}/analytics/top-widgets | Which widgets were viewed the most |
14
+ | [**get_partner_billing_overview_0**](PartnersApi.md#get_partner_billing_overview_0) | **GET** /partners/{partnerId}/billing-overview | Get comprehensive partner billing overview |
15
+ | [**get_partner_contract_0**](PartnersApi.md#get_partner_contract_0) | **GET** /partners/{partnerId}/contract | Get a partner's contract |
16
+ | [**get_partner_credit_balance_0**](PartnersApi.md#get_partner_credit_balance_0) | **GET** /partners/{partnerId}/credits/balance | Get partner credit balance |
17
+ | [**get_partner_credit_transactions_0**](PartnersApi.md#get_partner_credit_transactions_0) | **GET** /partners/{partnerId}/credits/transactions | Get partner credit transaction history |
18
+ | [**get_partner_data_database_0**](PartnersApi.md#get_partner_data_database_0) | **GET** /partners/{partnerId}/data-database | See the Neon database a partner keeps the data of its compositions in |
19
+ | [**get_partner_design_defaults_0**](PartnersApi.md#get_partner_design_defaults_0) | **GET** /partners/{partnerId}/design-defaults | Read partner-wide design defaults |
20
+ | [**get_partner_entry_context_signing_0**](PartnersApi.md#get_partner_entry_context_signing_0) | **GET** /partners/{partnerId}/entry-context-signing | See how the context of your embeds is signed |
21
+ | [**get_partner_notification_settings_0**](PartnersApi.md#get_partner_notification_settings_0) | **GET** /partners/{partnerId}/notifications/settings | Where your notifications go |
22
+ | [**get_partner_storage_destination_0**](PartnersApi.md#get_partner_storage_destination_0) | **GET** /partners/{partnerId}/storage | Get where a partner's uploaded files are stored |
23
+ | [**get_partner_storage_usage_0**](PartnersApi.md#get_partner_storage_usage_0) | **GET** /partners/{partnerId}/storage/usage | What a partner's customers store |
24
+ | [**list_partner_notification_deliveries_0**](PartnersApi.md#list_partner_notification_deliveries_0) | **GET** /partners/{partnerId}/notifications/deliveries | How your notifications reached you |
25
+ | [**list_partner_notifications_0**](PartnersApi.md#list_partner_notifications_0) | **GET** /partners/{partnerId}/notifications | What your partner account was told |
26
+ | [**list_partner_presets_0**](PartnersApi.md#list_partner_presets_0) | **GET** /partners/{partnerId}/presets | List the widgets a partner offers as presets |
27
+ | [**remove_partner_adapter_connection_0**](PartnersApi.md#remove_partner_adapter_connection_0) | **DELETE** /partners/{partnerId}/adapter-connections/{adapterId}/{credentialKey} | Remove an adapter key from a partner |
28
+ | [**remove_partner_data_database_0**](PartnersApi.md#remove_partner_data_database_0) | **DELETE** /partners/{partnerId}/data-database | Stop keeping the data of a partner's compositions in its own database |
29
+ | [**remove_partner_preset_0**](PartnersApi.md#remove_partner_preset_0) | **DELETE** /partners/{partnerId}/presets/{key} | Take a widget off the partner's presets |
30
+ | [**remove_partner_storage_destination_0**](PartnersApi.md#remove_partner_storage_destination_0) | **DELETE** /partners/{partnerId}/storage | Stop storing a partner's uploaded files in its own bucket |
31
+ | [**replay_partner_notification_delivery_0**](PartnersApi.md#replay_partner_notification_delivery_0) | **POST** /partners/{partnerId}/notifications/deliveries/{deliveryId}/replay | Send a webhook delivery again |
32
+ | [**rotate_partner_entry_context_secret_0**](PartnersApi.md#rotate_partner_entry_context_secret_0) | **POST** /partners/{partnerId}/entry-context-signing/secret | Make a secret to sign the context of your embeds |
33
+ | [**rotate_partner_webhook_secret_0**](PartnersApi.md#rotate_partner_webhook_secret_0) | **POST** /partners/{partnerId}/notifications/webhook-secret | Make a new secret for your webhook |
34
+ | [**send_partner_notification_test_event_0**](PartnersApi.md#send_partner_notification_test_event_0) | **POST** /partners/{partnerId}/notifications/test-event | Send a test event to your webhook |
35
+ | [**set_partner_adapter_connection_0**](PartnersApi.md#set_partner_adapter_connection_0) | **PUT** /partners/{partnerId}/adapter-connections/{adapterId}/{credentialKey} | Connect an adapter key to a partner |
36
+ | [**set_partner_data_database_0**](PartnersApi.md#set_partner_data_database_0) | **PUT** /partners/{partnerId}/data-database | Keep the data of a partner's compositions in a Neon database of its own |
37
+ | [**set_partner_design_defaults_0**](PartnersApi.md#set_partner_design_defaults_0) | **PUT** /partners/{partnerId}/design-defaults | Set or clear partner-wide design defaults |
38
+ | [**set_partner_preset_0**](PartnersApi.md#set_partner_preset_0) | **PUT** /partners/{partnerId}/presets/{key} | Make a widget a preset, or replace a preset |
39
+ | [**set_partner_storage_destination_0**](PartnersApi.md#set_partner_storage_destination_0) | **PUT** /partners/{partnerId}/storage | Set where a partner's uploaded files are stored |
40
+ | [**update_partner_entry_context_signing_0**](PartnersApi.md#update_partner_entry_context_signing_0) | **PUT** /partners/{partnerId}/entry-context-signing | Require a signed context, or stop requiring it |
41
+ | [**update_partner_notification_settings_0**](PartnersApi.md#update_partner_notification_settings_0) | **PUT** /partners/{partnerId}/notifications/settings | Choose where your notifications go |
42
+ | [**verify_partner_data_database_0**](PartnersApi.md#verify_partner_data_database_0) | **POST** /partners/{partnerId}/data-database/verify | Check that a partner's own database still works |
43
+ | [**verify_partner_storage_destination_0**](PartnersApi.md#verify_partner_storage_destination_0) | **POST** /partners/{partnerId}/storage/verify | Check that a partner's storage destination still works |
44
+
45
+
46
+ ## create_partner_extra_credits_invoice_0
47
+
48
+ > <PartnerExtraCreditsInvoiceResponse> create_partner_extra_credits_invoice_0(partner_id, idempotency_key, request_extra_credits)
49
+
50
+ Buy extra credits for a partner
51
+
52
+ Asks Widgetic for an invoice for extra credits, on top of the credits of the contract. Name the dollars; the invoice is for the most whole credits they buy at the **list price** of a credit (the price a contract may lower belongs to the contract), so it is never for more than you asked: 12.34 buys 123 credits and the invoice says 12.30. The smallest purchase is 10 dollars and one request buys at most 100000 (ask Widgetic for an invoice for more). Pay the invoice with the link in the answer. When it is paid the credits are added **once, for good**, to the account of the person who administers the partner, which is the account everything the partner builds is charged to (`getPartnerCreditBalance` shows it). Extra credits **do not expire**, unlike the credits of a contract period, which end with it. Nothing is added before the invoice is paid, and an unpaid invoice for extra credits never stops the partner: only an unpaid invoice of the contract does (`payment_arrears`). Allowed whatever the partner's standing: a partner that has run out of credits, or is stopped for an unpaid contract invoice, can still buy. No contract is needed. An `Idempotency-Key` is required, and it is what makes a retry safe: the same key with the same body returns the invoice already issued, the same key with a different body is refused with 422, and a duplicate that arrives while the first is still running is refused with 409. Use one key per purchase you mean to make, and a new key for the next one. At most 10 requests an hour. Who may ask: the person who administers the partner, or a Widgetic administrator. A key limited to scopes needs `billing:write`.
53
+
54
+ ### Examples
55
+
56
+ ```ruby
57
+ require 'time'
58
+ require 'api-sdk-rb'
59
+ # setup authorization
60
+ ApiSdkRb.configure do |config|
61
+ # Configure Bearer authorization (JWT): apiKeyAuth
62
+ config.access_token = 'YOUR_BEARER_TOKEN'
63
+ end
64
+
65
+ api_instance = ApiSdkRb::PartnersApi.new
66
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Partner ID
67
+ idempotency_key = 'idempotency_key_example' # String | A key of your own for this purchase, so that a retry cannot make a second invoice
68
+ request_extra_credits = ApiSdkRb::RequestExtraCredits.new({usd: 250}) # RequestExtraCredits |
69
+
70
+ begin
71
+ # Buy extra credits for a partner
72
+ result = api_instance.create_partner_extra_credits_invoice_0(partner_id, idempotency_key, request_extra_credits)
73
+ p result
74
+ rescue ApiSdkRb::ApiError => e
75
+ puts "Error when calling PartnersApi->create_partner_extra_credits_invoice_0: #{e}"
76
+ end
77
+ ```
78
+
79
+ #### Using the create_partner_extra_credits_invoice_0_with_http_info variant
80
+
81
+ This returns an Array which contains the response data, status code and headers.
82
+
83
+ > <Array(<PartnerExtraCreditsInvoiceResponse>, Integer, Hash)> create_partner_extra_credits_invoice_0_with_http_info(partner_id, idempotency_key, request_extra_credits)
84
+
85
+ ```ruby
86
+ begin
87
+ # Buy extra credits for a partner
88
+ data, status_code, headers = api_instance.create_partner_extra_credits_invoice_0_with_http_info(partner_id, idempotency_key, request_extra_credits)
89
+ p status_code # => 2xx
90
+ p headers # => { ... }
91
+ p data # => <PartnerExtraCreditsInvoiceResponse>
92
+ rescue ApiSdkRb::ApiError => e
93
+ puts "Error when calling PartnersApi->create_partner_extra_credits_invoice_0_with_http_info: #{e}"
94
+ end
95
+ ```
96
+
97
+ ### Parameters
98
+
99
+ | Name | Type | Description | Notes |
100
+ | ---- | ---- | ----------- | ----- |
101
+ | **partner_id** | **String** | Partner ID | |
102
+ | **idempotency_key** | **String** | A key of your own for this purchase, so that a retry cannot make a second invoice | |
103
+ | **request_extra_credits** | [**RequestExtraCredits**](RequestExtraCredits.md) | | |
104
+
105
+ ### Return type
106
+
107
+ [**PartnerExtraCreditsInvoiceResponse**](PartnerExtraCreditsInvoiceResponse.md)
108
+
109
+ ### Authorization
110
+
111
+ [apiKeyAuth](../README.md#apiKeyAuth)
112
+
113
+ ### HTTP request headers
114
+
115
+ - **Content-Type**: application/json
116
+ - **Accept**: application/json
117
+
118
+
119
+ ## get_my_partners_0
120
+
121
+ > <MyPartnersResponse> get_my_partners_0
122
+
123
+ Find the partner you administer
124
+
125
+ Returns the partner (nearly always one) that the signed-in account administers, with the id every other partner route asks for and the standing it is in: `active`, `inactive` (not activated yet), `suspended` (paused, with the reason Widgetic gave) or `payment_arrears` (a contract invoice is past its due date and unpaid, since `overdueSince`; the partner is stopped until it is paid). A partner API key is that account's key, so it reads its own partner here. An account that administers no partner is not refused: it gets `standing: not_a_partner` and an empty list, so a dashboard can tell \"this is not a partner account\" from \"something failed\". The call stays open while the partner is paused, not yet active or in payment arrears: that is when its dashboard has to say why.
126
+
127
+ ### Examples
128
+
129
+ ```ruby
130
+ require 'time'
131
+ require 'api-sdk-rb'
132
+ # setup authorization
133
+ ApiSdkRb.configure do |config|
134
+ # Configure Bearer authorization (JWT): apiKeyAuth
135
+ config.access_token = 'YOUR_BEARER_TOKEN'
136
+ end
137
+
138
+ api_instance = ApiSdkRb::PartnersApi.new
139
+
140
+ begin
141
+ # Find the partner you administer
142
+ result = api_instance.get_my_partners_0
143
+ p result
144
+ rescue ApiSdkRb::ApiError => e
145
+ puts "Error when calling PartnersApi->get_my_partners_0: #{e}"
146
+ end
147
+ ```
148
+
149
+ #### Using the get_my_partners_0_with_http_info variant
150
+
151
+ This returns an Array which contains the response data, status code and headers.
152
+
153
+ > <Array(<MyPartnersResponse>, Integer, Hash)> get_my_partners_0_with_http_info
154
+
155
+ ```ruby
156
+ begin
157
+ # Find the partner you administer
158
+ data, status_code, headers = api_instance.get_my_partners_0_with_http_info
159
+ p status_code # => 2xx
160
+ p headers # => { ... }
161
+ p data # => <MyPartnersResponse>
162
+ rescue ApiSdkRb::ApiError => e
163
+ puts "Error when calling PartnersApi->get_my_partners_0_with_http_info: #{e}"
164
+ end
165
+ ```
166
+
167
+ ### Parameters
168
+
169
+ This endpoint does not need any parameter.
170
+
171
+ ### Return type
172
+
173
+ [**MyPartnersResponse**](MyPartnersResponse.md)
174
+
175
+ ### Authorization
176
+
177
+ [apiKeyAuth](../README.md#apiKeyAuth)
178
+
179
+ ### HTTP request headers
180
+
181
+ - **Content-Type**: Not defined
182
+ - **Accept**: application/json
183
+
184
+
185
+ ## get_partner_adapter_connections_0
186
+
187
+ > <GetUserAdapterConnections200Response> get_partner_adapter_connections_0(partner_id)
188
+
189
+ See which adapter keys a partner has connected
190
+
191
+ Widget adapters are capabilities a widget can use, and some of them act through a service the account that made the widget has with a provider: an adapter that sends email needs an email provider key, one that sends texts needs an SMS provider key. For the widgets of the customers a partner manages, those keys are the partner's. This lists every key an adapter takes from a partner and whether the partner has connected it. An empty list means no adapter takes a key from a partner at the moment. The list never contains a key: only whether one is connected and when it was last set. Connect a key with `setPartnerAdapterConnection`; take it away with `removePartnerAdapterConnection`. A managed customer never holds a key: the widgets of a managed customer use the partner's, and never the personal key of the person who administers the partner. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
192
+
193
+ ### Examples
194
+
195
+ ```ruby
196
+ require 'time'
197
+ require 'api-sdk-rb'
198
+ # setup authorization
199
+ ApiSdkRb.configure do |config|
200
+ # Configure Bearer authorization (JWT): apiKeyAuth
201
+ config.access_token = 'YOUR_BEARER_TOKEN'
202
+ end
203
+
204
+ api_instance = ApiSdkRb::PartnersApi.new
205
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose adapter keys to list
206
+
207
+ begin
208
+ # See which adapter keys a partner has connected
209
+ result = api_instance.get_partner_adapter_connections_0(partner_id)
210
+ p result
211
+ rescue ApiSdkRb::ApiError => e
212
+ puts "Error when calling PartnersApi->get_partner_adapter_connections_0: #{e}"
213
+ end
214
+ ```
215
+
216
+ #### Using the get_partner_adapter_connections_0_with_http_info variant
217
+
218
+ This returns an Array which contains the response data, status code and headers.
219
+
220
+ > <Array(<GetUserAdapterConnections200Response>, Integer, Hash)> get_partner_adapter_connections_0_with_http_info(partner_id)
221
+
222
+ ```ruby
223
+ begin
224
+ # See which adapter keys a partner has connected
225
+ data, status_code, headers = api_instance.get_partner_adapter_connections_0_with_http_info(partner_id)
226
+ p status_code # => 2xx
227
+ p headers # => { ... }
228
+ p data # => <GetUserAdapterConnections200Response>
229
+ rescue ApiSdkRb::ApiError => e
230
+ puts "Error when calling PartnersApi->get_partner_adapter_connections_0_with_http_info: #{e}"
231
+ end
232
+ ```
233
+
234
+ ### Parameters
235
+
236
+ | Name | Type | Description | Notes |
237
+ | ---- | ---- | ----------- | ----- |
238
+ | **partner_id** | **String** | The partner whose adapter keys to list | |
239
+
240
+ ### Return type
241
+
242
+ [**GetUserAdapterConnections200Response**](GetUserAdapterConnections200Response.md)
243
+
244
+ ### Authorization
245
+
246
+ [apiKeyAuth](../README.md#apiKeyAuth)
247
+
248
+ ### HTTP request headers
249
+
250
+ - **Content-Type**: Not defined
251
+ - **Accept**: application/json
252
+
253
+
254
+ ## get_partner_analytics_by_managed_user_0
255
+
256
+ > <PartnerAnalyticsByManagedUserResponse> get_partner_analytics_by_managed_user_0(partner_id, opts)
257
+
258
+ What each managed user's widgets did
259
+
260
+ Lists every one of your managed users with what their widgets and compositions did in a period: views, interactions and visitors, and how many widgets and compositions they have made. A managed user whose widgets were not viewed is listed too, with zeros. The most viewed come first, and `page.hasMore` says whether more follow. Only the compositions made for a managed user count for it: file them under the user when you create them (`managedUserId` on `createComposition`), or let the user's editor session do it, which files everything under its user. What a visitor did with a composition that is not filed under anyone is in the summary of the whole account (`getPartnerAnalyticsSummary`) and in no managed user's row. The period works as it does for `getPartnerAnalyticsSummary`. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
261
+
262
+ ### Examples
263
+
264
+ ```ruby
265
+ require 'time'
266
+ require 'api-sdk-rb'
267
+ # setup authorization
268
+ ApiSdkRb.configure do |config|
269
+ # Configure Bearer authorization (JWT): apiKeyAuth
270
+ config.access_token = 'YOUR_BEARER_TOKEN'
271
+ end
272
+
273
+ api_instance = ApiSdkRb::PartnersApi.new
274
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose managed users to report on
275
+ opts = {
276
+ start_date: 'start_date_example', # String | Start of the period, included. An ISO 8601 date (`2026-10-01`) or date-time with its offset. Default 30 days before `endDate`.
277
+ end_date: 'end_date_example', # String | End of the period, not included, in the same forms. Default now. At most 366 days after `startDate`.
278
+ limit: 56, # Integer | How many managed users to list at most
279
+ offset: 56 # Integer | How many managed users to skip
280
+ }
281
+
282
+ begin
283
+ # What each managed user's widgets did
284
+ result = api_instance.get_partner_analytics_by_managed_user_0(partner_id, opts)
285
+ p result
286
+ rescue ApiSdkRb::ApiError => e
287
+ puts "Error when calling PartnersApi->get_partner_analytics_by_managed_user_0: #{e}"
288
+ end
289
+ ```
290
+
291
+ #### Using the get_partner_analytics_by_managed_user_0_with_http_info variant
292
+
293
+ This returns an Array which contains the response data, status code and headers.
294
+
295
+ > <Array(<PartnerAnalyticsByManagedUserResponse>, Integer, Hash)> get_partner_analytics_by_managed_user_0_with_http_info(partner_id, opts)
296
+
297
+ ```ruby
298
+ begin
299
+ # What each managed user's widgets did
300
+ data, status_code, headers = api_instance.get_partner_analytics_by_managed_user_0_with_http_info(partner_id, opts)
301
+ p status_code # => 2xx
302
+ p headers # => { ... }
303
+ p data # => <PartnerAnalyticsByManagedUserResponse>
304
+ rescue ApiSdkRb::ApiError => e
305
+ puts "Error when calling PartnersApi->get_partner_analytics_by_managed_user_0_with_http_info: #{e}"
306
+ end
307
+ ```
308
+
309
+ ### Parameters
310
+
311
+ | Name | Type | Description | Notes |
312
+ | ---- | ---- | ----------- | ----- |
313
+ | **partner_id** | **String** | The partner whose managed users to report on | |
314
+ | **start_date** | **String** | Start of the period, included. An ISO 8601 date (&#x60;2026-10-01&#x60;) or date-time with its offset. Default 30 days before &#x60;endDate&#x60;. | [optional] |
315
+ | **end_date** | **String** | End of the period, not included, in the same forms. Default now. At most 366 days after &#x60;startDate&#x60;. | [optional] |
316
+ | **limit** | **Integer** | How many managed users to list at most | [optional][default to 50] |
317
+ | **offset** | **Integer** | How many managed users to skip | [optional][default to 0] |
318
+
319
+ ### Return type
320
+
321
+ [**PartnerAnalyticsByManagedUserResponse**](PartnerAnalyticsByManagedUserResponse.md)
322
+
323
+ ### Authorization
324
+
325
+ [apiKeyAuth](../README.md#apiKeyAuth)
326
+
327
+ ### HTTP request headers
328
+
329
+ - **Content-Type**: Not defined
330
+ - **Accept**: application/json
331
+
332
+
333
+ ## get_partner_analytics_summary_0
334
+
335
+ > <PartnerAnalyticsSummaryResponse> get_partner_analytics_summary_0(partner_id, opts)
336
+
337
+ What was done with a partner's published widgets
338
+
339
+ Counts what the visitors of the compositions made through your account did in a period: how many times a composition was **viewed**, how many times a visitor **interacted** with one, and how many different visitors there were. It covers every composition of your account, your own and the ones made for your managed users; narrow it to one managed user with `managedUserId` or `managedUserExternalId` (not both). The numbers come from the events the embedded widgets send while they are shown (the Widgetic embed SDK sends them by itself), counted when you ask. Only views and interactions are counted; the events that describe a visit (its start, its end, the device and the referrer) are not. The period runs from `startDate` (included) to `endDate` (not included): the 30 days before now when you give neither, and at most 366 days. A date without a time is midnight UTC at the start of that day, so for all of October give `startDate=2026-10-01` and `endDate=2026-11-01`. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
340
+
341
+ ### Examples
342
+
343
+ ```ruby
344
+ require 'time'
345
+ require 'api-sdk-rb'
346
+ # setup authorization
347
+ ApiSdkRb.configure do |config|
348
+ # Configure Bearer authorization (JWT): apiKeyAuth
349
+ config.access_token = 'YOUR_BEARER_TOKEN'
350
+ end
351
+
352
+ api_instance = ApiSdkRb::PartnersApi.new
353
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose widgets to report on
354
+ opts = {
355
+ start_date: 'start_date_example', # String | Start of the period, included. An ISO 8601 date (`2026-10-01`) or date-time with its offset (`2026-10-01T08:00:00Z`). Default 30 days before `endDate`.
356
+ end_date: 'end_date_example', # String | End of the period, not included, in the same forms. Default now. It must be after `startDate`, by at most 366 days.
357
+ managed_user_id: '38400000-8cf0-11bd-b23e-10b96e4ef00d', # String | Report only on this managed user (Widgetic's id for the user). Send this or `managedUserExternalId`, not both.
358
+ managed_user_external_id: 'managed_user_external_id_example' # String | Report only on the managed user you registered with this `externalId` (your own identifier for the user). Send this or `managedUserId`, not both.
359
+ }
360
+
361
+ begin
362
+ # What was done with a partner's published widgets
363
+ result = api_instance.get_partner_analytics_summary_0(partner_id, opts)
364
+ p result
365
+ rescue ApiSdkRb::ApiError => e
366
+ puts "Error when calling PartnersApi->get_partner_analytics_summary_0: #{e}"
367
+ end
368
+ ```
369
+
370
+ #### Using the get_partner_analytics_summary_0_with_http_info variant
371
+
372
+ This returns an Array which contains the response data, status code and headers.
373
+
374
+ > <Array(<PartnerAnalyticsSummaryResponse>, Integer, Hash)> get_partner_analytics_summary_0_with_http_info(partner_id, opts)
375
+
376
+ ```ruby
377
+ begin
378
+ # What was done with a partner's published widgets
379
+ data, status_code, headers = api_instance.get_partner_analytics_summary_0_with_http_info(partner_id, opts)
380
+ p status_code # => 2xx
381
+ p headers # => { ... }
382
+ p data # => <PartnerAnalyticsSummaryResponse>
383
+ rescue ApiSdkRb::ApiError => e
384
+ puts "Error when calling PartnersApi->get_partner_analytics_summary_0_with_http_info: #{e}"
385
+ end
386
+ ```
387
+
388
+ ### Parameters
389
+
390
+ | Name | Type | Description | Notes |
391
+ | ---- | ---- | ----------- | ----- |
392
+ | **partner_id** | **String** | The partner whose widgets to report on | |
393
+ | **start_date** | **String** | Start of the period, included. An ISO 8601 date (&#x60;2026-10-01&#x60;) or date-time with its offset (&#x60;2026-10-01T08:00:00Z&#x60;). Default 30 days before &#x60;endDate&#x60;. | [optional] |
394
+ | **end_date** | **String** | End of the period, not included, in the same forms. Default now. It must be after &#x60;startDate&#x60;, by at most 366 days. | [optional] |
395
+ | **managed_user_id** | **String** | Report only on this managed user (Widgetic&#39;s id for the user). Send this or &#x60;managedUserExternalId&#x60;, not both. | [optional] |
396
+ | **managed_user_external_id** | **String** | Report only on the managed user you registered with this &#x60;externalId&#x60; (your own identifier for the user). Send this or &#x60;managedUserId&#x60;, not both. | [optional] |
397
+
398
+ ### Return type
399
+
400
+ [**PartnerAnalyticsSummaryResponse**](PartnerAnalyticsSummaryResponse.md)
401
+
402
+ ### Authorization
403
+
404
+ [apiKeyAuth](../README.md#apiKeyAuth)
405
+
406
+ ### HTTP request headers
407
+
408
+ - **Content-Type**: Not defined
409
+ - **Accept**: application/json
410
+
411
+
412
+ ## get_partner_analytics_timeline_0
413
+
414
+ > <PartnerAnalyticsTimelineResponse> get_partner_analytics_timeline_0(partner_id, opts)
415
+
416
+ What was done with a partner's widgets, day by day
417
+
418
+ Counts views, interactions and visitors for each day of a period (UTC days), oldest first, for a chart. Every day of the period is in the list, also one on which nothing happened (all zeros), so the list can be drawn as it is. Narrow it to one managed user with `managedUserId` or `managedUserExternalId` (not both). The period works as it does for `getPartnerAnalyticsSummary`; `startDate` and `endDate` are best given as dates, so that the first and the last day are whole days. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
419
+
420
+ ### Examples
421
+
422
+ ```ruby
423
+ require 'time'
424
+ require 'api-sdk-rb'
425
+ # setup authorization
426
+ ApiSdkRb.configure do |config|
427
+ # Configure Bearer authorization (JWT): apiKeyAuth
428
+ config.access_token = 'YOUR_BEARER_TOKEN'
429
+ end
430
+
431
+ api_instance = ApiSdkRb::PartnersApi.new
432
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose widgets to report on
433
+ opts = {
434
+ start_date: 'start_date_example', # String | Start of the period, included. An ISO 8601 date (`2026-10-01`) or date-time with its offset. Default 30 days before `endDate`.
435
+ end_date: 'end_date_example', # String | End of the period, not included, in the same forms. Default now. At most 366 days after `startDate`.
436
+ managed_user_id: '38400000-8cf0-11bd-b23e-10b96e4ef00d', # String | Report only on this managed user (Widgetic's id for the user). Send this or `managedUserExternalId`, not both.
437
+ managed_user_external_id: 'managed_user_external_id_example' # String | Report only on the managed user you registered with this `externalId`. Send this or `managedUserId`, not both.
438
+ }
439
+
440
+ begin
441
+ # What was done with a partner's widgets, day by day
442
+ result = api_instance.get_partner_analytics_timeline_0(partner_id, opts)
443
+ p result
444
+ rescue ApiSdkRb::ApiError => e
445
+ puts "Error when calling PartnersApi->get_partner_analytics_timeline_0: #{e}"
446
+ end
447
+ ```
448
+
449
+ #### Using the get_partner_analytics_timeline_0_with_http_info variant
450
+
451
+ This returns an Array which contains the response data, status code and headers.
452
+
453
+ > <Array(<PartnerAnalyticsTimelineResponse>, Integer, Hash)> get_partner_analytics_timeline_0_with_http_info(partner_id, opts)
454
+
455
+ ```ruby
456
+ begin
457
+ # What was done with a partner's widgets, day by day
458
+ data, status_code, headers = api_instance.get_partner_analytics_timeline_0_with_http_info(partner_id, opts)
459
+ p status_code # => 2xx
460
+ p headers # => { ... }
461
+ p data # => <PartnerAnalyticsTimelineResponse>
462
+ rescue ApiSdkRb::ApiError => e
463
+ puts "Error when calling PartnersApi->get_partner_analytics_timeline_0_with_http_info: #{e}"
464
+ end
465
+ ```
466
+
467
+ ### Parameters
468
+
469
+ | Name | Type | Description | Notes |
470
+ | ---- | ---- | ----------- | ----- |
471
+ | **partner_id** | **String** | The partner whose widgets to report on | |
472
+ | **start_date** | **String** | Start of the period, included. An ISO 8601 date (&#x60;2026-10-01&#x60;) or date-time with its offset. Default 30 days before &#x60;endDate&#x60;. | [optional] |
473
+ | **end_date** | **String** | End of the period, not included, in the same forms. Default now. At most 366 days after &#x60;startDate&#x60;. | [optional] |
474
+ | **managed_user_id** | **String** | Report only on this managed user (Widgetic&#39;s id for the user). Send this or &#x60;managedUserExternalId&#x60;, not both. | [optional] |
475
+ | **managed_user_external_id** | **String** | Report only on the managed user you registered with this &#x60;externalId&#x60;. Send this or &#x60;managedUserId&#x60;, not both. | [optional] |
476
+
477
+ ### Return type
478
+
479
+ [**PartnerAnalyticsTimelineResponse**](PartnerAnalyticsTimelineResponse.md)
480
+
481
+ ### Authorization
482
+
483
+ [apiKeyAuth](../README.md#apiKeyAuth)
484
+
485
+ ### HTTP request headers
486
+
487
+ - **Content-Type**: Not defined
488
+ - **Accept**: application/json
489
+
490
+
491
+ ## get_partner_analytics_top_widgets_0
492
+
493
+ > <PartnerAnalyticsTopWidgetsResponse> get_partner_analytics_top_widgets_0(partner_id, opts)
494
+
495
+ Which widgets were viewed the most
496
+
497
+ Lists the widgets whose compositions were viewed the most in a period, with their views, interactions, visitors and how many of their compositions were viewed. A widget that nobody viewed or used is not listed. The most viewed come first (then the most used), and at most `limit` are listed. Narrow it to one managed user with `managedUserId` or `managedUserExternalId` (not both). The period works as it does for `getPartnerAnalyticsSummary`. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
498
+
499
+ ### Examples
500
+
501
+ ```ruby
502
+ require 'time'
503
+ require 'api-sdk-rb'
504
+ # setup authorization
505
+ ApiSdkRb.configure do |config|
506
+ # Configure Bearer authorization (JWT): apiKeyAuth
507
+ config.access_token = 'YOUR_BEARER_TOKEN'
508
+ end
509
+
510
+ api_instance = ApiSdkRb::PartnersApi.new
511
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose widgets to report on
512
+ opts = {
513
+ start_date: 'start_date_example', # String | Start of the period, included. An ISO 8601 date (`2026-10-01`) or date-time with its offset. Default 30 days before `endDate`.
514
+ end_date: 'end_date_example', # String | End of the period, not included, in the same forms. Default now. At most 366 days after `startDate`.
515
+ managed_user_id: '38400000-8cf0-11bd-b23e-10b96e4ef00d', # String | Report only on this managed user (Widgetic's id for the user). Send this or `managedUserExternalId`, not both.
516
+ managed_user_external_id: 'managed_user_external_id_example', # String | Report only on the managed user you registered with this `externalId`. Send this or `managedUserId`, not both.
517
+ limit: 56 # Integer | How many widgets to list at most
518
+ }
519
+
520
+ begin
521
+ # Which widgets were viewed the most
522
+ result = api_instance.get_partner_analytics_top_widgets_0(partner_id, opts)
523
+ p result
524
+ rescue ApiSdkRb::ApiError => e
525
+ puts "Error when calling PartnersApi->get_partner_analytics_top_widgets_0: #{e}"
526
+ end
527
+ ```
528
+
529
+ #### Using the get_partner_analytics_top_widgets_0_with_http_info variant
530
+
531
+ This returns an Array which contains the response data, status code and headers.
532
+
533
+ > <Array(<PartnerAnalyticsTopWidgetsResponse>, Integer, Hash)> get_partner_analytics_top_widgets_0_with_http_info(partner_id, opts)
534
+
535
+ ```ruby
536
+ begin
537
+ # Which widgets were viewed the most
538
+ data, status_code, headers = api_instance.get_partner_analytics_top_widgets_0_with_http_info(partner_id, opts)
539
+ p status_code # => 2xx
540
+ p headers # => { ... }
541
+ p data # => <PartnerAnalyticsTopWidgetsResponse>
542
+ rescue ApiSdkRb::ApiError => e
543
+ puts "Error when calling PartnersApi->get_partner_analytics_top_widgets_0_with_http_info: #{e}"
544
+ end
545
+ ```
546
+
547
+ ### Parameters
548
+
549
+ | Name | Type | Description | Notes |
550
+ | ---- | ---- | ----------- | ----- |
551
+ | **partner_id** | **String** | The partner whose widgets to report on | |
552
+ | **start_date** | **String** | Start of the period, included. An ISO 8601 date (&#x60;2026-10-01&#x60;) or date-time with its offset. Default 30 days before &#x60;endDate&#x60;. | [optional] |
553
+ | **end_date** | **String** | End of the period, not included, in the same forms. Default now. At most 366 days after &#x60;startDate&#x60;. | [optional] |
554
+ | **managed_user_id** | **String** | Report only on this managed user (Widgetic&#39;s id for the user). Send this or &#x60;managedUserExternalId&#x60;, not both. | [optional] |
555
+ | **managed_user_external_id** | **String** | Report only on the managed user you registered with this &#x60;externalId&#x60;. Send this or &#x60;managedUserId&#x60;, not both. | [optional] |
556
+ | **limit** | **Integer** | How many widgets to list at most | [optional][default to 10] |
557
+
558
+ ### Return type
559
+
560
+ [**PartnerAnalyticsTopWidgetsResponse**](PartnerAnalyticsTopWidgetsResponse.md)
561
+
562
+ ### Authorization
563
+
564
+ [apiKeyAuth](../README.md#apiKeyAuth)
565
+
566
+ ### HTTP request headers
567
+
568
+ - **Content-Type**: Not defined
569
+ - **Accept**: application/json
570
+
571
+
572
+ ## get_partner_billing_overview_0
573
+
574
+ > <GetPartnerBillingOverview200Response> get_partner_billing_overview_0(partner_id)
575
+
576
+ Get comprehensive partner billing overview
577
+
578
+ Retrieves the partner's credits (`operationalCredits`), the partner's contract terms (`partnerCustomization`, the same fields as `getPartnerContract`) and billing integration status. Internal negotiation notes are not part of it. `operationalCredits` is the one account a partner has for its credits: the account of the person who administers it. It holds `balance` (the same balance `getPartnerCreditBalance` reads), `reservedBalance`, `availableBalance` (what a new operation can use) and `recentTransactions` (the ten newest entries of the ledger `getPartnerCreditTransactions` lists). A partner with no administrator has no account, and reads 0 and an empty list.
579
+
580
+ ### Examples
581
+
582
+ ```ruby
583
+ require 'time'
584
+ require 'api-sdk-rb'
585
+ # setup authorization
586
+ ApiSdkRb.configure do |config|
587
+ # Configure Bearer authorization (JWT): apiKeyAuth
588
+ config.access_token = 'YOUR_BEARER_TOKEN'
589
+ end
590
+
591
+ api_instance = ApiSdkRb::PartnersApi.new
592
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Partner ID
593
+
594
+ begin
595
+ # Get comprehensive partner billing overview
596
+ result = api_instance.get_partner_billing_overview_0(partner_id)
597
+ p result
598
+ rescue ApiSdkRb::ApiError => e
599
+ puts "Error when calling PartnersApi->get_partner_billing_overview_0: #{e}"
600
+ end
601
+ ```
602
+
603
+ #### Using the get_partner_billing_overview_0_with_http_info variant
604
+
605
+ This returns an Array which contains the response data, status code and headers.
606
+
607
+ > <Array(<GetPartnerBillingOverview200Response>, Integer, Hash)> get_partner_billing_overview_0_with_http_info(partner_id)
608
+
609
+ ```ruby
610
+ begin
611
+ # Get comprehensive partner billing overview
612
+ data, status_code, headers = api_instance.get_partner_billing_overview_0_with_http_info(partner_id)
613
+ p status_code # => 2xx
614
+ p headers # => { ... }
615
+ p data # => <GetPartnerBillingOverview200Response>
616
+ rescue ApiSdkRb::ApiError => e
617
+ puts "Error when calling PartnersApi->get_partner_billing_overview_0_with_http_info: #{e}"
618
+ end
619
+ ```
620
+
621
+ ### Parameters
622
+
623
+ | Name | Type | Description | Notes |
624
+ | ---- | ---- | ----------- | ----- |
625
+ | **partner_id** | **String** | Partner ID | |
626
+
627
+ ### Return type
628
+
629
+ [**GetPartnerBillingOverview200Response**](GetPartnerBillingOverview200Response.md)
630
+
631
+ ### Authorization
632
+
633
+ [apiKeyAuth](../README.md#apiKeyAuth)
634
+
635
+ ### HTTP request headers
636
+
637
+ - **Content-Type**: Not defined
638
+ - **Accept**: application/json
639
+
640
+
641
+ ## get_partner_contract_0
642
+
643
+ > <PartnerContractResponse> get_partner_contract_0(partner_id)
644
+
645
+ Get a partner's contract
646
+
647
+ Returns the commercial terms agreed with the partner: price, included credits and storage, billing cycle, commitment, support level, and the dates the contract runs between. A partner reads its own: the caller must be the person who administers the partner (an API key of that account works), and anyone else is refused with 403 whether or not the partner exists. Widgetic administrators can read any partner's. Responds 404 while no contract has been recorded for the partner, which is the case until Widgetic sets its terms.
648
+
649
+ ### Examples
650
+
651
+ ```ruby
652
+ require 'time'
653
+ require 'api-sdk-rb'
654
+ # setup authorization
655
+ ApiSdkRb.configure do |config|
656
+ # Configure Bearer authorization (JWT): apiKeyAuth
657
+ config.access_token = 'YOUR_BEARER_TOKEN'
658
+ end
659
+
660
+ api_instance = ApiSdkRb::PartnersApi.new
661
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose contract to read
662
+
663
+ begin
664
+ # Get a partner's contract
665
+ result = api_instance.get_partner_contract_0(partner_id)
666
+ p result
667
+ rescue ApiSdkRb::ApiError => e
668
+ puts "Error when calling PartnersApi->get_partner_contract_0: #{e}"
669
+ end
670
+ ```
671
+
672
+ #### Using the get_partner_contract_0_with_http_info variant
673
+
674
+ This returns an Array which contains the response data, status code and headers.
675
+
676
+ > <Array(<PartnerContractResponse>, Integer, Hash)> get_partner_contract_0_with_http_info(partner_id)
677
+
678
+ ```ruby
679
+ begin
680
+ # Get a partner's contract
681
+ data, status_code, headers = api_instance.get_partner_contract_0_with_http_info(partner_id)
682
+ p status_code # => 2xx
683
+ p headers # => { ... }
684
+ p data # => <PartnerContractResponse>
685
+ rescue ApiSdkRb::ApiError => e
686
+ puts "Error when calling PartnersApi->get_partner_contract_0_with_http_info: #{e}"
687
+ end
688
+ ```
689
+
690
+ ### Parameters
691
+
692
+ | Name | Type | Description | Notes |
693
+ | ---- | ---- | ----------- | ----- |
694
+ | **partner_id** | **String** | The partner whose contract to read | |
695
+
696
+ ### Return type
697
+
698
+ [**PartnerContractResponse**](PartnerContractResponse.md)
699
+
700
+ ### Authorization
701
+
702
+ [apiKeyAuth](../README.md#apiKeyAuth)
703
+
704
+ ### HTTP request headers
705
+
706
+ - **Content-Type**: Not defined
707
+ - **Accept**: application/json
708
+
709
+
710
+ ## get_partner_credit_balance_0
711
+
712
+ > <AccountCreditBalanceResponse> get_partner_credit_balance_0(partner_id)
713
+
714
+ Get partner credit balance
715
+
716
+ Returns the credits the partner has, and how much of that is reserved by operations that are still running. A partner has ONE account for its credits: the account of the person who administers it, the same account its API key acts as. There is nothing else to create or to fund. What its customers' editor sessions and its own API calls spend comes out of that account, and the credits a paid invoice carries are added to it, so this is the same balance `getUserCreditBalance` reads for that person. A partner with no administrator has no account to hold credits, and reads a balance of 0. Access: the person who administers the partner, or a Widgetic administrator.
717
+
718
+ ### Examples
719
+
720
+ ```ruby
721
+ require 'time'
722
+ require 'api-sdk-rb'
723
+ # setup authorization
724
+ ApiSdkRb.configure do |config|
725
+ # Configure Bearer authorization (JWT): apiKeyAuth
726
+ config.access_token = 'YOUR_BEARER_TOKEN'
727
+ end
728
+
729
+ api_instance = ApiSdkRb::PartnersApi.new
730
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Partner ID
731
+
732
+ begin
733
+ # Get partner credit balance
734
+ result = api_instance.get_partner_credit_balance_0(partner_id)
735
+ p result
736
+ rescue ApiSdkRb::ApiError => e
737
+ puts "Error when calling PartnersApi->get_partner_credit_balance_0: #{e}"
738
+ end
739
+ ```
740
+
741
+ #### Using the get_partner_credit_balance_0_with_http_info variant
742
+
743
+ This returns an Array which contains the response data, status code and headers.
744
+
745
+ > <Array(<AccountCreditBalanceResponse>, Integer, Hash)> get_partner_credit_balance_0_with_http_info(partner_id)
746
+
747
+ ```ruby
748
+ begin
749
+ # Get partner credit balance
750
+ data, status_code, headers = api_instance.get_partner_credit_balance_0_with_http_info(partner_id)
751
+ p status_code # => 2xx
752
+ p headers # => { ... }
753
+ p data # => <AccountCreditBalanceResponse>
754
+ rescue ApiSdkRb::ApiError => e
755
+ puts "Error when calling PartnersApi->get_partner_credit_balance_0_with_http_info: #{e}"
756
+ end
757
+ ```
758
+
759
+ ### Parameters
760
+
761
+ | Name | Type | Description | Notes |
762
+ | ---- | ---- | ----------- | ----- |
763
+ | **partner_id** | **String** | Partner ID | |
764
+
765
+ ### Return type
766
+
767
+ [**AccountCreditBalanceResponse**](AccountCreditBalanceResponse.md)
768
+
769
+ ### Authorization
770
+
771
+ [apiKeyAuth](../README.md#apiKeyAuth)
772
+
773
+ ### HTTP request headers
774
+
775
+ - **Content-Type**: Not defined
776
+ - **Accept**: application/json
777
+
778
+
779
+ ## get_partner_credit_transactions_0
780
+
781
+ > <GetPartnerCreditTransactions200Response> get_partner_credit_transactions_0(partner_id, opts)
782
+
783
+ Get partner credit transaction history
784
+
785
+ Lists what happened to the partner's credits, newest first: the entries of the credit ledger of the account of the person who administers it, the one account a partner has for its credits. Every operation that spends credits is a `debit` entry, and the credits an invoice carried arrive as `credit` entries when the invoice is paid, so this is also how the partner's usage is read. It is the same ledger `getUserCreditTransactions` reads for that person. A partner with no administrator has no account, and an empty ledger. The page is always bounded: `limit` defaults to 20 and is capped at 100, `offset` defaults to 0. Access: the person who administers the partner, or a Widgetic administrator.
786
+
787
+ ### Examples
788
+
789
+ ```ruby
790
+ require 'time'
791
+ require 'api-sdk-rb'
792
+ # setup authorization
793
+ ApiSdkRb.configure do |config|
794
+ # Configure Bearer authorization (JWT): apiKeyAuth
795
+ config.access_token = 'YOUR_BEARER_TOKEN'
796
+ end
797
+
798
+ api_instance = ApiSdkRb::PartnersApi.new
799
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | Partner ID
800
+ opts = {
801
+ limit: 56, # Integer | Number of transactions to return
802
+ offset: 56, # Integer | Number of transactions to skip
803
+ type: 'type_example' # String | Only entries of this type, for instance `debit` for the credits spent. The types are listed on `AccountCreditTransaction`.
804
+ }
805
+
806
+ begin
807
+ # Get partner credit transaction history
808
+ result = api_instance.get_partner_credit_transactions_0(partner_id, opts)
809
+ p result
810
+ rescue ApiSdkRb::ApiError => e
811
+ puts "Error when calling PartnersApi->get_partner_credit_transactions_0: #{e}"
812
+ end
813
+ ```
814
+
815
+ #### Using the get_partner_credit_transactions_0_with_http_info variant
816
+
817
+ This returns an Array which contains the response data, status code and headers.
818
+
819
+ > <Array(<GetPartnerCreditTransactions200Response>, Integer, Hash)> get_partner_credit_transactions_0_with_http_info(partner_id, opts)
820
+
821
+ ```ruby
822
+ begin
823
+ # Get partner credit transaction history
824
+ data, status_code, headers = api_instance.get_partner_credit_transactions_0_with_http_info(partner_id, opts)
825
+ p status_code # => 2xx
826
+ p headers # => { ... }
827
+ p data # => <GetPartnerCreditTransactions200Response>
828
+ rescue ApiSdkRb::ApiError => e
829
+ puts "Error when calling PartnersApi->get_partner_credit_transactions_0_with_http_info: #{e}"
830
+ end
831
+ ```
832
+
833
+ ### Parameters
834
+
835
+ | Name | Type | Description | Notes |
836
+ | ---- | ---- | ----------- | ----- |
837
+ | **partner_id** | **String** | Partner ID | |
838
+ | **limit** | **Integer** | Number of transactions to return | [optional][default to 20] |
839
+ | **offset** | **Integer** | Number of transactions to skip | [optional][default to 0] |
840
+ | **type** | **String** | Only entries of this type, for instance &#x60;debit&#x60; for the credits spent. The types are listed on &#x60;AccountCreditTransaction&#x60;. | [optional] |
841
+
842
+ ### Return type
843
+
844
+ [**GetPartnerCreditTransactions200Response**](GetPartnerCreditTransactions200Response.md)
845
+
846
+ ### Authorization
847
+
848
+ [apiKeyAuth](../README.md#apiKeyAuth)
849
+
850
+ ### HTTP request headers
851
+
852
+ - **Content-Type**: Not defined
853
+ - **Accept**: application/json
854
+
855
+
856
+ ## get_partner_data_database_0
857
+
858
+ > <PartnerDataDatabaseResponse> get_partner_data_database_0(partner_id)
859
+
860
+ See the Neon database a partner keeps the data of its compositions in
861
+
862
+ Returns the database set with `setPartnerDataDatabase`, without its password: the host, the database and the role, when it last passed the check, and why the latest re-check failed if it did. Responds 404 while the partner has no database of its own, which means the data of its compositions is kept by Widgetic. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
863
+
864
+ ### Examples
865
+
866
+ ```ruby
867
+ require 'time'
868
+ require 'api-sdk-rb'
869
+ # setup authorization
870
+ ApiSdkRb.configure do |config|
871
+ # Configure Bearer authorization (JWT): apiKeyAuth
872
+ config.access_token = 'YOUR_BEARER_TOKEN'
873
+ end
874
+
875
+ api_instance = ApiSdkRb::PartnersApi.new
876
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose database to read
877
+
878
+ begin
879
+ # See the Neon database a partner keeps the data of its compositions in
880
+ result = api_instance.get_partner_data_database_0(partner_id)
881
+ p result
882
+ rescue ApiSdkRb::ApiError => e
883
+ puts "Error when calling PartnersApi->get_partner_data_database_0: #{e}"
884
+ end
885
+ ```
886
+
887
+ #### Using the get_partner_data_database_0_with_http_info variant
888
+
889
+ This returns an Array which contains the response data, status code and headers.
890
+
891
+ > <Array(<PartnerDataDatabaseResponse>, Integer, Hash)> get_partner_data_database_0_with_http_info(partner_id)
892
+
893
+ ```ruby
894
+ begin
895
+ # See the Neon database a partner keeps the data of its compositions in
896
+ data, status_code, headers = api_instance.get_partner_data_database_0_with_http_info(partner_id)
897
+ p status_code # => 2xx
898
+ p headers # => { ... }
899
+ p data # => <PartnerDataDatabaseResponse>
900
+ rescue ApiSdkRb::ApiError => e
901
+ puts "Error when calling PartnersApi->get_partner_data_database_0_with_http_info: #{e}"
902
+ end
903
+ ```
904
+
905
+ ### Parameters
906
+
907
+ | Name | Type | Description | Notes |
908
+ | ---- | ---- | ----------- | ----- |
909
+ | **partner_id** | **String** | The partner whose database to read | |
910
+
911
+ ### Return type
912
+
913
+ [**PartnerDataDatabaseResponse**](PartnerDataDatabaseResponse.md)
914
+
915
+ ### Authorization
916
+
917
+ [apiKeyAuth](../README.md#apiKeyAuth)
918
+
919
+ ### HTTP request headers
920
+
921
+ - **Content-Type**: Not defined
922
+ - **Accept**: application/json
923
+
924
+
925
+ ## get_partner_design_defaults_0
926
+
927
+ > <GetPartnerDesignDefaults200Response> get_partner_design_defaults_0(partner_id)
928
+
929
+ Read partner-wide design defaults
930
+
931
+ ### Examples
932
+
933
+ ```ruby
934
+ require 'time'
935
+ require 'api-sdk-rb'
936
+ # setup authorization
937
+ ApiSdkRb.configure do |config|
938
+ # Configure Bearer authorization (JWT): apiKeyAuth
939
+ config.access_token = 'YOUR_BEARER_TOKEN'
940
+ end
941
+
942
+ api_instance = ApiSdkRb::PartnersApi.new
943
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
944
+
945
+ begin
946
+ # Read partner-wide design defaults
947
+ result = api_instance.get_partner_design_defaults_0(partner_id)
948
+ p result
949
+ rescue ApiSdkRb::ApiError => e
950
+ puts "Error when calling PartnersApi->get_partner_design_defaults_0: #{e}"
951
+ end
952
+ ```
953
+
954
+ #### Using the get_partner_design_defaults_0_with_http_info variant
955
+
956
+ This returns an Array which contains the response data, status code and headers.
957
+
958
+ > <Array(<GetPartnerDesignDefaults200Response>, Integer, Hash)> get_partner_design_defaults_0_with_http_info(partner_id)
959
+
960
+ ```ruby
961
+ begin
962
+ # Read partner-wide design defaults
963
+ data, status_code, headers = api_instance.get_partner_design_defaults_0_with_http_info(partner_id)
964
+ p status_code # => 2xx
965
+ p headers # => { ... }
966
+ p data # => <GetPartnerDesignDefaults200Response>
967
+ rescue ApiSdkRb::ApiError => e
968
+ puts "Error when calling PartnersApi->get_partner_design_defaults_0_with_http_info: #{e}"
969
+ end
970
+ ```
971
+
972
+ ### Parameters
973
+
974
+ | Name | Type | Description | Notes |
975
+ | ---- | ---- | ----------- | ----- |
976
+ | **partner_id** | **String** | | |
977
+
978
+ ### Return type
979
+
980
+ [**GetPartnerDesignDefaults200Response**](GetPartnerDesignDefaults200Response.md)
981
+
982
+ ### Authorization
983
+
984
+ [apiKeyAuth](../README.md#apiKeyAuth)
985
+
986
+ ### HTTP request headers
987
+
988
+ - **Content-Type**: Not defined
989
+ - **Accept**: application/json
990
+
991
+
992
+ ## get_partner_entry_context_signing_0
993
+
994
+ > <PartnerEntryContextSigningResponse> get_partner_entry_context_signing_0(partner_id)
995
+
996
+ See how the context of your embeds is signed
997
+
998
+ Says whether you have a secret to sign the `context` of your embeds with, when it was made, whether the secret it replaced is still accepted, and whether an entry without a valid signature is refused (`required`). The secret itself is never part of the answer: it is shown once, when it is made (`rotatePartnerEntryContextSecret`, which also explains what signing is for and how to sign). Signing covers the entries written through the gateway into the compositions of your managed users and into those of your own account. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
999
+
1000
+ ### Examples
1001
+
1002
+ ```ruby
1003
+ require 'time'
1004
+ require 'api-sdk-rb'
1005
+ # setup authorization
1006
+ ApiSdkRb.configure do |config|
1007
+ # Configure Bearer authorization (JWT): apiKeyAuth
1008
+ config.access_token = 'YOUR_BEARER_TOKEN'
1009
+ end
1010
+
1011
+ api_instance = ApiSdkRb::PartnersApi.new
1012
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose context signing to read
1013
+
1014
+ begin
1015
+ # See how the context of your embeds is signed
1016
+ result = api_instance.get_partner_entry_context_signing_0(partner_id)
1017
+ p result
1018
+ rescue ApiSdkRb::ApiError => e
1019
+ puts "Error when calling PartnersApi->get_partner_entry_context_signing_0: #{e}"
1020
+ end
1021
+ ```
1022
+
1023
+ #### Using the get_partner_entry_context_signing_0_with_http_info variant
1024
+
1025
+ This returns an Array which contains the response data, status code and headers.
1026
+
1027
+ > <Array(<PartnerEntryContextSigningResponse>, Integer, Hash)> get_partner_entry_context_signing_0_with_http_info(partner_id)
1028
+
1029
+ ```ruby
1030
+ begin
1031
+ # See how the context of your embeds is signed
1032
+ data, status_code, headers = api_instance.get_partner_entry_context_signing_0_with_http_info(partner_id)
1033
+ p status_code # => 2xx
1034
+ p headers # => { ... }
1035
+ p data # => <PartnerEntryContextSigningResponse>
1036
+ rescue ApiSdkRb::ApiError => e
1037
+ puts "Error when calling PartnersApi->get_partner_entry_context_signing_0_with_http_info: #{e}"
1038
+ end
1039
+ ```
1040
+
1041
+ ### Parameters
1042
+
1043
+ | Name | Type | Description | Notes |
1044
+ | ---- | ---- | ----------- | ----- |
1045
+ | **partner_id** | **String** | The partner whose context signing to read | |
1046
+
1047
+ ### Return type
1048
+
1049
+ [**PartnerEntryContextSigningResponse**](PartnerEntryContextSigningResponse.md)
1050
+
1051
+ ### Authorization
1052
+
1053
+ [apiKeyAuth](../README.md#apiKeyAuth)
1054
+
1055
+ ### HTTP request headers
1056
+
1057
+ - **Content-Type**: Not defined
1058
+ - **Accept**: application/json
1059
+
1060
+
1061
+ ## get_partner_notification_settings_0
1062
+
1063
+ > <PartnerNotificationSettingsResponse> get_partner_notification_settings_0(partner_id)
1064
+
1065
+ Where your notifications go
1066
+
1067
+ Returns who gets the emails, which events you want by email and by webhook, the address of your webhook, and whether it has a secret to sign with. The secret itself is never returned: it is shown once, when it is made. `events` lists every kind of event there is, for a settings screen. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
1068
+
1069
+ ### Examples
1070
+
1071
+ ```ruby
1072
+ require 'time'
1073
+ require 'api-sdk-rb'
1074
+ # setup authorization
1075
+ ApiSdkRb.configure do |config|
1076
+ # Configure Bearer authorization (JWT): apiKeyAuth
1077
+ config.access_token = 'YOUR_BEARER_TOKEN'
1078
+ end
1079
+
1080
+ api_instance = ApiSdkRb::PartnersApi.new
1081
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose notification settings to read
1082
+
1083
+ begin
1084
+ # Where your notifications go
1085
+ result = api_instance.get_partner_notification_settings_0(partner_id)
1086
+ p result
1087
+ rescue ApiSdkRb::ApiError => e
1088
+ puts "Error when calling PartnersApi->get_partner_notification_settings_0: #{e}"
1089
+ end
1090
+ ```
1091
+
1092
+ #### Using the get_partner_notification_settings_0_with_http_info variant
1093
+
1094
+ This returns an Array which contains the response data, status code and headers.
1095
+
1096
+ > <Array(<PartnerNotificationSettingsResponse>, Integer, Hash)> get_partner_notification_settings_0_with_http_info(partner_id)
1097
+
1098
+ ```ruby
1099
+ begin
1100
+ # Where your notifications go
1101
+ data, status_code, headers = api_instance.get_partner_notification_settings_0_with_http_info(partner_id)
1102
+ p status_code # => 2xx
1103
+ p headers # => { ... }
1104
+ p data # => <PartnerNotificationSettingsResponse>
1105
+ rescue ApiSdkRb::ApiError => e
1106
+ puts "Error when calling PartnersApi->get_partner_notification_settings_0_with_http_info: #{e}"
1107
+ end
1108
+ ```
1109
+
1110
+ ### Parameters
1111
+
1112
+ | Name | Type | Description | Notes |
1113
+ | ---- | ---- | ----------- | ----- |
1114
+ | **partner_id** | **String** | The partner whose notification settings to read | |
1115
+
1116
+ ### Return type
1117
+
1118
+ [**PartnerNotificationSettingsResponse**](PartnerNotificationSettingsResponse.md)
1119
+
1120
+ ### Authorization
1121
+
1122
+ [apiKeyAuth](../README.md#apiKeyAuth)
1123
+
1124
+ ### HTTP request headers
1125
+
1126
+ - **Content-Type**: Not defined
1127
+ - **Accept**: application/json
1128
+
1129
+
1130
+ ## get_partner_storage_destination_0
1131
+
1132
+ > <PartnerStorageDestinationResponse> get_partner_storage_destination_0(partner_id)
1133
+
1134
+ Get where a partner's uploaded files are stored
1135
+
1136
+ Returns the partner's storage destination without its secret: the endpoint, bucket, folder and public address, the last four characters of the access key id, when the destination last passed the check, and why the latest re-check failed if it did. Responds 404 while the partner has no destination, which means the partner cannot be activated, its uploads are refused, and no editor session is made for its customers until a destination is set. The caller must be the person who administers the partner, or a Widgetic administrator.
1137
+
1138
+ ### Examples
1139
+
1140
+ ```ruby
1141
+ require 'time'
1142
+ require 'api-sdk-rb'
1143
+ # setup authorization
1144
+ ApiSdkRb.configure do |config|
1145
+ # Configure Bearer authorization (JWT): apiKeyAuth
1146
+ config.access_token = 'YOUR_BEARER_TOKEN'
1147
+ end
1148
+
1149
+ api_instance = ApiSdkRb::PartnersApi.new
1150
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose storage destination to read
1151
+
1152
+ begin
1153
+ # Get where a partner's uploaded files are stored
1154
+ result = api_instance.get_partner_storage_destination_0(partner_id)
1155
+ p result
1156
+ rescue ApiSdkRb::ApiError => e
1157
+ puts "Error when calling PartnersApi->get_partner_storage_destination_0: #{e}"
1158
+ end
1159
+ ```
1160
+
1161
+ #### Using the get_partner_storage_destination_0_with_http_info variant
1162
+
1163
+ This returns an Array which contains the response data, status code and headers.
1164
+
1165
+ > <Array(<PartnerStorageDestinationResponse>, Integer, Hash)> get_partner_storage_destination_0_with_http_info(partner_id)
1166
+
1167
+ ```ruby
1168
+ begin
1169
+ # Get where a partner's uploaded files are stored
1170
+ data, status_code, headers = api_instance.get_partner_storage_destination_0_with_http_info(partner_id)
1171
+ p status_code # => 2xx
1172
+ p headers # => { ... }
1173
+ p data # => <PartnerStorageDestinationResponse>
1174
+ rescue ApiSdkRb::ApiError => e
1175
+ puts "Error when calling PartnersApi->get_partner_storage_destination_0_with_http_info: #{e}"
1176
+ end
1177
+ ```
1178
+
1179
+ ### Parameters
1180
+
1181
+ | Name | Type | Description | Notes |
1182
+ | ---- | ---- | ----------- | ----- |
1183
+ | **partner_id** | **String** | The partner whose storage destination to read | |
1184
+
1185
+ ### Return type
1186
+
1187
+ [**PartnerStorageDestinationResponse**](PartnerStorageDestinationResponse.md)
1188
+
1189
+ ### Authorization
1190
+
1191
+ [apiKeyAuth](../README.md#apiKeyAuth)
1192
+
1193
+ ### HTTP request headers
1194
+
1195
+ - **Content-Type**: Not defined
1196
+ - **Accept**: application/json
1197
+
1198
+
1199
+ ## get_partner_storage_usage_0
1200
+
1201
+ > <PartnerStorageUsageResponse> get_partner_storage_usage_0(partner_id, opts)
1202
+
1203
+ What a partner's customers store
1204
+
1205
+ Says how many files, and how many bytes, your account keeps, in total and for each of your managed users, and how much of it is in Widgetic's storage and how much in your own storage destination (`setPartnerStorageDestination`). Use it to see which customers store the most, or to charge them for it. A file is counted for a managed user when it was filed under that user: by naming `managed_user_id` or `managed_user_external_id` when you upload it (`uploadsPost`, or the metadata of a resumable upload), or because it was uploaded through that user's editor session, which files everything under its user. The files that are not filed under anyone (your own, and the ones uploaded without naming a managed user) are the row whose `managedUserId` is null. Deleted files are not counted. To list the files of one managed user, use the `managed_user_id` filter of `uploadsGet`. The answer is counted when you ask, so it is always current. The groups are ordered by size, the heaviest first, and `page.hasMore` says whether more follow. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
1206
+
1207
+ ### Examples
1208
+
1209
+ ```ruby
1210
+ require 'time'
1211
+ require 'api-sdk-rb'
1212
+ # setup authorization
1213
+ ApiSdkRb.configure do |config|
1214
+ # Configure Bearer authorization (JWT): apiKeyAuth
1215
+ config.access_token = 'YOUR_BEARER_TOKEN'
1216
+ end
1217
+
1218
+ api_instance = ApiSdkRb::PartnersApi.new
1219
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose storage to report on
1220
+ opts = {
1221
+ limit: 56, # Integer | How many managed users to list at most
1222
+ offset: 56 # Integer | How many managed users to skip
1223
+ }
1224
+
1225
+ begin
1226
+ # What a partner's customers store
1227
+ result = api_instance.get_partner_storage_usage_0(partner_id, opts)
1228
+ p result
1229
+ rescue ApiSdkRb::ApiError => e
1230
+ puts "Error when calling PartnersApi->get_partner_storage_usage_0: #{e}"
1231
+ end
1232
+ ```
1233
+
1234
+ #### Using the get_partner_storage_usage_0_with_http_info variant
1235
+
1236
+ This returns an Array which contains the response data, status code and headers.
1237
+
1238
+ > <Array(<PartnerStorageUsageResponse>, Integer, Hash)> get_partner_storage_usage_0_with_http_info(partner_id, opts)
1239
+
1240
+ ```ruby
1241
+ begin
1242
+ # What a partner's customers store
1243
+ data, status_code, headers = api_instance.get_partner_storage_usage_0_with_http_info(partner_id, opts)
1244
+ p status_code # => 2xx
1245
+ p headers # => { ... }
1246
+ p data # => <PartnerStorageUsageResponse>
1247
+ rescue ApiSdkRb::ApiError => e
1248
+ puts "Error when calling PartnersApi->get_partner_storage_usage_0_with_http_info: #{e}"
1249
+ end
1250
+ ```
1251
+
1252
+ ### Parameters
1253
+
1254
+ | Name | Type | Description | Notes |
1255
+ | ---- | ---- | ----------- | ----- |
1256
+ | **partner_id** | **String** | The partner whose storage to report on | |
1257
+ | **limit** | **Integer** | How many managed users to list at most | [optional][default to 50] |
1258
+ | **offset** | **Integer** | How many managed users to skip | [optional][default to 0] |
1259
+
1260
+ ### Return type
1261
+
1262
+ [**PartnerStorageUsageResponse**](PartnerStorageUsageResponse.md)
1263
+
1264
+ ### Authorization
1265
+
1266
+ [apiKeyAuth](../README.md#apiKeyAuth)
1267
+
1268
+ ### HTTP request headers
1269
+
1270
+ - **Content-Type**: Not defined
1271
+ - **Accept**: application/json
1272
+
1273
+
1274
+ ## list_partner_notification_deliveries_0
1275
+
1276
+ > <PartnerNotificationDeliveryLogResponse> list_partner_notification_deliveries_0(partner_id, opts)
1277
+
1278
+ How your notifications reached you
1279
+
1280
+ Lists the sends of your notifications, the newest first: each email to one address and each call to your webhook, with whether it was delivered, when it is tried again if not, how many attempts it had, and why the last one failed. Use it to find out why a webhook of yours did not receive an event. An email counts as delivered when it was handed to the mail service; a call to your webhook counts as delivered when your endpoint answered with a 2xx status. Anything else is tried again, after 1 minute, then 5 minutes, 30 minutes, 2 hours, 6 hours, 12 hours and a day, eight attempts in all, because your address is read again at each attempt and you may have mended it. Two answers end the delivery at once: `410 Gone` and `413 Payload Too Large`. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
1281
+
1282
+ ### Examples
1283
+
1284
+ ```ruby
1285
+ require 'time'
1286
+ require 'api-sdk-rb'
1287
+ # setup authorization
1288
+ ApiSdkRb.configure do |config|
1289
+ # Configure Bearer authorization (JWT): apiKeyAuth
1290
+ config.access_token = 'YOUR_BEARER_TOKEN'
1291
+ end
1292
+
1293
+ api_instance = ApiSdkRb::PartnersApi.new
1294
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose deliveries to list
1295
+ opts = {
1296
+ limit: 56 # Integer | How many deliveries to list at most
1297
+ }
1298
+
1299
+ begin
1300
+ # How your notifications reached you
1301
+ result = api_instance.list_partner_notification_deliveries_0(partner_id, opts)
1302
+ p result
1303
+ rescue ApiSdkRb::ApiError => e
1304
+ puts "Error when calling PartnersApi->list_partner_notification_deliveries_0: #{e}"
1305
+ end
1306
+ ```
1307
+
1308
+ #### Using the list_partner_notification_deliveries_0_with_http_info variant
1309
+
1310
+ This returns an Array which contains the response data, status code and headers.
1311
+
1312
+ > <Array(<PartnerNotificationDeliveryLogResponse>, Integer, Hash)> list_partner_notification_deliveries_0_with_http_info(partner_id, opts)
1313
+
1314
+ ```ruby
1315
+ begin
1316
+ # How your notifications reached you
1317
+ data, status_code, headers = api_instance.list_partner_notification_deliveries_0_with_http_info(partner_id, opts)
1318
+ p status_code # => 2xx
1319
+ p headers # => { ... }
1320
+ p data # => <PartnerNotificationDeliveryLogResponse>
1321
+ rescue ApiSdkRb::ApiError => e
1322
+ puts "Error when calling PartnersApi->list_partner_notification_deliveries_0_with_http_info: #{e}"
1323
+ end
1324
+ ```
1325
+
1326
+ ### Parameters
1327
+
1328
+ | Name | Type | Description | Notes |
1329
+ | ---- | ---- | ----------- | ----- |
1330
+ | **partner_id** | **String** | The partner whose deliveries to list | |
1331
+ | **limit** | **Integer** | How many deliveries to list at most | [optional][default to 100] |
1332
+
1333
+ ### Return type
1334
+
1335
+ [**PartnerNotificationDeliveryLogResponse**](PartnerNotificationDeliveryLogResponse.md)
1336
+
1337
+ ### Authorization
1338
+
1339
+ [apiKeyAuth](../README.md#apiKeyAuth)
1340
+
1341
+ ### HTTP request headers
1342
+
1343
+ - **Content-Type**: Not defined
1344
+ - **Accept**: application/json
1345
+
1346
+
1347
+ ## list_partner_notifications_0
1348
+
1349
+ > <PartnerNotificationPageResponse> list_partner_notifications_0(partner_id, opts)
1350
+
1351
+ What your partner account was told
1352
+
1353
+ Lists the notifications of a partner, the newest first: the invoices Widgetic issued and their payments, the reminders to pay them, a warning when your credits run low, and the changes to the standing of the account (activated, paused, resumed). It is the same list your dashboard shows, and each entry is what your webhook receives as `data` when you have one (`updatePartnerNotificationSettings`). A page holds `limit` notifications (20 by default, at most 100). When there are older ones `nextBefore` is set: ask again with it as `before` to get the next page. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
1354
+
1355
+ ### Examples
1356
+
1357
+ ```ruby
1358
+ require 'time'
1359
+ require 'api-sdk-rb'
1360
+ # setup authorization
1361
+ ApiSdkRb.configure do |config|
1362
+ # Configure Bearer authorization (JWT): apiKeyAuth
1363
+ config.access_token = 'YOUR_BEARER_TOKEN'
1364
+ end
1365
+
1366
+ api_instance = ApiSdkRb::PartnersApi.new
1367
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose notifications to list
1368
+ opts = {
1369
+ limit: 56, # Integer | How many notifications to list at most
1370
+ before: Time.parse('2013-10-20T19:20:30+01:00') # Time | Only the notifications made before this moment. Give the `nextBefore` of the previous page.
1371
+ }
1372
+
1373
+ begin
1374
+ # What your partner account was told
1375
+ result = api_instance.list_partner_notifications_0(partner_id, opts)
1376
+ p result
1377
+ rescue ApiSdkRb::ApiError => e
1378
+ puts "Error when calling PartnersApi->list_partner_notifications_0: #{e}"
1379
+ end
1380
+ ```
1381
+
1382
+ #### Using the list_partner_notifications_0_with_http_info variant
1383
+
1384
+ This returns an Array which contains the response data, status code and headers.
1385
+
1386
+ > <Array(<PartnerNotificationPageResponse>, Integer, Hash)> list_partner_notifications_0_with_http_info(partner_id, opts)
1387
+
1388
+ ```ruby
1389
+ begin
1390
+ # What your partner account was told
1391
+ data, status_code, headers = api_instance.list_partner_notifications_0_with_http_info(partner_id, opts)
1392
+ p status_code # => 2xx
1393
+ p headers # => { ... }
1394
+ p data # => <PartnerNotificationPageResponse>
1395
+ rescue ApiSdkRb::ApiError => e
1396
+ puts "Error when calling PartnersApi->list_partner_notifications_0_with_http_info: #{e}"
1397
+ end
1398
+ ```
1399
+
1400
+ ### Parameters
1401
+
1402
+ | Name | Type | Description | Notes |
1403
+ | ---- | ---- | ----------- | ----- |
1404
+ | **partner_id** | **String** | The partner whose notifications to list | |
1405
+ | **limit** | **Integer** | How many notifications to list at most | [optional][default to 20] |
1406
+ | **before** | **Time** | Only the notifications made before this moment. Give the &#x60;nextBefore&#x60; of the previous page. | [optional] |
1407
+
1408
+ ### Return type
1409
+
1410
+ [**PartnerNotificationPageResponse**](PartnerNotificationPageResponse.md)
1411
+
1412
+ ### Authorization
1413
+
1414
+ [apiKeyAuth](../README.md#apiKeyAuth)
1415
+
1416
+ ### HTTP request headers
1417
+
1418
+ - **Content-Type**: Not defined
1419
+ - **Accept**: application/json
1420
+
1421
+
1422
+ ## list_partner_presets_0
1423
+
1424
+ > <ListPartnerPresets200Response> list_partner_presets_0(partner_id)
1425
+
1426
+ List the widgets a partner offers as presets
1427
+
1428
+ Returns the partner's presets, ordered by `position` and then by `key`: the widgets it offers its managed users as starting points. The list is the same for every managed user. Use a preset in one of two ways: - **Make a composition of it** (the content and design editor): call `createComposition` with the preset's `widgetId` and the managed user. The widget itself stays yours; a composition is the user's own content. - **Give the user a copy to build on** (the widget creator): call `copyPresetForManagedUser`. The user gets a widget and a canvas of their own. Presets are not the same as the widgets Widgetic puts on every new Widgetic account. Those are chosen by Widgetic and are copied at sign-up. A preset here is yours, and is copied only when you ask. The caller must be the person who administers the partner (an API key of that account works), or a Widgetic administrator.
1429
+
1430
+ ### Examples
1431
+
1432
+ ```ruby
1433
+ require 'time'
1434
+ require 'api-sdk-rb'
1435
+ # setup authorization
1436
+ ApiSdkRb.configure do |config|
1437
+ # Configure Bearer authorization (JWT): apiKeyAuth
1438
+ config.access_token = 'YOUR_BEARER_TOKEN'
1439
+ end
1440
+
1441
+ api_instance = ApiSdkRb::PartnersApi.new
1442
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose presets to list
1443
+
1444
+ begin
1445
+ # List the widgets a partner offers as presets
1446
+ result = api_instance.list_partner_presets_0(partner_id)
1447
+ p result
1448
+ rescue ApiSdkRb::ApiError => e
1449
+ puts "Error when calling PartnersApi->list_partner_presets_0: #{e}"
1450
+ end
1451
+ ```
1452
+
1453
+ #### Using the list_partner_presets_0_with_http_info variant
1454
+
1455
+ This returns an Array which contains the response data, status code and headers.
1456
+
1457
+ > <Array(<ListPartnerPresets200Response>, Integer, Hash)> list_partner_presets_0_with_http_info(partner_id)
1458
+
1459
+ ```ruby
1460
+ begin
1461
+ # List the widgets a partner offers as presets
1462
+ data, status_code, headers = api_instance.list_partner_presets_0_with_http_info(partner_id)
1463
+ p status_code # => 2xx
1464
+ p headers # => { ... }
1465
+ p data # => <ListPartnerPresets200Response>
1466
+ rescue ApiSdkRb::ApiError => e
1467
+ puts "Error when calling PartnersApi->list_partner_presets_0_with_http_info: #{e}"
1468
+ end
1469
+ ```
1470
+
1471
+ ### Parameters
1472
+
1473
+ | Name | Type | Description | Notes |
1474
+ | ---- | ---- | ----------- | ----- |
1475
+ | **partner_id** | **String** | The partner whose presets to list | |
1476
+
1477
+ ### Return type
1478
+
1479
+ [**ListPartnerPresets200Response**](ListPartnerPresets200Response.md)
1480
+
1481
+ ### Authorization
1482
+
1483
+ [apiKeyAuth](../README.md#apiKeyAuth)
1484
+
1485
+ ### HTTP request headers
1486
+
1487
+ - **Content-Type**: Not defined
1488
+ - **Accept**: application/json
1489
+
1490
+
1491
+ ## remove_partner_adapter_connection_0
1492
+
1493
+ > <RemoveUserAdapterConnection200Response> remove_partner_adapter_connection_0(partner_id, adapter_id, credential_key)
1494
+
1495
+ Remove an adapter key from a partner
1496
+
1497
+ Removes a key an adapter was given. The adapter stops working for the widgets of the partner's customers that need it: their visitors are told the feature is unavailable. Nothing else of the widgets changes, and connecting a key again brings them back. Removing a key that is not connected answers 200 with `removed: false`: the state asked for is the state it is in. A key of an adapter that has since been retired from the catalog can still be removed. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
1498
+
1499
+ ### Examples
1500
+
1501
+ ```ruby
1502
+ require 'time'
1503
+ require 'api-sdk-rb'
1504
+ # setup authorization
1505
+ ApiSdkRb.configure do |config|
1506
+ # Configure Bearer authorization (JWT): apiKeyAuth
1507
+ config.access_token = 'YOUR_BEARER_TOKEN'
1508
+ end
1509
+
1510
+ api_instance = ApiSdkRb::PartnersApi.new
1511
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner that keeps the key
1512
+ adapter_id = 'adapter_id_example' # String | The adapter the key is for
1513
+ credential_key = 'credential_key_example' # String | The key's name within the adapter
1514
+
1515
+ begin
1516
+ # Remove an adapter key from a partner
1517
+ result = api_instance.remove_partner_adapter_connection_0(partner_id, adapter_id, credential_key)
1518
+ p result
1519
+ rescue ApiSdkRb::ApiError => e
1520
+ puts "Error when calling PartnersApi->remove_partner_adapter_connection_0: #{e}"
1521
+ end
1522
+ ```
1523
+
1524
+ #### Using the remove_partner_adapter_connection_0_with_http_info variant
1525
+
1526
+ This returns an Array which contains the response data, status code and headers.
1527
+
1528
+ > <Array(<RemoveUserAdapterConnection200Response>, Integer, Hash)> remove_partner_adapter_connection_0_with_http_info(partner_id, adapter_id, credential_key)
1529
+
1530
+ ```ruby
1531
+ begin
1532
+ # Remove an adapter key from a partner
1533
+ data, status_code, headers = api_instance.remove_partner_adapter_connection_0_with_http_info(partner_id, adapter_id, credential_key)
1534
+ p status_code # => 2xx
1535
+ p headers # => { ... }
1536
+ p data # => <RemoveUserAdapterConnection200Response>
1537
+ rescue ApiSdkRb::ApiError => e
1538
+ puts "Error when calling PartnersApi->remove_partner_adapter_connection_0_with_http_info: #{e}"
1539
+ end
1540
+ ```
1541
+
1542
+ ### Parameters
1543
+
1544
+ | Name | Type | Description | Notes |
1545
+ | ---- | ---- | ----------- | ----- |
1546
+ | **partner_id** | **String** | The partner that keeps the key | |
1547
+ | **adapter_id** | **String** | The adapter the key is for | |
1548
+ | **credential_key** | **String** | The key&#39;s name within the adapter | |
1549
+
1550
+ ### Return type
1551
+
1552
+ [**RemoveUserAdapterConnection200Response**](RemoveUserAdapterConnection200Response.md)
1553
+
1554
+ ### Authorization
1555
+
1556
+ [apiKeyAuth](../README.md#apiKeyAuth)
1557
+
1558
+ ### HTTP request headers
1559
+
1560
+ - **Content-Type**: Not defined
1561
+ - **Accept**: application/json
1562
+
1563
+
1564
+ ## remove_partner_data_database_0
1565
+
1566
+ > <PartnerDataDatabaseRemovalResponse> remove_partner_data_database_0(partner_id)
1567
+
1568
+ Stop keeping the data of a partner's compositions in its own database
1569
+
1570
+ Removes the partner's database from Widgetic: Widgetic forgets the connection string, and from then on the data of the partner's compositions is kept in Widgetic's database again. Nothing in your database is deleted. Removing is refused with 409 `PARTNER_DATABASE_HOLDS_DATA` while any composition of the partner keeps its data in your database: it would read as empty from then on, and what it holds would stay where nothing reads it. Delete the compositions you no longer need, or keep the database. If Widgetic cannot check what your database holds (it cannot be reached) the answer is 503 `PARTNER_DATABASE_UNAVAILABLE`; check it with `verifyPartnerDataDatabase`, or set the same database again to repair its connection. Removing a database the partner does not have is not an error: the answer is `removed: false`. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
1571
+
1572
+ ### Examples
1573
+
1574
+ ```ruby
1575
+ require 'time'
1576
+ require 'api-sdk-rb'
1577
+ # setup authorization
1578
+ ApiSdkRb.configure do |config|
1579
+ # Configure Bearer authorization (JWT): apiKeyAuth
1580
+ config.access_token = 'YOUR_BEARER_TOKEN'
1581
+ end
1582
+
1583
+ api_instance = ApiSdkRb::PartnersApi.new
1584
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose database to remove
1585
+
1586
+ begin
1587
+ # Stop keeping the data of a partner's compositions in its own database
1588
+ result = api_instance.remove_partner_data_database_0(partner_id)
1589
+ p result
1590
+ rescue ApiSdkRb::ApiError => e
1591
+ puts "Error when calling PartnersApi->remove_partner_data_database_0: #{e}"
1592
+ end
1593
+ ```
1594
+
1595
+ #### Using the remove_partner_data_database_0_with_http_info variant
1596
+
1597
+ This returns an Array which contains the response data, status code and headers.
1598
+
1599
+ > <Array(<PartnerDataDatabaseRemovalResponse>, Integer, Hash)> remove_partner_data_database_0_with_http_info(partner_id)
1600
+
1601
+ ```ruby
1602
+ begin
1603
+ # Stop keeping the data of a partner's compositions in its own database
1604
+ data, status_code, headers = api_instance.remove_partner_data_database_0_with_http_info(partner_id)
1605
+ p status_code # => 2xx
1606
+ p headers # => { ... }
1607
+ p data # => <PartnerDataDatabaseRemovalResponse>
1608
+ rescue ApiSdkRb::ApiError => e
1609
+ puts "Error when calling PartnersApi->remove_partner_data_database_0_with_http_info: #{e}"
1610
+ end
1611
+ ```
1612
+
1613
+ ### Parameters
1614
+
1615
+ | Name | Type | Description | Notes |
1616
+ | ---- | ---- | ----------- | ----- |
1617
+ | **partner_id** | **String** | The partner whose database to remove | |
1618
+
1619
+ ### Return type
1620
+
1621
+ [**PartnerDataDatabaseRemovalResponse**](PartnerDataDatabaseRemovalResponse.md)
1622
+
1623
+ ### Authorization
1624
+
1625
+ [apiKeyAuth](../README.md#apiKeyAuth)
1626
+
1627
+ ### HTTP request headers
1628
+
1629
+ - **Content-Type**: Not defined
1630
+ - **Accept**: application/json
1631
+
1632
+
1633
+ ## remove_partner_preset_0
1634
+
1635
+ > <PartnerPresetRemovalResponse> remove_partner_preset_0(partner_id, key)
1636
+
1637
+ Take a widget off the partner's presets
1638
+
1639
+ Removes the preset under `key`. The widget itself is not touched, and neither are the copies and the compositions already made from it. Removing a preset the partner does not have is not an error: the answer is `removed: false`.
1640
+
1641
+ ### Examples
1642
+
1643
+ ```ruby
1644
+ require 'time'
1645
+ require 'api-sdk-rb'
1646
+ # setup authorization
1647
+ ApiSdkRb.configure do |config|
1648
+ # Configure Bearer authorization (JWT): apiKeyAuth
1649
+ config.access_token = 'YOUR_BEARER_TOKEN'
1650
+ end
1651
+
1652
+ api_instance = ApiSdkRb::PartnersApi.new
1653
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose preset to remove
1654
+ key = 'key_example' # String | The key of the preset to remove
1655
+
1656
+ begin
1657
+ # Take a widget off the partner's presets
1658
+ result = api_instance.remove_partner_preset_0(partner_id, key)
1659
+ p result
1660
+ rescue ApiSdkRb::ApiError => e
1661
+ puts "Error when calling PartnersApi->remove_partner_preset_0: #{e}"
1662
+ end
1663
+ ```
1664
+
1665
+ #### Using the remove_partner_preset_0_with_http_info variant
1666
+
1667
+ This returns an Array which contains the response data, status code and headers.
1668
+
1669
+ > <Array(<PartnerPresetRemovalResponse>, Integer, Hash)> remove_partner_preset_0_with_http_info(partner_id, key)
1670
+
1671
+ ```ruby
1672
+ begin
1673
+ # Take a widget off the partner's presets
1674
+ data, status_code, headers = api_instance.remove_partner_preset_0_with_http_info(partner_id, key)
1675
+ p status_code # => 2xx
1676
+ p headers # => { ... }
1677
+ p data # => <PartnerPresetRemovalResponse>
1678
+ rescue ApiSdkRb::ApiError => e
1679
+ puts "Error when calling PartnersApi->remove_partner_preset_0_with_http_info: #{e}"
1680
+ end
1681
+ ```
1682
+
1683
+ ### Parameters
1684
+
1685
+ | Name | Type | Description | Notes |
1686
+ | ---- | ---- | ----------- | ----- |
1687
+ | **partner_id** | **String** | The partner whose preset to remove | |
1688
+ | **key** | **String** | The key of the preset to remove | |
1689
+
1690
+ ### Return type
1691
+
1692
+ [**PartnerPresetRemovalResponse**](PartnerPresetRemovalResponse.md)
1693
+
1694
+ ### Authorization
1695
+
1696
+ [apiKeyAuth](../README.md#apiKeyAuth)
1697
+
1698
+ ### HTTP request headers
1699
+
1700
+ - **Content-Type**: Not defined
1701
+ - **Accept**: application/json
1702
+
1703
+
1704
+ ## remove_partner_storage_destination_0
1705
+
1706
+ > <PartnerStorageRemovalResponse> remove_partner_storage_destination_0(partner_id)
1707
+
1708
+ Stop storing a partner's uploaded files in its own bucket
1709
+
1710
+ Removes the partner's storage destination. Partner storage is not optional, so after this every upload of the account, on any route, and the uploads of your customers' editor sessions are refused (409 `PARTNER_STORAGE_REQUIRED`) until a destination is set again, and no editor session can be made. Files already in the partner's bucket are not touched and are not moved: they stay where they are, at the addresses they were given. Removing a destination the partner does not have is not an error: the answer is `removed: false`. The caller must be the person who administers the partner, or a Widgetic administrator.
1711
+
1712
+ ### Examples
1713
+
1714
+ ```ruby
1715
+ require 'time'
1716
+ require 'api-sdk-rb'
1717
+ # setup authorization
1718
+ ApiSdkRb.configure do |config|
1719
+ # Configure Bearer authorization (JWT): apiKeyAuth
1720
+ config.access_token = 'YOUR_BEARER_TOKEN'
1721
+ end
1722
+
1723
+ api_instance = ApiSdkRb::PartnersApi.new
1724
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose storage destination to remove
1725
+
1726
+ begin
1727
+ # Stop storing a partner's uploaded files in its own bucket
1728
+ result = api_instance.remove_partner_storage_destination_0(partner_id)
1729
+ p result
1730
+ rescue ApiSdkRb::ApiError => e
1731
+ puts "Error when calling PartnersApi->remove_partner_storage_destination_0: #{e}"
1732
+ end
1733
+ ```
1734
+
1735
+ #### Using the remove_partner_storage_destination_0_with_http_info variant
1736
+
1737
+ This returns an Array which contains the response data, status code and headers.
1738
+
1739
+ > <Array(<PartnerStorageRemovalResponse>, Integer, Hash)> remove_partner_storage_destination_0_with_http_info(partner_id)
1740
+
1741
+ ```ruby
1742
+ begin
1743
+ # Stop storing a partner's uploaded files in its own bucket
1744
+ data, status_code, headers = api_instance.remove_partner_storage_destination_0_with_http_info(partner_id)
1745
+ p status_code # => 2xx
1746
+ p headers # => { ... }
1747
+ p data # => <PartnerStorageRemovalResponse>
1748
+ rescue ApiSdkRb::ApiError => e
1749
+ puts "Error when calling PartnersApi->remove_partner_storage_destination_0_with_http_info: #{e}"
1750
+ end
1751
+ ```
1752
+
1753
+ ### Parameters
1754
+
1755
+ | Name | Type | Description | Notes |
1756
+ | ---- | ---- | ----------- | ----- |
1757
+ | **partner_id** | **String** | The partner whose storage destination to remove | |
1758
+
1759
+ ### Return type
1760
+
1761
+ [**PartnerStorageRemovalResponse**](PartnerStorageRemovalResponse.md)
1762
+
1763
+ ### Authorization
1764
+
1765
+ [apiKeyAuth](../README.md#apiKeyAuth)
1766
+
1767
+ ### HTTP request headers
1768
+
1769
+ - **Content-Type**: Not defined
1770
+ - **Accept**: application/json
1771
+
1772
+
1773
+ ## replay_partner_notification_delivery_0
1774
+
1775
+ > <PartnerNotificationDeliveryResponse> replay_partner_notification_delivery_0(partner_id, delivery_id, idempotency_key)
1776
+
1777
+ Send a webhook delivery again
1778
+
1779
+ Sends one earlier **webhook** delivery again to your **current** webhook address, with the same event `id` (`webhook-id`) as the original notification so a receiver that remembers ids can ignore a duplicate, and a new `createdAt` and signature made with your current secret. The attempt is recorded in the delivery log as a new row that points at the delivery you replayed. Set a webhook address (and secret) under notification settings before you replay. Changing the settings needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
1780
+
1781
+ ### Examples
1782
+
1783
+ ```ruby
1784
+ require 'time'
1785
+ require 'api-sdk-rb'
1786
+ # setup authorization
1787
+ ApiSdkRb.configure do |config|
1788
+ # Configure Bearer authorization (JWT): apiKeyAuth
1789
+ config.access_token = 'YOUR_BEARER_TOKEN'
1790
+ end
1791
+
1792
+ api_instance = ApiSdkRb::PartnersApi.new
1793
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose delivery to replay
1794
+ delivery_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The delivery to send again (must be a webhook delivery of this partner)
1795
+ idempotency_key = '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Required: a call without it is refused with `400`. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
1796
+
1797
+ begin
1798
+ # Send a webhook delivery again
1799
+ result = api_instance.replay_partner_notification_delivery_0(partner_id, delivery_id, idempotency_key)
1800
+ p result
1801
+ rescue ApiSdkRb::ApiError => e
1802
+ puts "Error when calling PartnersApi->replay_partner_notification_delivery_0: #{e}"
1803
+ end
1804
+ ```
1805
+
1806
+ #### Using the replay_partner_notification_delivery_0_with_http_info variant
1807
+
1808
+ This returns an Array which contains the response data, status code and headers.
1809
+
1810
+ > <Array(<PartnerNotificationDeliveryResponse>, Integer, Hash)> replay_partner_notification_delivery_0_with_http_info(partner_id, delivery_id, idempotency_key)
1811
+
1812
+ ```ruby
1813
+ begin
1814
+ # Send a webhook delivery again
1815
+ data, status_code, headers = api_instance.replay_partner_notification_delivery_0_with_http_info(partner_id, delivery_id, idempotency_key)
1816
+ p status_code # => 2xx
1817
+ p headers # => { ... }
1818
+ p data # => <PartnerNotificationDeliveryResponse>
1819
+ rescue ApiSdkRb::ApiError => e
1820
+ puts "Error when calling PartnersApi->replay_partner_notification_delivery_0_with_http_info: #{e}"
1821
+ end
1822
+ ```
1823
+
1824
+ ### Parameters
1825
+
1826
+ | Name | Type | Description | Notes |
1827
+ | ---- | ---- | ----------- | ----- |
1828
+ | **partner_id** | **String** | The partner whose delivery to replay | |
1829
+ | **delivery_id** | **String** | The delivery to send again (must be a webhook delivery of this partner) | |
1830
+ | **idempotency_key** | **String** | Required: a call without it is refused with &#x60;400&#x60;. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | |
1831
+
1832
+ ### Return type
1833
+
1834
+ [**PartnerNotificationDeliveryResponse**](PartnerNotificationDeliveryResponse.md)
1835
+
1836
+ ### Authorization
1837
+
1838
+ [apiKeyAuth](../README.md#apiKeyAuth)
1839
+
1840
+ ### HTTP request headers
1841
+
1842
+ - **Content-Type**: Not defined
1843
+ - **Accept**: application/json
1844
+
1845
+
1846
+ ## rotate_partner_entry_context_secret_0
1847
+
1848
+ > <PartnerEntryContextSecretResponse> rotate_partner_entry_context_secret_0(partner_id, idempotency_key)
1849
+
1850
+ Make a secret to sign the context of your embeds
1851
+
1852
+ Makes a secret to sign the `context` of your embeds with, and returns it in `secret`: **keep it now, it is shown once** and cannot be read again. Keep it on your server only: whoever holds it can write contexts your compositions accept. Call this again to make a new secret; the one it replaces is still accepted for a day, so that your server can switch without an entry being refused (making another within that day ends the overlap with the first). **What signing is for.** `<widgetic composition-id=\"...\" context='{\"customerId\":\"c_42\"}'>` hands attribution to a widget, which sends it with every entry it saves. The page is yours but the browser is the visitor's: anybody can change that attribute and file an entry under another customer's id. When your server signs the context, the gateway refuses an entry whose context was changed, and the entries you keep hold attribution your server wrote. **How to sign** (on your server, for each page you render): 1. Take the context to give the widget. It may hold text and whole numbers only (within ±2^53, written without a fraction or an exponent). 2. Choose when the signature stops being good: `widgetic_exp`, in seconds since 1970 (UTC), no more than seven days from now. A minute of difference between clocks is forgiven. 3. Write the text to sign, with no spaces except those inside values: `widgetic-context.v1.<compositionId>.<widgetic_exp>.<json>`. `<compositionId>` is the id of the composition in lower case. `<json>` is the context as JSON with the keys in character-code order (so `Z` comes before `a`, and `10` before `9`), no spaces, strings escaped as JSON escapes them, and the two keys of the signature left out. 4. Sign that text: HMAC-SHA256 with the 32 bytes the secret stands for (the base64 text after `ctxsec_`), and write the result as base64url without padding. 5. Give the widget the context with two keys added: `widgetic_exp` and `widgetic_sig` (the signature). The whole attribute, the two keys included, stays within the limits of any context: at most 20 keys, 2048 bytes of JSON, strings up to 500 characters. The two keys take two of the 20 keys and 87 bytes of the 2048. A test vector, to check your code against before you rely on it. Secret `ctxsec_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=` (the bytes 0 to 31), composition `7c9e6679-7425-40de-944b-e07fc1f90ae7`, `widgetic_exp` 1792000000 and context `{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` sign the text `widgetic-context.v1.7c9e6679-7425-40de-944b-e07fc1f90ae7.1792000000.{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` and give the signature `j6g7151F54tl9C8oEY9levaYSppHME4fAPZ7WPwL8C8`. (The secret is the example's, not a real one.) **What the gateway does with an entry.** When you have a secret, an entry whose context carries a signature is checked: a signature that does not match is refused with 403 `CONTEXT_SIGNATURE_INVALID`, and one that is past `widgetic_exp` with 403 `CONTEXT_SIGNATURE_EXPIRED`. When you also require signatures (`updatePartnerEntryContextSigning`) an entry whose context carries none is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`. The two keys are taken out before the entry is stored or announced: your entries and your `entry.created` events hold the context you wrote. A change you make reaches every part of the gateway within a minute. **What it does not do.** A signed context that has been seen (a page's source is public) can be sent again by anyone until `widgetic_exp`; when you must not accept the same context twice, put a value that is new for each page view in it (a `submissionId` you made up) and keep the ones you have seen. The signature covers the entries that reach Widgetic's gateway: a row that gets into a table another way (your own code writing straight into a database you brought, or the record calls of the composition's owner) does not pass through it, and carries no context. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
1853
+
1854
+ ### Examples
1855
+
1856
+ ```ruby
1857
+ require 'time'
1858
+ require 'api-sdk-rb'
1859
+ # setup authorization
1860
+ ApiSdkRb.configure do |config|
1861
+ # Configure Bearer authorization (JWT): apiKeyAuth
1862
+ config.access_token = 'YOUR_BEARER_TOKEN'
1863
+ end
1864
+
1865
+ api_instance = ApiSdkRb::PartnersApi.new
1866
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose secret to make
1867
+ idempotency_key = '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Required: a call without it is refused with `400`. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
1868
+
1869
+ begin
1870
+ # Make a secret to sign the context of your embeds
1871
+ result = api_instance.rotate_partner_entry_context_secret_0(partner_id, idempotency_key)
1872
+ p result
1873
+ rescue ApiSdkRb::ApiError => e
1874
+ puts "Error when calling PartnersApi->rotate_partner_entry_context_secret_0: #{e}"
1875
+ end
1876
+ ```
1877
+
1878
+ #### Using the rotate_partner_entry_context_secret_0_with_http_info variant
1879
+
1880
+ This returns an Array which contains the response data, status code and headers.
1881
+
1882
+ > <Array(<PartnerEntryContextSecretResponse>, Integer, Hash)> rotate_partner_entry_context_secret_0_with_http_info(partner_id, idempotency_key)
1883
+
1884
+ ```ruby
1885
+ begin
1886
+ # Make a secret to sign the context of your embeds
1887
+ data, status_code, headers = api_instance.rotate_partner_entry_context_secret_0_with_http_info(partner_id, idempotency_key)
1888
+ p status_code # => 2xx
1889
+ p headers # => { ... }
1890
+ p data # => <PartnerEntryContextSecretResponse>
1891
+ rescue ApiSdkRb::ApiError => e
1892
+ puts "Error when calling PartnersApi->rotate_partner_entry_context_secret_0_with_http_info: #{e}"
1893
+ end
1894
+ ```
1895
+
1896
+ ### Parameters
1897
+
1898
+ | Name | Type | Description | Notes |
1899
+ | ---- | ---- | ----------- | ----- |
1900
+ | **partner_id** | **String** | The partner whose secret to make | |
1901
+ | **idempotency_key** | **String** | Required: a call without it is refused with &#x60;400&#x60;. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | |
1902
+
1903
+ ### Return type
1904
+
1905
+ [**PartnerEntryContextSecretResponse**](PartnerEntryContextSecretResponse.md)
1906
+
1907
+ ### Authorization
1908
+
1909
+ [apiKeyAuth](../README.md#apiKeyAuth)
1910
+
1911
+ ### HTTP request headers
1912
+
1913
+ - **Content-Type**: Not defined
1914
+ - **Accept**: application/json
1915
+
1916
+
1917
+ ## rotate_partner_webhook_secret_0
1918
+
1919
+ > <PartnerNotificationSettingsChangeResponse> rotate_partner_webhook_secret_0(partner_id, idempotency_key)
1920
+
1921
+ Make a new secret for your webhook
1922
+
1923
+ Makes a new secret to sign your webhook with, and returns it in `webhookSecret`: **keep it now, it is shown once** and cannot be read again. Use it when the secret was lost, or may have leaked. The secret you had keeps signing beside the new one for a day, so that your receiver can switch without a call being rejected: during that day each call carries two signatures (see `updatePartnerNotificationSettings` for how they are verified). Rotating again within the day ends the overlap with the first secret. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
1924
+
1925
+ ### Examples
1926
+
1927
+ ```ruby
1928
+ require 'time'
1929
+ require 'api-sdk-rb'
1930
+ # setup authorization
1931
+ ApiSdkRb.configure do |config|
1932
+ # Configure Bearer authorization (JWT): apiKeyAuth
1933
+ config.access_token = 'YOUR_BEARER_TOKEN'
1934
+ end
1935
+
1936
+ api_instance = ApiSdkRb::PartnersApi.new
1937
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose webhook secret to replace
1938
+ idempotency_key = '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Required: a call without it is refused with `400`. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
1939
+
1940
+ begin
1941
+ # Make a new secret for your webhook
1942
+ result = api_instance.rotate_partner_webhook_secret_0(partner_id, idempotency_key)
1943
+ p result
1944
+ rescue ApiSdkRb::ApiError => e
1945
+ puts "Error when calling PartnersApi->rotate_partner_webhook_secret_0: #{e}"
1946
+ end
1947
+ ```
1948
+
1949
+ #### Using the rotate_partner_webhook_secret_0_with_http_info variant
1950
+
1951
+ This returns an Array which contains the response data, status code and headers.
1952
+
1953
+ > <Array(<PartnerNotificationSettingsChangeResponse>, Integer, Hash)> rotate_partner_webhook_secret_0_with_http_info(partner_id, idempotency_key)
1954
+
1955
+ ```ruby
1956
+ begin
1957
+ # Make a new secret for your webhook
1958
+ data, status_code, headers = api_instance.rotate_partner_webhook_secret_0_with_http_info(partner_id, idempotency_key)
1959
+ p status_code # => 2xx
1960
+ p headers # => { ... }
1961
+ p data # => <PartnerNotificationSettingsChangeResponse>
1962
+ rescue ApiSdkRb::ApiError => e
1963
+ puts "Error when calling PartnersApi->rotate_partner_webhook_secret_0_with_http_info: #{e}"
1964
+ end
1965
+ ```
1966
+
1967
+ ### Parameters
1968
+
1969
+ | Name | Type | Description | Notes |
1970
+ | ---- | ---- | ----------- | ----- |
1971
+ | **partner_id** | **String** | The partner whose webhook secret to replace | |
1972
+ | **idempotency_key** | **String** | Required: a call without it is refused with &#x60;400&#x60;. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | |
1973
+
1974
+ ### Return type
1975
+
1976
+ [**PartnerNotificationSettingsChangeResponse**](PartnerNotificationSettingsChangeResponse.md)
1977
+
1978
+ ### Authorization
1979
+
1980
+ [apiKeyAuth](../README.md#apiKeyAuth)
1981
+
1982
+ ### HTTP request headers
1983
+
1984
+ - **Content-Type**: Not defined
1985
+ - **Accept**: application/json
1986
+
1987
+
1988
+ ## send_partner_notification_test_event_0
1989
+
1990
+ > <PartnerNotificationTestEventResultResponse> send_partner_notification_test_event_0(partner_id, idempotency_key, partner_notification_test_event_request)
1991
+
1992
+ Send a test event to your webhook
1993
+
1994
+ Sends ONE signed call, right now, to the webhook address you saved under notification settings, with a sample of what an event of the type you name carries, and answers how it went: whether your receiver answered with a 2xx status, which status, how long it took, and why not when it did not arrive. Use it to write and try your receiver (above all the signature check) before a real event happens. The call is made like every other: it is signed with your current secret (and the previous one while a rotation overlaps), it carries the headers `webhook-id`, `webhook-timestamp`, `webhook-signature` and `x-widgetic-event` (the event type), and its body is `{ \"id\", \"type\", \"createdAt\", \"partnerId\", \"data\" }`. Three things differ. `id` starts with `evt_test_` and is new every time, so a receiver that remembers ids can tell a test from an event and drop it. `data` holds made-up values of the shape a real event of that type carries (`PartnerNotification` describes each), never anything about your account. And the call is made once: it is not tried again, nothing is stored, and it appears neither in the delivery log nor in the notification list. It is sent whatever `webhookEvents` says: a test is not filtered by what you subscribed to. The answer is 200 whether or not your receiver took the call (read `delivered`); a call that gets no answer within ten seconds is given up and reported as a `timeout`. A webhook address and a signing secret must be saved first (`updatePartnerNotificationSettings`); until then the answer is 409. This needs an API key with full access, and `Idempotency-Key` is required: a retry with the same key gets the first answer back and no second call is made. The caller must be the person who administers the partner, or a Widgetic administrator. Five tests a minute.
1995
+
1996
+ ### Examples
1997
+
1998
+ ```ruby
1999
+ require 'time'
2000
+ require 'api-sdk-rb'
2001
+ # setup authorization
2002
+ ApiSdkRb.configure do |config|
2003
+ # Configure Bearer authorization (JWT): apiKeyAuth
2004
+ config.access_token = 'YOUR_BEARER_TOKEN'
2005
+ end
2006
+
2007
+ api_instance = ApiSdkRb::PartnersApi.new
2008
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose webhook to try
2009
+ idempotency_key = '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Required: a call without it is refused with `400`. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
2010
+ partner_notification_test_event_request = ApiSdkRb::PartnerNotificationTestEventRequest.new({event_type: ApiSdkRb::PartnerNotificationEventType::INVOICE_ISSUED}) # PartnerNotificationTestEventRequest |
2011
+
2012
+ begin
2013
+ # Send a test event to your webhook
2014
+ result = api_instance.send_partner_notification_test_event_0(partner_id, idempotency_key, partner_notification_test_event_request)
2015
+ p result
2016
+ rescue ApiSdkRb::ApiError => e
2017
+ puts "Error when calling PartnersApi->send_partner_notification_test_event_0: #{e}"
2018
+ end
2019
+ ```
2020
+
2021
+ #### Using the send_partner_notification_test_event_0_with_http_info variant
2022
+
2023
+ This returns an Array which contains the response data, status code and headers.
2024
+
2025
+ > <Array(<PartnerNotificationTestEventResultResponse>, Integer, Hash)> send_partner_notification_test_event_0_with_http_info(partner_id, idempotency_key, partner_notification_test_event_request)
2026
+
2027
+ ```ruby
2028
+ begin
2029
+ # Send a test event to your webhook
2030
+ data, status_code, headers = api_instance.send_partner_notification_test_event_0_with_http_info(partner_id, idempotency_key, partner_notification_test_event_request)
2031
+ p status_code # => 2xx
2032
+ p headers # => { ... }
2033
+ p data # => <PartnerNotificationTestEventResultResponse>
2034
+ rescue ApiSdkRb::ApiError => e
2035
+ puts "Error when calling PartnersApi->send_partner_notification_test_event_0_with_http_info: #{e}"
2036
+ end
2037
+ ```
2038
+
2039
+ ### Parameters
2040
+
2041
+ | Name | Type | Description | Notes |
2042
+ | ---- | ---- | ----------- | ----- |
2043
+ | **partner_id** | **String** | The partner whose webhook to try | |
2044
+ | **idempotency_key** | **String** | Required: a call without it is refused with &#x60;400&#x60;. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | |
2045
+ | **partner_notification_test_event_request** | [**PartnerNotificationTestEventRequest**](PartnerNotificationTestEventRequest.md) | | |
2046
+
2047
+ ### Return type
2048
+
2049
+ [**PartnerNotificationTestEventResultResponse**](PartnerNotificationTestEventResultResponse.md)
2050
+
2051
+ ### Authorization
2052
+
2053
+ [apiKeyAuth](../README.md#apiKeyAuth)
2054
+
2055
+ ### HTTP request headers
2056
+
2057
+ - **Content-Type**: application/json
2058
+ - **Accept**: application/json
2059
+
2060
+
2061
+ ## set_partner_adapter_connection_0
2062
+
2063
+ > <SetUserAdapterConnection200Response> set_partner_adapter_connection_0(partner_id, adapter_id, credential_key, set_adapter_connection_request)
2064
+
2065
+ Connect an adapter key to a partner
2066
+
2067
+ Gives an adapter the key it needs to act through a service the partner has an account with, for the widgets of the customers the partner manages. Take the `adapterId` and `credentialKey` from `getPartnerAdapterConnections`. Saving a key that is already connected replaces it. **What Widgetic does with it.** The key is stored encrypted, bound to this partner, this adapter and this credential, so that a stored value cannot be moved to another. It is never returned, never logged and never shown to a visitor of a widget or to your customers. A server of Widgetic opens it for the one call a widget makes through the adapter, uses it to call the provider on the partner's behalf, and discards it. To cut that off, remove the key here, or revoke it with the provider. **What is checked.** That the adapter exists and takes this credential, that a partner may keep it (some are for an owner only) and that the text is one line of at most 2048 characters. Whether the provider accepts the key is not checked here: it shows the first time a widget uses it. A widget whose adapter has no key connected is not charged and does not run that adapter: its visitors are told the feature is unavailable, and the partner is told once a day what to connect. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator. A retry is harmless: saving the same key twice only refreshes when it was set.
2068
+
2069
+ ### Examples
2070
+
2071
+ ```ruby
2072
+ require 'time'
2073
+ require 'api-sdk-rb'
2074
+ # setup authorization
2075
+ ApiSdkRb.configure do |config|
2076
+ # Configure Bearer authorization (JWT): apiKeyAuth
2077
+ config.access_token = 'YOUR_BEARER_TOKEN'
2078
+ end
2079
+
2080
+ api_instance = ApiSdkRb::PartnersApi.new
2081
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner that keeps the key
2082
+ adapter_id = 'adapter_id_example' # String | The adapter the key is for
2083
+ credential_key = 'credential_key_example' # String | The key's name within the adapter
2084
+ set_adapter_connection_request = ApiSdkRb::SetAdapterConnectionRequest.new({credential: 'YOUR_PROVIDER_KEY'}) # SetAdapterConnectionRequest |
2085
+
2086
+ begin
2087
+ # Connect an adapter key to a partner
2088
+ result = api_instance.set_partner_adapter_connection_0(partner_id, adapter_id, credential_key, set_adapter_connection_request)
2089
+ p result
2090
+ rescue ApiSdkRb::ApiError => e
2091
+ puts "Error when calling PartnersApi->set_partner_adapter_connection_0: #{e}"
2092
+ end
2093
+ ```
2094
+
2095
+ #### Using the set_partner_adapter_connection_0_with_http_info variant
2096
+
2097
+ This returns an Array which contains the response data, status code and headers.
2098
+
2099
+ > <Array(<SetUserAdapterConnection200Response>, Integer, Hash)> set_partner_adapter_connection_0_with_http_info(partner_id, adapter_id, credential_key, set_adapter_connection_request)
2100
+
2101
+ ```ruby
2102
+ begin
2103
+ # Connect an adapter key to a partner
2104
+ data, status_code, headers = api_instance.set_partner_adapter_connection_0_with_http_info(partner_id, adapter_id, credential_key, set_adapter_connection_request)
2105
+ p status_code # => 2xx
2106
+ p headers # => { ... }
2107
+ p data # => <SetUserAdapterConnection200Response>
2108
+ rescue ApiSdkRb::ApiError => e
2109
+ puts "Error when calling PartnersApi->set_partner_adapter_connection_0_with_http_info: #{e}"
2110
+ end
2111
+ ```
2112
+
2113
+ ### Parameters
2114
+
2115
+ | Name | Type | Description | Notes |
2116
+ | ---- | ---- | ----------- | ----- |
2117
+ | **partner_id** | **String** | The partner that keeps the key | |
2118
+ | **adapter_id** | **String** | The adapter the key is for | |
2119
+ | **credential_key** | **String** | The key&#39;s name within the adapter | |
2120
+ | **set_adapter_connection_request** | [**SetAdapterConnectionRequest**](SetAdapterConnectionRequest.md) | | |
2121
+
2122
+ ### Return type
2123
+
2124
+ [**SetUserAdapterConnection200Response**](SetUserAdapterConnection200Response.md)
2125
+
2126
+ ### Authorization
2127
+
2128
+ [apiKeyAuth](../README.md#apiKeyAuth)
2129
+
2130
+ ### HTTP request headers
2131
+
2132
+ - **Content-Type**: application/json
2133
+ - **Accept**: application/json
2134
+
2135
+
2136
+ ## set_partner_data_database_0
2137
+
2138
+ > <PartnerDataDatabaseResponse> set_partner_data_database_0(partner_id, set_partner_data_database_request)
2139
+
2140
+ Keep the data of a partner's compositions in a Neon database of its own
2141
+
2142
+ Points the partner at a Neon database of its own. From then on, what visitors leave in the compositions of the partner's managed users, and of the compositions made in the partner's own account (the votes, ratings, answers and form submissions of the widgets that collect them), is stored in that database and nowhere else. Widgetic's own database is not used for them any more, and nothing of it is copied there. **What to give.** The connection string of a Neon database and a role made for this, as Neon shows it under *Connect* (`postgresql://<role>:<password>@ep-<name>.<region>.aws.neon.tech/<database>`). Only Neon databases are accepted; a string for any other host is refused with 400. What the database needs: - an empty database of its own, so that nothing else of yours shares it. Widgetic makes one schema in it for each composition (named `comp_` followed by the composition's id). In that schema go the tables the widget declares for what its visitors leave, and two small tables of Widgetic's own, whose names start with `_widgetic_`: the context a host page sent with an entry, and how far Widgetic has read the entries to tell you about new ones. It touches nothing else; - a role that may create schemas and tables in it (the CREATE privilege on the database). The role Neon makes with a project has it. A role made in the Neon console can also read and write every other database of the same project, so if you keep other data in Neon give Widgetic a project of its own, or make the role with SQL (`CREATE ROLE ... LOGIN PASSWORD ...`) and grant it only the CREATE privilege on this database; - connections from anywhere: Widgetic's addresses are not fixed, so a Neon project that only accepts connections from an allow list of addresses cannot be used. A suspended compute is fine: it wakes on the first request. **It is checked before it is saved.** Widgetic makes a schema in your database, creates a table in it, writes a row, reads it back, and removes the schema again, all in one step, so that nothing is left if anything fails. If it cannot be done nothing is saved and the answer is 422 `PARTNER_DATABASE_UNVERIFIED`: `details.reason` says why (`INVALID_CREDENTIALS`, `DATABASE_NOT_FOUND`, `ACCESS_DENIED`, `ACCESS_BLOCKED`, `ENDPOINT_NOT_FOUND`, `ENDPOINT_UNREACHABLE`, `TIMEOUT`, `READ_ONLY`, `RATE_LIMITED`, `DATABASE_UNAVAILABLE`, `PROBE_MISMATCH` or `DATABASE_ERROR`) and `message` says what to do. **Existing data does not move.** The data of a composition lives in one database. If any composition of the partner already keeps data somewhere else (in Widgetic's database, or in the database you had set), and the new database does not hold it, the change is refused with 409 `PARTNER_DATABASE_HOLDS_DATA` and nothing is changed: those compositions would read as empty from then on. `details.compositionsWithData` says how many. Set your database before your customers collect data, or delete the compositions you no longer need. Saving the same database again (a new password) moves nothing and is never refused. **It is never a fallback.** Once a database is set, a request that needs it while it cannot be used (the password was changed, the project was deleted) is refused with 503 `PARTNER_DATABASE_UNAVAILABLE`. What the visitor sent is not stored with Widgetic instead. Fix the connection and set the database again, or check it with `verifyPartnerDataDatabase`. **When it takes effect.** A change reaches every part of Widgetic within about a minute. **What Widgetic keeps.** The connection string is stored encrypted and is never returned or logged; a response shows the host, the database and the role, never the password. Widgetic's servers open it to read and write the data of your compositions while they handle a request for it. To cut that off, change the role's password in Neon: the compositions stop saving until you set the new string. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator. A retry is harmless: saving the same database twice only refreshes when it was checked and saved.
2143
+
2144
+ ### Examples
2145
+
2146
+ ```ruby
2147
+ require 'time'
2148
+ require 'api-sdk-rb'
2149
+ # setup authorization
2150
+ ApiSdkRb.configure do |config|
2151
+ # Configure Bearer authorization (JWT): apiKeyAuth
2152
+ config.access_token = 'YOUR_BEARER_TOKEN'
2153
+ end
2154
+
2155
+ api_instance = ApiSdkRb::PartnersApi.new
2156
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose database to set
2157
+ set_partner_data_database_request = ApiSdkRb::SetPartnerDataDatabaseRequest.new({connection_string: 'postgresql://widgetic_data:YOUR_PASSWORD@ep-cool-name-123456.eu-central-1.aws.neon.tech/neondb'}) # SetPartnerDataDatabaseRequest |
2158
+
2159
+ begin
2160
+ # Keep the data of a partner's compositions in a Neon database of its own
2161
+ result = api_instance.set_partner_data_database_0(partner_id, set_partner_data_database_request)
2162
+ p result
2163
+ rescue ApiSdkRb::ApiError => e
2164
+ puts "Error when calling PartnersApi->set_partner_data_database_0: #{e}"
2165
+ end
2166
+ ```
2167
+
2168
+ #### Using the set_partner_data_database_0_with_http_info variant
2169
+
2170
+ This returns an Array which contains the response data, status code and headers.
2171
+
2172
+ > <Array(<PartnerDataDatabaseResponse>, Integer, Hash)> set_partner_data_database_0_with_http_info(partner_id, set_partner_data_database_request)
2173
+
2174
+ ```ruby
2175
+ begin
2176
+ # Keep the data of a partner's compositions in a Neon database of its own
2177
+ data, status_code, headers = api_instance.set_partner_data_database_0_with_http_info(partner_id, set_partner_data_database_request)
2178
+ p status_code # => 2xx
2179
+ p headers # => { ... }
2180
+ p data # => <PartnerDataDatabaseResponse>
2181
+ rescue ApiSdkRb::ApiError => e
2182
+ puts "Error when calling PartnersApi->set_partner_data_database_0_with_http_info: #{e}"
2183
+ end
2184
+ ```
2185
+
2186
+ ### Parameters
2187
+
2188
+ | Name | Type | Description | Notes |
2189
+ | ---- | ---- | ----------- | ----- |
2190
+ | **partner_id** | **String** | The partner whose database to set | |
2191
+ | **set_partner_data_database_request** | [**SetPartnerDataDatabaseRequest**](SetPartnerDataDatabaseRequest.md) | | |
2192
+
2193
+ ### Return type
2194
+
2195
+ [**PartnerDataDatabaseResponse**](PartnerDataDatabaseResponse.md)
2196
+
2197
+ ### Authorization
2198
+
2199
+ [apiKeyAuth](../README.md#apiKeyAuth)
2200
+
2201
+ ### HTTP request headers
2202
+
2203
+ - **Content-Type**: application/json
2204
+ - **Accept**: application/json
2205
+
2206
+
2207
+ ## set_partner_design_defaults_0
2208
+
2209
+ > <GetPartnerDesignDefaults200Response> set_partner_design_defaults_0(partner_id, set_partner_design_defaults_request)
2210
+
2211
+ Set or clear partner-wide design defaults
2212
+
2213
+ Send `{ \"design\": { ... } }` or `{ \"design\": null }` to remove. New compositions merge this layer over the widget base and under each managed user's default and the request body.
2214
+
2215
+ ### Examples
2216
+
2217
+ ```ruby
2218
+ require 'time'
2219
+ require 'api-sdk-rb'
2220
+ # setup authorization
2221
+ ApiSdkRb.configure do |config|
2222
+ # Configure Bearer authorization (JWT): apiKeyAuth
2223
+ config.access_token = 'YOUR_BEARER_TOKEN'
2224
+ end
2225
+
2226
+ api_instance = ApiSdkRb::PartnersApi.new
2227
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
2228
+ set_partner_design_defaults_request = ApiSdkRb::SetPartnerDesignDefaultsRequest.new({design: 3.56}) # SetPartnerDesignDefaultsRequest |
2229
+
2230
+ begin
2231
+ # Set or clear partner-wide design defaults
2232
+ result = api_instance.set_partner_design_defaults_0(partner_id, set_partner_design_defaults_request)
2233
+ p result
2234
+ rescue ApiSdkRb::ApiError => e
2235
+ puts "Error when calling PartnersApi->set_partner_design_defaults_0: #{e}"
2236
+ end
2237
+ ```
2238
+
2239
+ #### Using the set_partner_design_defaults_0_with_http_info variant
2240
+
2241
+ This returns an Array which contains the response data, status code and headers.
2242
+
2243
+ > <Array(<GetPartnerDesignDefaults200Response>, Integer, Hash)> set_partner_design_defaults_0_with_http_info(partner_id, set_partner_design_defaults_request)
2244
+
2245
+ ```ruby
2246
+ begin
2247
+ # Set or clear partner-wide design defaults
2248
+ data, status_code, headers = api_instance.set_partner_design_defaults_0_with_http_info(partner_id, set_partner_design_defaults_request)
2249
+ p status_code # => 2xx
2250
+ p headers # => { ... }
2251
+ p data # => <GetPartnerDesignDefaults200Response>
2252
+ rescue ApiSdkRb::ApiError => e
2253
+ puts "Error when calling PartnersApi->set_partner_design_defaults_0_with_http_info: #{e}"
2254
+ end
2255
+ ```
2256
+
2257
+ ### Parameters
2258
+
2259
+ | Name | Type | Description | Notes |
2260
+ | ---- | ---- | ----------- | ----- |
2261
+ | **partner_id** | **String** | | |
2262
+ | **set_partner_design_defaults_request** | [**SetPartnerDesignDefaultsRequest**](SetPartnerDesignDefaultsRequest.md) | | |
2263
+
2264
+ ### Return type
2265
+
2266
+ [**GetPartnerDesignDefaults200Response**](GetPartnerDesignDefaults200Response.md)
2267
+
2268
+ ### Authorization
2269
+
2270
+ [apiKeyAuth](../README.md#apiKeyAuth)
2271
+
2272
+ ### HTTP request headers
2273
+
2274
+ - **Content-Type**: application/json
2275
+ - **Accept**: application/json
2276
+
2277
+
2278
+ ## set_partner_preset_0
2279
+
2280
+ > <PartnerPresetResponse> set_partner_preset_0(partner_id, key, set_partner_preset_request)
2281
+
2282
+ Make a widget a preset, or replace a preset
2283
+
2284
+ Offers one of the partner's own widgets as a preset under `key`. If the partner already has a preset under that key it is replaced, so sending the same request twice is safe. Saving replaces the whole preset: a `title`, `description` or `position` you leave out goes back to its default. Keys are 1 to 64 characters: lowercase letters, digits, hyphens and underscores, the first a letter or a digit (`rating`, `quiz-3`). The widget must belong to the partner's account; a widget that does not exist and one that belongs to somebody else are refused in the same way (404 `PRESET_WIDGET_NOT_FOUND`). A widget is a preset under at most one key (409 `PRESET_WIDGET_ALREADY_USED`; `details.key` says which), and an account can have at most 100 presets (409 `PRESET_LIMIT_REACHED`). Later changes to the widget reach new copies and new compositions; copies made earlier are not touched. Deleting the widget removes its preset.
2285
+
2286
+ ### Examples
2287
+
2288
+ ```ruby
2289
+ require 'time'
2290
+ require 'api-sdk-rb'
2291
+ # setup authorization
2292
+ ApiSdkRb.configure do |config|
2293
+ # Configure Bearer authorization (JWT): apiKeyAuth
2294
+ config.access_token = 'YOUR_BEARER_TOKEN'
2295
+ end
2296
+
2297
+ api_instance = ApiSdkRb::PartnersApi.new
2298
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose preset to set
2299
+ key = 'key_example' # String | The name your code uses for the preset
2300
+ set_partner_preset_request = ApiSdkRb::SetPartnerPresetRequest.new({widget_id: 'widget_id_example'}) # SetPartnerPresetRequest |
2301
+
2302
+ begin
2303
+ # Make a widget a preset, or replace a preset
2304
+ result = api_instance.set_partner_preset_0(partner_id, key, set_partner_preset_request)
2305
+ p result
2306
+ rescue ApiSdkRb::ApiError => e
2307
+ puts "Error when calling PartnersApi->set_partner_preset_0: #{e}"
2308
+ end
2309
+ ```
2310
+
2311
+ #### Using the set_partner_preset_0_with_http_info variant
2312
+
2313
+ This returns an Array which contains the response data, status code and headers.
2314
+
2315
+ > <Array(<PartnerPresetResponse>, Integer, Hash)> set_partner_preset_0_with_http_info(partner_id, key, set_partner_preset_request)
2316
+
2317
+ ```ruby
2318
+ begin
2319
+ # Make a widget a preset, or replace a preset
2320
+ data, status_code, headers = api_instance.set_partner_preset_0_with_http_info(partner_id, key, set_partner_preset_request)
2321
+ p status_code # => 2xx
2322
+ p headers # => { ... }
2323
+ p data # => <PartnerPresetResponse>
2324
+ rescue ApiSdkRb::ApiError => e
2325
+ puts "Error when calling PartnersApi->set_partner_preset_0_with_http_info: #{e}"
2326
+ end
2327
+ ```
2328
+
2329
+ ### Parameters
2330
+
2331
+ | Name | Type | Description | Notes |
2332
+ | ---- | ---- | ----------- | ----- |
2333
+ | **partner_id** | **String** | The partner whose preset to set | |
2334
+ | **key** | **String** | The name your code uses for the preset | |
2335
+ | **set_partner_preset_request** | [**SetPartnerPresetRequest**](SetPartnerPresetRequest.md) | | |
2336
+
2337
+ ### Return type
2338
+
2339
+ [**PartnerPresetResponse**](PartnerPresetResponse.md)
2340
+
2341
+ ### Authorization
2342
+
2343
+ [apiKeyAuth](../README.md#apiKeyAuth)
2344
+
2345
+ ### HTTP request headers
2346
+
2347
+ - **Content-Type**: application/json
2348
+ - **Accept**: application/json
2349
+
2350
+
2351
+ ## set_partner_storage_destination_0
2352
+
2353
+ > <PartnerStorageDestinationResponse> set_partner_storage_destination_0(partner_id, set_partner_storage_destination_request)
2354
+
2355
+ Set where a partner's uploaded files are stored
2356
+
2357
+ Points the partner at a bucket of its own on an S3-compatible service (Cloudflare R2, Amazon S3, Wasabi, MinIO and the like). From then on, every file the account that administers the partner stores is kept in that bucket instead of with Widgetic, whichever way it arrives: a file sent with `uploadsPost` (with an API key, an SDK token, an editor session or from the Widgetic website), a resumable upload, the media library, and the files the agent tools and the MCP server save. It takes none of the account's storage allowance, and its `url` is served from `publicBaseUrl`. The chunks of a resumable upload wait in Widgetic's temporary staging area until it is completed and are removed then: the finished file is stored in your bucket and nowhere else. A destination is required. Partner storage is not optional: your customers' files, and your own however they arrive, are kept in this destination and nowhere else. An editor session (`createManagedUserEditorSession`) of any surface cannot be made until a destination is set (409 `PARTNER_STORAGE_REQUIRED`), a destination removed later stops the uploads of the sessions already made (the same 409), and your own upload with no destination (on any route, including a resumable upload, which is refused when it is started) is refused in the same way instead of being stored with Widgetic. A partner cannot be activated until it has a destination that works. The destination is checked before it is saved. Widgetic writes a small test file under `<keyPrefix>widgetic-check/`, reads it back from `<publicBaseUrl>/<its key>`, and deletes it. If any step fails nothing is saved and the answer is 422 `STORAGE_DESTINATION_UNVERIFIED`: `details.step` says where (`endpoint`, `write` or `public_read`), `details.reason` says why, and `param` names the field most likely to be wrong. What the bucket needs: - an access key that may put objects into it (it may also delete objects, which lets the test file be cleaned up, but that is not required); - its files publicly readable at `publicBaseUrl`, either because the bucket is public or through a CDN. The secret access key is stored encrypted and is never returned or logged; a response shows only the last four characters of the access key id (`accessKeyHint`). Saving replaces the whole destination, so send every field again, including the secret. Files already stored stay where they are, and keep working for as long as that bucket stays publicly readable. Once a destination is set, an upload is never stored with Widgetic instead: when the destination cannot be used the upload is refused with 503 `STORAGE_DESTINATION_UNAVAILABLE`, and when the bucket rejects the file with 502 `STORAGE_DESTINATION_WRITE_FAILED`. The caller must be the person who administers the partner (an API key of that account works); anyone else is refused with 403 whether or not the partner exists. Widgetic administrators can set any partner's.
2358
+
2359
+ ### Examples
2360
+
2361
+ ```ruby
2362
+ require 'time'
2363
+ require 'api-sdk-rb'
2364
+ # setup authorization
2365
+ ApiSdkRb.configure do |config|
2366
+ # Configure Bearer authorization (JWT): apiKeyAuth
2367
+ config.access_token = 'YOUR_BEARER_TOKEN'
2368
+ end
2369
+
2370
+ api_instance = ApiSdkRb::PartnersApi.new
2371
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose storage destination to set
2372
+ set_partner_storage_destination_request = ApiSdkRb::SetPartnerStorageDestinationRequest.new({endpoint: 'https://abc123.r2.cloudflarestorage.com', region: 'auto', bucket: 'acme-widget-media', public_base_url: 'https://media.example.com', access_key_id: 'access_key_id_example', secret_access_key: 'secret_access_key_example'}) # SetPartnerStorageDestinationRequest |
2373
+
2374
+ begin
2375
+ # Set where a partner's uploaded files are stored
2376
+ result = api_instance.set_partner_storage_destination_0(partner_id, set_partner_storage_destination_request)
2377
+ p result
2378
+ rescue ApiSdkRb::ApiError => e
2379
+ puts "Error when calling PartnersApi->set_partner_storage_destination_0: #{e}"
2380
+ end
2381
+ ```
2382
+
2383
+ #### Using the set_partner_storage_destination_0_with_http_info variant
2384
+
2385
+ This returns an Array which contains the response data, status code and headers.
2386
+
2387
+ > <Array(<PartnerStorageDestinationResponse>, Integer, Hash)> set_partner_storage_destination_0_with_http_info(partner_id, set_partner_storage_destination_request)
2388
+
2389
+ ```ruby
2390
+ begin
2391
+ # Set where a partner's uploaded files are stored
2392
+ data, status_code, headers = api_instance.set_partner_storage_destination_0_with_http_info(partner_id, set_partner_storage_destination_request)
2393
+ p status_code # => 2xx
2394
+ p headers # => { ... }
2395
+ p data # => <PartnerStorageDestinationResponse>
2396
+ rescue ApiSdkRb::ApiError => e
2397
+ puts "Error when calling PartnersApi->set_partner_storage_destination_0_with_http_info: #{e}"
2398
+ end
2399
+ ```
2400
+
2401
+ ### Parameters
2402
+
2403
+ | Name | Type | Description | Notes |
2404
+ | ---- | ---- | ----------- | ----- |
2405
+ | **partner_id** | **String** | The partner whose storage destination to set | |
2406
+ | **set_partner_storage_destination_request** | [**SetPartnerStorageDestinationRequest**](SetPartnerStorageDestinationRequest.md) | | |
2407
+
2408
+ ### Return type
2409
+
2410
+ [**PartnerStorageDestinationResponse**](PartnerStorageDestinationResponse.md)
2411
+
2412
+ ### Authorization
2413
+
2414
+ [apiKeyAuth](../README.md#apiKeyAuth)
2415
+
2416
+ ### HTTP request headers
2417
+
2418
+ - **Content-Type**: application/json
2419
+ - **Accept**: application/json
2420
+
2421
+
2422
+ ## update_partner_entry_context_signing_0
2423
+
2424
+ > <PartnerEntryContextSigningResponse> update_partner_entry_context_signing_0(partner_id, update_partner_entry_context_signing_request, opts)
2425
+
2426
+ Require a signed context, or stop requiring it
2427
+
2428
+ Chooses what the gateway does with an entry whose `context` carries no valid signature. With `required: false` (the default) an entry that carries a signature is checked and refused when the signature is wrong or out of date, and an entry that carries none is accepted, as it always was. With `required: true` an entry without a valid signature is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`: use it once every page of yours that embeds a composition signs its context. Signatures cannot be required before you have made a secret (`rotatePartnerEntryContextSecret`): the answer is 409, so that you cannot lock your own compositions out of taking entries. The change reaches every part of the gateway within a minute. Saving the same choice twice leaves the same state, so a retry is harmless and `Idempotency-Key` is optional. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
2429
+
2430
+ ### Examples
2431
+
2432
+ ```ruby
2433
+ require 'time'
2434
+ require 'api-sdk-rb'
2435
+ # setup authorization
2436
+ ApiSdkRb.configure do |config|
2437
+ # Configure Bearer authorization (JWT): apiKeyAuth
2438
+ config.access_token = 'YOUR_BEARER_TOKEN'
2439
+ end
2440
+
2441
+ api_instance = ApiSdkRb::PartnersApi.new
2442
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose context signing to change
2443
+ update_partner_entry_context_signing_request = ApiSdkRb::UpdatePartnerEntryContextSigningRequest.new({required: false}) # UpdatePartnerEntryContextSigningRequest |
2444
+ opts = {
2445
+ idempotency_key: '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Optional: without it the call is carried out every time it is sent. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
2446
+ }
2447
+
2448
+ begin
2449
+ # Require a signed context, or stop requiring it
2450
+ result = api_instance.update_partner_entry_context_signing_0(partner_id, update_partner_entry_context_signing_request, opts)
2451
+ p result
2452
+ rescue ApiSdkRb::ApiError => e
2453
+ puts "Error when calling PartnersApi->update_partner_entry_context_signing_0: #{e}"
2454
+ end
2455
+ ```
2456
+
2457
+ #### Using the update_partner_entry_context_signing_0_with_http_info variant
2458
+
2459
+ This returns an Array which contains the response data, status code and headers.
2460
+
2461
+ > <Array(<PartnerEntryContextSigningResponse>, Integer, Hash)> update_partner_entry_context_signing_0_with_http_info(partner_id, update_partner_entry_context_signing_request, opts)
2462
+
2463
+ ```ruby
2464
+ begin
2465
+ # Require a signed context, or stop requiring it
2466
+ data, status_code, headers = api_instance.update_partner_entry_context_signing_0_with_http_info(partner_id, update_partner_entry_context_signing_request, opts)
2467
+ p status_code # => 2xx
2468
+ p headers # => { ... }
2469
+ p data # => <PartnerEntryContextSigningResponse>
2470
+ rescue ApiSdkRb::ApiError => e
2471
+ puts "Error when calling PartnersApi->update_partner_entry_context_signing_0_with_http_info: #{e}"
2472
+ end
2473
+ ```
2474
+
2475
+ ### Parameters
2476
+
2477
+ | Name | Type | Description | Notes |
2478
+ | ---- | ---- | ----------- | ----- |
2479
+ | **partner_id** | **String** | The partner whose context signing to change | |
2480
+ | **update_partner_entry_context_signing_request** | [**UpdatePartnerEntryContextSigningRequest**](UpdatePartnerEntryContextSigningRequest.md) | | |
2481
+ | **idempotency_key** | **String** | Optional: without it the call is carried out every time it is sent. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | [optional] |
2482
+
2483
+ ### Return type
2484
+
2485
+ [**PartnerEntryContextSigningResponse**](PartnerEntryContextSigningResponse.md)
2486
+
2487
+ ### Authorization
2488
+
2489
+ [apiKeyAuth](../README.md#apiKeyAuth)
2490
+
2491
+ ### HTTP request headers
2492
+
2493
+ - **Content-Type**: application/json
2494
+ - **Accept**: application/json
2495
+
2496
+
2497
+ ## update_partner_notification_settings_0
2498
+
2499
+ > <PartnerNotificationSettingsChangeResponse> update_partner_notification_settings_0(partner_id, update_partner_notification_settings_request, opts)
2500
+
2501
+ Choose where your notifications go
2502
+
2503
+ Changes who gets the emails, which events you want by email and by webhook, and the address of your webhook. A key you leave out of the body is left as it was; send only what changes. **Email.** `emailRecipients` is the list of addresses (at most five). While it is empty the emails about invoices go to the billing emails of your billing profile (your contact email when there are none), and the others to your contact email. The events about money and about the standing of your account are always emailed, whatever `emailEvents` says; it narrows the others. **Webhook.** `webhookUrl` is where Widgetic sends a signed `POST` for each event, so that your own system can act on it (mark an invoice paid, warn your team that credits are low). The address must be `https` on the standard port, on a public site, and must not redirect. Setting an address when you have no secret yet makes one, and the answer carries it as `webhookSecret`: **keep it now, it is shown once**. `webhookEvents` narrows what is sent. Each call has a JSON body, `{ \"id\": \"evt_...\", \"type\": \"invoice.paid\", \"createdAt\": \"...\", \"partnerId\": \"...\", \"data\": { ... } }` (`data` is the `data` of `PartnerNotification`), and these headers: `webhook-id` (the same as `id`, and the same on every retry), `webhook-timestamp` (seconds since 1970) and `webhook-signature` (`v1,` and a base64 HMAC-SHA256). It is the Standard Webhooks scheme, so any of its libraries verifies it. By hand: take your secret without the `whsec_` prefix, decode it from base64, and sign the text `<webhook-id>.<webhook-timestamp>.<the raw body>` with it; the header holds `v1,<base64 of the result>` (two signatures separated by a space while a rotated secret overlaps). Reject a `webhook-timestamp` that is more than five minutes old. Answer with a 2xx status within ten seconds. Anything else is tried again, eight attempts in all over about two days (`listPartnerNotificationDeliveries` shows each). Delivery is at least once: if your answer was lost the same event arrives again with the same `id`, so drop what you have already handled by it. Changing the settings needs an API key with full access: they decide where your notifications go. The caller must be the person who administers the partner, or a Widgetic administrator.
2504
+
2505
+ ### Examples
2506
+
2507
+ ```ruby
2508
+ require 'time'
2509
+ require 'api-sdk-rb'
2510
+ # setup authorization
2511
+ ApiSdkRb.configure do |config|
2512
+ # Configure Bearer authorization (JWT): apiKeyAuth
2513
+ config.access_token = 'YOUR_BEARER_TOKEN'
2514
+ end
2515
+
2516
+ api_instance = ApiSdkRb::PartnersApi.new
2517
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose notification settings to change
2518
+ update_partner_notification_settings_request = ApiSdkRb::UpdatePartnerNotificationSettingsRequest.new # UpdatePartnerNotificationSettingsRequest |
2519
+ opts = {
2520
+ idempotency_key: '9b2d6f0a-3c41-4e5a-8d77-1f2e3a4b5c6d' # String | Optional: without it the call is carried out every time it is sent. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, `-` and `_`. Send the same key again when you retry (after a timeout, a dropped connection or a `5xx`) and the call is carried out once: the retry gets the first answer back, marked `X-Idempotency-Cached: true`. The same key with a different body is refused with `422`, and a retry that arrives while the first call is still running with `409` (see `Retry-After`).
2521
+ }
2522
+
2523
+ begin
2524
+ # Choose where your notifications go
2525
+ result = api_instance.update_partner_notification_settings_0(partner_id, update_partner_notification_settings_request, opts)
2526
+ p result
2527
+ rescue ApiSdkRb::ApiError => e
2528
+ puts "Error when calling PartnersApi->update_partner_notification_settings_0: #{e}"
2529
+ end
2530
+ ```
2531
+
2532
+ #### Using the update_partner_notification_settings_0_with_http_info variant
2533
+
2534
+ This returns an Array which contains the response data, status code and headers.
2535
+
2536
+ > <Array(<PartnerNotificationSettingsChangeResponse>, Integer, Hash)> update_partner_notification_settings_0_with_http_info(partner_id, update_partner_notification_settings_request, opts)
2537
+
2538
+ ```ruby
2539
+ begin
2540
+ # Choose where your notifications go
2541
+ data, status_code, headers = api_instance.update_partner_notification_settings_0_with_http_info(partner_id, update_partner_notification_settings_request, opts)
2542
+ p status_code # => 2xx
2543
+ p headers # => { ... }
2544
+ p data # => <PartnerNotificationSettingsChangeResponse>
2545
+ rescue ApiSdkRb::ApiError => e
2546
+ puts "Error when calling PartnersApi->update_partner_notification_settings_0_with_http_info: #{e}"
2547
+ end
2548
+ ```
2549
+
2550
+ ### Parameters
2551
+
2552
+ | Name | Type | Description | Notes |
2553
+ | ---- | ---- | ----------- | ----- |
2554
+ | **partner_id** | **String** | The partner whose notification settings to change | |
2555
+ | **update_partner_notification_settings_request** | [**UpdatePartnerNotificationSettingsRequest**](UpdatePartnerNotificationSettingsRequest.md) | | |
2556
+ | **idempotency_key** | **String** | Optional: without it the call is carried out every time it is sent. A key of your own that names this one request; a UUID is ideal. It is 8 to 50 characters of letters, digits, &#x60;-&#x60; and &#x60;_&#x60;. Send the same key again when you retry (after a timeout, a dropped connection or a &#x60;5xx&#x60;) and the call is carried out once: the retry gets the first answer back, marked &#x60;X-Idempotency-Cached: true&#x60;. The same key with a different body is refused with &#x60;422&#x60;, and a retry that arrives while the first call is still running with &#x60;409&#x60; (see &#x60;Retry-After&#x60;). | [optional] |
2557
+
2558
+ ### Return type
2559
+
2560
+ [**PartnerNotificationSettingsChangeResponse**](PartnerNotificationSettingsChangeResponse.md)
2561
+
2562
+ ### Authorization
2563
+
2564
+ [apiKeyAuth](../README.md#apiKeyAuth)
2565
+
2566
+ ### HTTP request headers
2567
+
2568
+ - **Content-Type**: application/json
2569
+ - **Accept**: application/json
2570
+
2571
+
2572
+ ## verify_partner_data_database_0
2573
+
2574
+ > <PartnerDataDatabaseResponse> verify_partner_data_database_0(partner_id)
2575
+
2576
+ Check that a partner's own database still works
2577
+
2578
+ Runs the same check as `setPartnerDataDatabase` against the database already saved: a schema is made in it, a table created, a row written and read back, and the schema removed again. Use it after changing the role's password or the project's settings in Neon, or when saving is failing with 503 `PARTNER_DATABASE_UNAVAILABLE`. The result is recorded either way. A pass refreshes `verifiedAt` and clears `lastVerificationError`; a failure answers 422 `PARTNER_DATABASE_UNVERIFIED` and is recorded in `lastVerificationError` and `lastVerificationFailedAt`, so the database shows what went wrong the next time it is read. A failed check does not remove the database. `details.reason` is one of the reasons `setPartnerDataDatabase` lists, or `STORED_STRING_UNREADABLE` when the connection string Widgetic stored can no longer be read: set the database again, with its connection string. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
2579
+
2580
+ ### Examples
2581
+
2582
+ ```ruby
2583
+ require 'time'
2584
+ require 'api-sdk-rb'
2585
+ # setup authorization
2586
+ ApiSdkRb.configure do |config|
2587
+ # Configure Bearer authorization (JWT): apiKeyAuth
2588
+ config.access_token = 'YOUR_BEARER_TOKEN'
2589
+ end
2590
+
2591
+ api_instance = ApiSdkRb::PartnersApi.new
2592
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose database to check
2593
+
2594
+ begin
2595
+ # Check that a partner's own database still works
2596
+ result = api_instance.verify_partner_data_database_0(partner_id)
2597
+ p result
2598
+ rescue ApiSdkRb::ApiError => e
2599
+ puts "Error when calling PartnersApi->verify_partner_data_database_0: #{e}"
2600
+ end
2601
+ ```
2602
+
2603
+ #### Using the verify_partner_data_database_0_with_http_info variant
2604
+
2605
+ This returns an Array which contains the response data, status code and headers.
2606
+
2607
+ > <Array(<PartnerDataDatabaseResponse>, Integer, Hash)> verify_partner_data_database_0_with_http_info(partner_id)
2608
+
2609
+ ```ruby
2610
+ begin
2611
+ # Check that a partner's own database still works
2612
+ data, status_code, headers = api_instance.verify_partner_data_database_0_with_http_info(partner_id)
2613
+ p status_code # => 2xx
2614
+ p headers # => { ... }
2615
+ p data # => <PartnerDataDatabaseResponse>
2616
+ rescue ApiSdkRb::ApiError => e
2617
+ puts "Error when calling PartnersApi->verify_partner_data_database_0_with_http_info: #{e}"
2618
+ end
2619
+ ```
2620
+
2621
+ ### Parameters
2622
+
2623
+ | Name | Type | Description | Notes |
2624
+ | ---- | ---- | ----------- | ----- |
2625
+ | **partner_id** | **String** | The partner whose database to check | |
2626
+
2627
+ ### Return type
2628
+
2629
+ [**PartnerDataDatabaseResponse**](PartnerDataDatabaseResponse.md)
2630
+
2631
+ ### Authorization
2632
+
2633
+ [apiKeyAuth](../README.md#apiKeyAuth)
2634
+
2635
+ ### HTTP request headers
2636
+
2637
+ - **Content-Type**: Not defined
2638
+ - **Accept**: application/json
2639
+
2640
+
2641
+ ## verify_partner_storage_destination_0
2642
+
2643
+ > <PartnerStorageDestinationResponse> verify_partner_storage_destination_0(partner_id)
2644
+
2645
+ Check that a partner's storage destination still works
2646
+
2647
+ Runs the same check as `setPartnerStorageDestination` against the destination already saved: a test file is written, read back from the public address and deleted. Use it after rotating a key or changing a bucket policy, or when uploads are failing with 502 or 503. The result is recorded either way. A pass refreshes `verifiedAt` and clears `lastVerificationError`; a failure answers 422 `STORAGE_DESTINATION_UNVERIFIED` and is recorded in `lastVerificationError` and `lastVerificationFailedAt`, so the destination shows what went wrong the next time it is read. A failed check does not remove the destination or stop uploads from using it. The caller must be the person who administers the partner, or a Widgetic administrator.
2648
+
2649
+ ### Examples
2650
+
2651
+ ```ruby
2652
+ require 'time'
2653
+ require 'api-sdk-rb'
2654
+ # setup authorization
2655
+ ApiSdkRb.configure do |config|
2656
+ # Configure Bearer authorization (JWT): apiKeyAuth
2657
+ config.access_token = 'YOUR_BEARER_TOKEN'
2658
+ end
2659
+
2660
+ api_instance = ApiSdkRb::PartnersApi.new
2661
+ partner_id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String | The partner whose storage destination to check
2662
+
2663
+ begin
2664
+ # Check that a partner's storage destination still works
2665
+ result = api_instance.verify_partner_storage_destination_0(partner_id)
2666
+ p result
2667
+ rescue ApiSdkRb::ApiError => e
2668
+ puts "Error when calling PartnersApi->verify_partner_storage_destination_0: #{e}"
2669
+ end
2670
+ ```
2671
+
2672
+ #### Using the verify_partner_storage_destination_0_with_http_info variant
2673
+
2674
+ This returns an Array which contains the response data, status code and headers.
2675
+
2676
+ > <Array(<PartnerStorageDestinationResponse>, Integer, Hash)> verify_partner_storage_destination_0_with_http_info(partner_id)
2677
+
2678
+ ```ruby
2679
+ begin
2680
+ # Check that a partner's storage destination still works
2681
+ data, status_code, headers = api_instance.verify_partner_storage_destination_0_with_http_info(partner_id)
2682
+ p status_code # => 2xx
2683
+ p headers # => { ... }
2684
+ p data # => <PartnerStorageDestinationResponse>
2685
+ rescue ApiSdkRb::ApiError => e
2686
+ puts "Error when calling PartnersApi->verify_partner_storage_destination_0_with_http_info: #{e}"
2687
+ end
2688
+ ```
2689
+
2690
+ ### Parameters
2691
+
2692
+ | Name | Type | Description | Notes |
2693
+ | ---- | ---- | ----------- | ----- |
2694
+ | **partner_id** | **String** | The partner whose storage destination to check | |
2695
+
2696
+ ### Return type
2697
+
2698
+ [**PartnerStorageDestinationResponse**](PartnerStorageDestinationResponse.md)
2699
+
2700
+ ### Authorization
2701
+
2702
+ [apiKeyAuth](../README.md#apiKeyAuth)
2703
+
2704
+ ### HTTP request headers
2705
+
2706
+ - **Content-Type**: Not defined
2707
+ - **Accept**: application/json
2708
+