bella_baxter 0.1.1.pre.preview.124 → 0.1.1.pre.preview.127

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -42
  3. data/lib/bella_baxter/e2ee.rb +13 -4
  4. data/lib/bella_baxter/e2ee_faraday_middleware.rb +85 -24
  5. data/lib/bella_baxter/errors.rb +26 -0
  6. data/lib/bella_baxter/generated/api/tenants/invites/item/accept/accept_request_builder.rb +2 -0
  7. data/lib/bella_baxter/generated/api/tenants/invites/item/address_verification/address_verification_request_builder.rb +1 -0
  8. data/lib/bella_baxter/generated/api/tenants/invites/item/preview/preview_request_builder.rb +4 -1
  9. data/lib/bella_baxter/generated/api/tenants/item/invites/invites_request_builder.rb +7 -3
  10. data/lib/bella_baxter/generated/api/tenants/item/invites/item/replacement/replacement_request_builder.rb +4 -2
  11. data/lib/bella_baxter/generated/api/tenants/item/invites/item/with_token_item_request_builder.rb +7 -4
  12. data/lib/bella_baxter/generated/api/tenants/item/item_request_builder.rb +58 -0
  13. data/lib/bella_baxter/generated/api/tenants/item/settings/settings_request_builder.rb +7 -3
  14. data/lib/bella_baxter/generated/api/tenants/item/switch/switch_request_builder.rb +7 -3
  15. data/lib/bella_baxter/generated/api/tenants/item/users/item/role/role_request_builder.rb +6 -3
  16. data/lib/bella_baxter/generated/api/tenants/item/users/item/with_user_item_request_builder.rb +8 -4
  17. data/lib/bella_baxter/generated/api/tenants/item/users/users_request_builder.rb +6 -3
  18. data/lib/bella_baxter/generated/api/tenants/item/verify_access/verify_access_request_builder.rb +7 -3
  19. data/lib/bella_baxter/generated/api/tenants/my_tenants/my_tenants_request_builder.rb +5 -1
  20. data/lib/bella_baxter/generated/api/tenants/new/new_request_builder.rb +6 -1
  21. data/lib/bella_baxter/generated/api/tenants/tenants_request_builder.rb +8 -107
  22. data/lib/bella_baxter/generated/api/users/handshake/handshake_request_builder.rb +4 -1
  23. data/lib/bella_baxter/generated/api/v1/access_logs/access_logs_request_builder.rb +4 -1
  24. data/lib/bella_baxter/generated/api/v1/admin/admin_request_builder.rb +0 -6
  25. data/lib/bella_baxter/generated/api/v1/admin/change_password/change_password_request_builder.rb +6 -1
  26. data/lib/bella_baxter/generated/api/v1/admin/users/item/users_item_request_builder.rb +4 -1
  27. data/lib/bella_baxter/generated/api/v1/admin/users/users_request_builder.rb +3 -2
  28. data/lib/bella_baxter/generated/api/v1/api_keys/api_keys_request_builder.rb +5 -1
  29. data/lib/bella_baxter/generated/api/v1/api_keys/item/api_keys_item_request_builder.rb +10 -3
  30. data/lib/bella_baxter/generated/api/v1/api_keys/item/device/device_request_builder.rb +6 -1
  31. data/lib/bella_baxter/generated/api/v1/api_keys/item/toggle_status/toggle_status_request_builder.rb +4 -1
  32. data/lib/bella_baxter/generated/api/v1/audit_stream/destination/deliveries/deliveries_request_builder.rb +5 -1
  33. data/lib/bella_baxter/generated/api/v1/audit_stream/destination/destination_request_builder.rb +21 -5
  34. data/lib/bella_baxter/generated/api/v1/audit_stream/destination/replays/item/with_replay_item_request_builder.rb +10 -3
  35. data/lib/bella_baxter/generated/api/v1/audit_stream/destination/replays/replays_request_builder.rb +7 -1
  36. data/lib/bella_baxter/generated/api/v1/audit_stream/destination/test/test_request_builder.rb +5 -1
  37. data/lib/bella_baxter/generated/api/v1/auth/sso_hint/sso_hint_request_builder.rb +4 -1
  38. data/lib/bella_baxter/generated/api/v1/auth/token/token_request_builder.rb +5 -1
  39. data/lib/bella_baxter/generated/api/v1/billing/checkout/checkout_request_builder.rb +5 -1
  40. data/lib/bella_baxter/generated/api/v1/billing/portal/portal_request_builder.rb +5 -1
  41. data/lib/bella_baxter/generated/api/v1/cert_rotation/logs/logs_request_builder.rb +4 -1
  42. data/lib/bella_baxter/generated/api/v1/dashboard/dashboard_request_builder.rb +4 -1
  43. data/lib/bella_baxter/generated/api/v1/environments/item/api_keys/api_keys_request_builder.rb +9 -2
  44. data/lib/bella_baxter/generated/api/v1/environments/item/drift/drift_request_builder.rb +4 -1
  45. data/lib/bella_baxter/generated/api/v1/environments/item/jwt_bundle/jwt_bundle_request_builder.rb +5 -1
  46. data/lib/bella_baxter/generated/api/v1/environments/item/notifications/notifications_request_builder.rb +4 -1
  47. data/lib/bella_baxter/generated/api/v1/environments/item/secret_drift_summary/secret_drift_summary_request_builder.rb +4 -1
  48. data/lib/bella_baxter/generated/api/v1/environments/item/security/scan/scan_request_builder.rb +4 -1
  49. data/lib/bella_baxter/generated/api/v1/environments/item/security/security_request_builder.rb +4 -1
  50. data/lib/bella_baxter/generated/api/v1/environments/item/svid/exchange/exchange_request_builder.rb +6 -1
  51. data/lib/bella_baxter/generated/api/v1/environments/item/token/token_request_builder.rb +8 -1
  52. data/lib/bella_baxter/generated/api/v1/environments/item/tokens/issue/issue_request_builder.rb +5 -1
  53. data/lib/bella_baxter/generated/api/v1/environments/item/trust_bundle/trust_bundle_request_builder.rb +4 -1
  54. data/lib/bella_baxter/generated/api/v1/environments/item/trust_domains/item/trust_domains_item_request_builder.rb +9 -3
  55. data/lib/bella_baxter/generated/api/v1/environments/item/trust_domains/trust_domains_request_builder.rb +6 -1
  56. data/lib/bella_baxter/generated/api/v1/environments/item/webhooks/webhooks_request_builder.rb +4 -1
  57. data/lib/bella_baxter/generated/api/v1/environments/item/workload_identities/attest/attest_request_builder.rb +6 -1
  58. data/lib/bella_baxter/generated/api/v1/environments/item/workload_identities/jwt_svid/jwt_svid_request_builder.rb +6 -1
  59. data/lib/bella_baxter/generated/api/v1/events/stream/stream_request_builder.rb +1 -1
  60. data/lib/bella_baxter/generated/api/v1/groups/groups_request_builder.rb +2 -2
  61. data/lib/bella_baxter/generated/api/v1/groups/item/groups_item_request_builder.rb +8 -2
  62. data/lib/bella_baxter/generated/api/v1/groups/item/members/item/with_user_item_request_builder.rb +4 -1
  63. data/lib/bella_baxter/generated/api/v1/groups/item/members/members_request_builder.rb +7 -2
  64. data/lib/bella_baxter/generated/api/v1/keys/me/me_request_builder.rb +5 -1
  65. data/lib/bella_baxter/generated/api/v1/me/api_keys/api_keys_request_builder.rb +9 -2
  66. data/lib/bella_baxter/generated/api/v1/me/api_keys/item/api_keys_item_request_builder.rb +5 -1
  67. data/lib/bella_baxter/generated/api/v1/me/mcp_connections/item/mcp_connections_item_request_builder.rb +6 -2
  68. data/lib/bella_baxter/generated/api/v1/me/mcp_connections/mcp_connections_request_builder.rb +4 -1
  69. data/lib/bella_baxter/generated/api/v1/notifications/item/notifications_item_request_builder.rb +9 -2
  70. data/lib/bella_baxter/generated/api/v1/notifications/item/test/test_request_builder.rb +5 -1
  71. data/lib/bella_baxter/generated/api/v1/notifications/item/toggle/toggle_request_builder.rb +5 -1
  72. data/lib/bella_baxter/generated/api/v1/notifications/item/update/update_request_builder.rb +6 -1
  73. data/lib/bella_baxter/generated/api/v1/notifications/notifications_request_builder.rb +7 -1
  74. data/lib/bella_baxter/generated/api/v1/projects/import/import_request_builder.rb +5 -1
  75. data/lib/bella_baxter/generated/api/v1/projects/item/encryption_key/encryption_key_request_builder.rb +4 -1
  76. data/lib/bella_baxter/generated/api/v1/projects/item/encryption_key/provision/provision_request_builder.rb +6 -1
  77. data/lib/bella_baxter/generated/api/v1/projects/item/encryption_key/rotate/rotate_request_builder.rb +6 -1
  78. data/lib/bella_baxter/generated/api/v1/projects/item/environments/environments_request_builder.rb +5 -1
  79. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/audience_readiness/audience_readiness_request_builder.rb +1 -0
  80. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/cert_rotation/cert_rotation_request_builder.rb +11 -4
  81. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/cert_rotation/item/cancel/cancel_request_builder.rb +5 -2
  82. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/cert_rotation/item/report/pdf/pdf_request_builder.rb +5 -2
  83. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/cert_rotation/item/report/report_request_builder.rb +5 -2
  84. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/cert_rotation/item/with_job_item_request_builder.rb +5 -2
  85. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/copy/copy_request_builder.rb +4 -1
  86. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/groups/groups_request_builder.rb +8 -2
  87. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/groups/item/with_group_item_request_builder.rb +4 -1
  88. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/lease_policy/lease_policy_request_builder.rb +5 -1
  89. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/leases/item/with_lease_item_request_builder.rb +6 -2
  90. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/leases/leases_request_builder.rb +4 -1
  91. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/node_bindings/item/with_binding_item_request_builder.rb +5 -2
  92. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/node_bindings/node_bindings_request_builder.rb +4 -1
  93. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/authority/adoption/adoption_request_builder.rb +7 -1
  94. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/authority/authority_request_builder.rb +5 -1
  95. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/ca/ca_request_builder.rb +10 -2
  96. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/certificates/certificates_request_builder.rb +5 -1
  97. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/issue/issue_request_builder.rb +6 -1
  98. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/jwt_signing_key/rotate/rotate_request_builder.rb +7 -1
  99. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/revoke/revoke_request_builder.rb +6 -1
  100. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/roles/item/with_role_name_item_request_builder.rb +6 -2
  101. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/roles/roles_request_builder.rb +10 -2
  102. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/pki/tidy/tidy_request_builder.rb +5 -1
  103. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/providers/item/credentials/generate/generate_request_builder.rb +1 -0
  104. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/providers/item/credentials/roles/roles_request_builder.rb +4 -1
  105. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/providers/item/with_provider_slug_item_request_builder.rb +4 -1
  106. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/providers/providers_request_builder.rb +6 -3
  107. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/restore/restore_request_builder.rb +5 -1
  108. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/spiffe_settings/spiffe_settings_request_builder.rb +5 -1
  109. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/authority/adoption/adoption_request_builder.rb +7 -1
  110. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/authority/authority_request_builder.rb +5 -1
  111. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/ca/rotate/rotate_request_builder.rb +7 -1
  112. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/ca_public_key/ca_public_key_request_builder.rb +5 -1
  113. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/configure/configure_request_builder.rb +5 -1
  114. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/deploy_authority/deploy_authority_request_builder.rb +5 -1
  115. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/roles/item/with_role_name_item_request_builder.rb +6 -2
  116. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/roles/roles_request_builder.rb +10 -2
  117. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/ssh/sign/sign_request_builder.rb +6 -1
  118. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/totp/generate/generate_request_builder.rb +5 -1
  119. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/totp/import/import_request_builder.rb +5 -1
  120. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/totp/item/code/code_request_builder.rb +4 -1
  121. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/totp/item/with_name_item_request_builder.rb +4 -1
  122. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/totp/totp_request_builder.rb +4 -1
  123. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/users/item/with_user_item_request_builder.rb +8 -2
  124. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/users/users_request_builder.rb +7 -2
  125. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/with_env_slug_item_request_builder.rb +8 -2
  126. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/workload_identities/item/leases/leases_request_builder.rb +4 -1
  127. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/workload_identities/item/revoke_leases/revoke_leases_request_builder.rb +4 -1
  128. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/workload_identities/item/workload_identities_item_request_builder.rb +8 -3
  129. data/lib/bella_baxter/generated/api/v1/projects/item/environments/item/workload_identities/workload_identities_request_builder.rb +4 -1
  130. data/lib/bella_baxter/generated/api/v1/projects/item/export/export_request_builder.rb +4 -1
  131. data/lib/bella_baxter/generated/api/v1/projects/item/global_secret_provider/global_secret_provider_request_builder.rb +5 -1
  132. data/lib/bella_baxter/generated/api/v1/projects/item/groups/groups_request_builder.rb +8 -2
  133. data/lib/bella_baxter/generated/api/v1/projects/item/groups/item/with_group_item_request_builder.rb +4 -1
  134. data/lib/bella_baxter/generated/api/v1/projects/item/item_request_builder.rb +10 -3
  135. data/lib/bella_baxter/generated/api/v1/projects/item/notifications/notifications_request_builder.rb +4 -1
  136. data/lib/bella_baxter/generated/api/v1/projects/item/providers/item/with_provider_item_request_builder.rb +5 -2
  137. data/lib/bella_baxter/generated/api/v1/projects/item/providers/providers_request_builder.rb +5 -1
  138. data/lib/bella_baxter/generated/api/v1/projects/item/secret_drift/secret_drift_request_builder.rb +4 -1
  139. data/lib/bella_baxter/generated/api/v1/projects/item/security/scan/scan_request_builder.rb +4 -1
  140. data/lib/bella_baxter/generated/api/v1/projects/item/security/security_request_builder.rb +4 -1
  141. data/lib/bella_baxter/generated/api/v1/projects/item/users/item/permissions/permissions_request_builder.rb +5 -1
  142. data/lib/bella_baxter/generated/api/v1/projects/item/users/item/with_user_item_request_builder.rb +4 -1
  143. data/lib/bella_baxter/generated/api/v1/projects/item/users/users_request_builder.rb +8 -2
  144. data/lib/bella_baxter/generated/api/v1/projects/item/webhooks/webhooks_request_builder.rb +4 -1
  145. data/lib/bella_baxter/generated/api/v1/projects/projects_request_builder.rb +7 -3
  146. data/lib/bella_baxter/generated/api/v1/projects/search/search_request_builder.rb +2 -1
  147. data/lib/bella_baxter/generated/api/v1/projects/tags/tags_request_builder.rb +4 -1
  148. data/lib/bella_baxter/generated/api/v1/providers/init_system/init_system_request_builder.rb +5 -1
  149. data/lib/bella_baxter/generated/api/v1/providers/item/providers_item_request_builder.rb +11 -3
  150. data/lib/bella_baxter/generated/api/v1/providers/providers_request_builder.rb +6 -3
  151. data/lib/bella_baxter/generated/api/v1/providers/test_connection/test_connection_request_builder.rb +1 -0
  152. data/lib/bella_baxter/generated/api/v1/security/summary/summary_request_builder.rb +4 -1
  153. data/lib/bella_baxter/generated/api/v1/shares/item/shares_item_request_builder.rb +8 -3
  154. data/lib/bella_baxter/generated/api/v1/shares/item/unlock/unlock_request_builder.rb +5 -1
  155. data/lib/bella_baxter/generated/api/v1/stripe/webhook/webhook_request_builder.rb +6 -2
  156. data/lib/bella_baxter/generated/api/v1/superadmin/users/item/tenants/tenants_request_builder.rb +4 -1
  157. data/lib/bella_baxter/generated/api/v1/system/health/rate_limit/rate_limit_request_builder.rb +1 -1
  158. data/lib/bella_baxter/generated/api/v1/system/rate_limit/status/status_request_builder.rb +1 -1
  159. data/lib/bella_baxter/generated/api/v1/tenant/features/item/with_feature_item_request_builder.rb +6 -1
  160. data/lib/bella_baxter/generated/api/v1/tenants/me/devices/devices_request_builder.rb +10 -2
  161. data/lib/bella_baxter/generated/api/v1/tenants/me/devices/item/devices_item_request_builder.rb +7 -2
  162. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/emergency_kit/emergency_kit_request_builder.rb +6 -1
  163. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/encryption_key_request_builder.rb +11 -2
  164. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/migrate/migrate_request_builder.rb +6 -1
  165. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/recover/recover_request_builder.rb +6 -1
  166. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/recovery_challenge/recovery_challenge_request_builder.rb +5 -1
  167. data/lib/bella_baxter/generated/api/v1/tenants/me/encryption_key/reprovision/reprovision_request_builder.rb +7 -1
  168. data/lib/bella_baxter/generated/api/v1/tenants/me/sso/enforce/enforce_request_builder.rb +5 -1
  169. data/lib/bella_baxter/generated/api/v1/tenants/me/sso/oidc/oidc_request_builder.rb +7 -1
  170. data/lib/bella_baxter/generated/api/v1/tenants/me/sso/request/request_request_builder.rb +7 -1
  171. data/lib/bella_baxter/generated/api/v1/tenants/me/sso/saml/saml_request_builder.rb +7 -1
  172. data/lib/bella_baxter/generated/api/v1/tenants/me/sso/sso_request_builder.rb +13 -4
  173. data/lib/bella_baxter/generated/api/v1/tenants/me/zke/enforce/enforce_request_builder.rb +5 -1
  174. data/lib/bella_baxter/generated/api/v1/tenants/me/zke/readiness/readiness_request_builder.rb +5 -1
  175. data/lib/bella_baxter/generated/api/v1/tenants/me/zke/zke_request_builder.rb +5 -1
  176. data/lib/bella_baxter/generated/api/v1/token/token_request_builder.rb +8 -1
  177. data/lib/bella_baxter/generated/api/v1/users/change_password/change_password_request_builder.rb +6 -1
  178. data/lib/bella_baxter/generated/api/v1/users/item/deactivation_impact/deactivation_impact_request_builder.rb +4 -1
  179. data/lib/bella_baxter/generated/api/v1/users/item/reactivate/reactivate_request_builder.rb +4 -1
  180. data/lib/bella_baxter/generated/api/v1/users/item/with_user_item_request_builder.rb +7 -2
  181. data/lib/bella_baxter/generated/api/v1/users/me/me_request_builder.rb +9 -2
  182. data/lib/bella_baxter/generated/api/v1/webhooks/item/deactivate/deactivate_request_builder.rb +5 -1
  183. data/lib/bella_baxter/generated/api/v1/webhooks/item/deliveries/deliveries_request_builder.rb +5 -1
  184. data/lib/bella_baxter/generated/api/v1/webhooks/item/link_provider/link_provider_request_builder.rb +8 -1
  185. data/lib/bella_baxter/generated/api/v1/webhooks/item/reactivate/reactivate_request_builder.rb +5 -1
  186. data/lib/bella_baxter/generated/api/v1/webhooks/item/rotate_secret/rotate_secret_request_builder.rb +7 -1
  187. data/lib/bella_baxter/generated/api/v1/webhooks/item/test/test_request_builder.rb +5 -1
  188. data/lib/bella_baxter/generated/api/v1/webhooks/item/webhooks_item_request_builder.rb +14 -3
  189. data/lib/bella_baxter/generated/api/v1/webhooks/webhooks_request_builder.rb +7 -1
  190. data/lib/bella_baxter/generated/models/billing_statement_response.rb +40 -0
  191. data/lib/bella_baxter/generated/models/change_password_response.rb +5 -3
  192. data/lib/bella_baxter/generated/models/link_provider_request.rb +40 -0
  193. data/lib/bella_baxter/generated/models/migrate_tenant_encryption_response.rb +40 -0
  194. data/lib/bella_baxter/generated/models/migration_location_kind.rb +9 -0
  195. data/lib/bella_baxter/generated/models/migration_not_migrated.rb +243 -0
  196. data/lib/bella_baxter/generated/models/migration_skip_reason.rb +12 -0
  197. data/lib/bella_baxter/generated/models/migration_subject.rb +10 -0
  198. data/lib/bella_baxter/generated/models/models.rb +4 -7
  199. data/lib/bella_baxter/generated/models/operation_response.rb +5 -3
  200. data/lib/bella_baxter/generated/models/pki_ca_public_key_response.rb +62 -0
  201. data/lib/bella_baxter/generated/models/tenant_usage_response.rb +40 -0
  202. data/lib/bella_baxter/generated/models/update_provider_command.rb +20 -0
  203. data/lib/bella_baxter/generated/models/webhook_delivery_response.rb +20 -0
  204. data/lib/bella_baxter/generated/models/webhook_response.rb +20 -0
  205. data/lib/bella_baxter/version.rb +1 -1
  206. data/lib/bella_baxter.rb +4 -4
  207. metadata +6 -15
  208. data/lib/bella_baxter/generated/api/tenants/item/identifier_item_request_builder.rb +0 -96
  209. data/lib/bella_baxter/generated/api/v1/admin/tenants/item/item.rb +0 -0
  210. data/lib/bella_baxter/generated/api/v1/admin/tenants/item/plan/plan.rb +0 -0
  211. data/lib/bella_baxter/generated/api/v1/admin/tenants/item/plan/plan_request_builder.rb +0 -81
  212. data/lib/bella_baxter/generated/api/v1/admin/tenants/item/tenants_item_request_builder.rb +0 -40
  213. data/lib/bella_baxter/generated/api/v1/admin/tenants/tenants.rb +0 -0
  214. data/lib/bella_baxter/generated/api/v1/admin/tenants/tenants_request_builder.rb +0 -43
  215. data/lib/bella_baxter/generated/models/change_tenant_plan_request.rb +0 -82
  216. data/lib/bella_baxter/generated/models/change_tenant_plan_response.rb +0 -122
  217. data/lib/bella_baxter/generated/models/command.rb +0 -122
  218. data/lib/bella_baxter/generated/models/create_tenant_response.rb +0 -142
  219. data/lib/bella_baxter/generated/models/get_tenant_response.rb +0 -203
  220. data/lib/bella_baxter/generated/models/list_tenants_response.rb +0 -183
  221. data/lib/bella_baxter/generated/models/tenant_status.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eec4eefade1bd3de4485c5289c7a84d36de913134d26a4c262b005c94e4e2369
4
- data.tar.gz: 7c061b8fd8d7fb28acb173f69bb2c1dd06a41519117e0bb10df49eadc9add810
3
+ metadata.gz: a932f08dc4dd6970513edd04088130bfaa8fdf778ed4faf1e4439e494dc903a3
4
+ data.tar.gz: 4565d014ada0d5bbb1d14b036525d82194c7f30278e9eff5863c2a798bbf1f1c
5
5
  SHA512:
6
- metadata.gz: 2e55049a0f8f4fde2e5d7290de2311bee60d36b43b797d6f515520a2223fc10e90f1241f0e6607ae84eff315933603eb3ec6291e934deaf163d01e0cdfa254b5
7
- data.tar.gz: d3859529f4ef7d2dbdaf13a531ec2f57e4f9e3e8bdbdb3bfc5de8aedc1250318b272a340cd26baac5663960f6827348158e8737531ac25ef2ba4ec972cef4d7b
6
+ metadata.gz: 5b93a3e435d586269555a33d2d45061c3208dca4bdaf8d5c0247557c618bd92e13103715a58d117bdc462b89dd008c553d5638efa411f0e15688eb8f90edb41d
7
+ data.tar.gz: 97050037d433a16e44ee089ff0ac341d85afbccc97c55f7de741b63df26899a3a7ee2becf6a97c81878387a39e35f032bec10ae48c6818cee8af0df24935e57a
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # bella_baxter Ruby SDK
2
2
 
3
- Ruby client for [Bella Baxter](https://github.com/cosmic-chimps/bella-baxter) — load secrets into your Ruby or Rails application with zero runtime dependencies.
3
+ Ruby client for [Bella Baxter](https://github.com/cosmic-chimps/bella-baxter) — load secrets into your Ruby or Rails application.
4
4
 
5
5
  ## Features
6
6
 
7
- - **Zero runtime dependencies** — uses only Ruby's stdlib (`openssl`, `net/http`, `json`)
8
7
  - **Rails Railtie** — auto-loads secrets before `database.yml` is evaluated
9
- - **End-to-end encryption** — optional E2EE using ECDH-P256-HKDF-SHA256-AES256GCM (stdlib OpenSSL)
10
- - **Thread-safe** — singleton client, mutex-protected HTTP
8
+ - **End-to-end encryption, always on** — ECDH-P256-HKDF-SHA256-AES256GCM (stdlib OpenSSL)
9
+ - **Project and environment from the key** — discovered via `GET /api/v1/keys/me`, nothing to configure
11
10
  - **ENV injection** — `load_into_env!` respects existing values (local dev overrides work)
11
+ - **Full API access** — `client.client` is the Kiota-generated navigator for every other endpoint
12
12
 
13
13
  ## Installation
14
14
 
@@ -27,16 +27,22 @@ bundle install
27
27
  require "bella_baxter"
28
28
 
29
29
  client = BellaBaxter::Client.new(
30
- baxter_url: "https://baxter.example.com",
31
- api_key: "bax-...",
32
- project: "my-app",
33
- environment: "production"
30
+ baxter_url: "https://baxter.example.com",
31
+ api_key: "bax-..."
34
32
  )
35
33
 
34
+ # The project and environment are the ones the API key is scoped to.
36
35
  secrets = client.all_secrets.secrets
37
36
  puts secrets["DATABASE_URL"]
37
+
38
+ # Or name them explicitly:
39
+ secrets = client.pull_secrets(project: "my-app", environment: "production")
38
40
  ```
39
41
 
42
+ `Client.new` accepts `baxter_url:`, `api_key:`, `timeout:` (seconds, default 10), `private_key:` (a device
43
+ key PEM; defaults to `BELLA_BAXTER_PRIVATE_KEY`) and `on_wrapped_dek_received:`. The project and environment
44
+ are not constructor options: they come from the key, or are passed to each read.
45
+
40
46
  ## Rails integration
41
47
 
42
48
  Add the gem to your Gemfile. That's all.
@@ -48,9 +54,8 @@ The gem ships a **Railtie** that injects all secrets into `ENV` during Rails' `b
48
54
  ```bash
49
55
  BELLA_BAXTER_URL=https://baxter.example.com
50
56
  BELLA_API_KEY=bax-...
51
- BELLA_PROJECT=my-app
52
- # BELLA_ENV defaults to Rails.env
53
- # BELLA_E2EE=true to enable end-to-end encryption
57
+ # The project and environment are the ones the key is scoped to; E2EE is always on.
58
+ # BELLA_BAXTER_PRIVATE_KEY=... (optional) a registered device key, injected by `bella sdk run`
54
59
  ```
55
60
 
56
61
  **database.yml** — nothing secret lives here:
@@ -87,14 +92,13 @@ BellaBaxter.load_into_env!(overwrite: true)
87
92
 
88
93
  ## End-to-end encryption
89
94
 
95
+ Always on: the client presents a P-256 public key (`X-E2E-Public-Key`) on every read that carries secret
96
+ values — the bulk read, both exports, a provider's list, a single secret, a secret version and the global
97
+ list, including the ones you make through `client.client` — and the server encrypts the response to it. Pass `private_key:` (or set `BELLA_BAXTER_PRIVATE_KEY`) to use a
98
+ registered device key instead of an ephemeral one.
99
+
90
100
  ```ruby
91
- client = BellaBaxter::Client.new(
92
- baxter_url: "https://baxter.example.com",
93
- api_key: "bax-...",
94
- project: "my-app",
95
- environment: "production",
96
- enable_e2ee: true # Client generates P-256 keypair; server encrypts the response
97
- )
101
+ client = BellaBaxter::Client.new(baxter_url: "https://baxter.example.com", api_key: "bax-...")
98
102
 
99
103
  # Decryption is transparent — same API
100
104
  secrets = client.all_secrets.secrets
@@ -102,26 +106,22 @@ secrets = client.all_secrets.secrets
102
106
 
103
107
  Algorithm: `ECDH-P256 → HKDF-SHA256 → AES-256-GCM`. All operations use Ruby's built-in `openssl` — no extra gems required.
104
108
 
105
- ## Write operations
109
+ **A presented key requires an encrypted answer (#1050).** If a read that presented the key gets back plain
110
+ JSON, an envelope that fails to decrypt (tampered), or one encrypted to a different key, the client raises
111
+ `BellaBaxter::E2EEResponseError` (a `DecryptionError`) instead of returning anything. `error.code` is
112
+ `"e2ee-plaintext-response"` or `"e2ee-decryption-failed"`, the same codes every Bella SDK uses. There is no
113
+ plaintext fallback.
106
114
 
107
- ```ruby
108
- # Create
109
- client.create_secret(
110
- provider: "my-vault", # provider slug
111
- key: "DATABASE_URL",
112
- value: "postgres://...",
113
- description: "Primary database"
114
- )
115
+ ## Other endpoints (writes, TOTP, providers, …)
115
116
 
116
- # Update
117
- client.update_secret(
118
- provider: "my-vault",
119
- key: "DATABASE_URL",
120
- value: "postgres://new-host/..."
121
- )
117
+ The client wraps the secret reads above. Every other endpoint — creating or updating secrets, TOTP,
118
+ providers, environments — is on the Kiota-generated navigator, which uses the same signing and E2EE:
122
119
 
123
- # Delete
124
- client.delete_secret(provider: "my-vault", key: "DATABASE_URL")
120
+ ```ruby
121
+ api = client.client.api.v1.projects.by_id("my-app").environments.by_env_slug("production")
122
+
123
+ totp_keys = api.totp.get.resume
124
+ providers = api.providers.get.resume
125
125
  ```
126
126
 
127
127
  ## Lightweight version check
@@ -138,23 +138,26 @@ puts "Version #{v.version}, last changed #{v.last_modified}"
138
138
  ```ruby
139
139
  # config/initializers/bella_baxter.rb
140
140
  BellaBaxter.configure do |c|
141
- c.baxter_url = ENV["BELLA_BAXTER_URL"]
142
- c.api_key = ENV["BELLA_API_KEY"]
143
- c.project = "my-app"
144
- c.environment = Rails.env
145
- c.enable_e2ee = Rails.env.production?
141
+ c.baxter_url = ENV["BELLA_BAXTER_URL"]
142
+ c.api_key = ENV["BELLA_API_KEY"]
143
+ c.timeout = 5
146
144
  end
147
145
 
148
146
  # Access the singleton client anywhere
149
147
  BellaBaxter.client.all_secrets
150
148
  ```
151
149
 
150
+ `BellaBaxter::Configuration` has exactly `baxter_url`, `api_key` and `timeout`.
151
+
152
152
  ## Samples
153
153
 
154
154
  | Sample | Description |
155
155
  |--------|-------------|
156
- | [`samples/01-standalone/`](samples/01-standalone/) | Pure Ruby script — all usage patterns |
157
- | [`samples/02-rails/`](samples/02-rails/) | Rails integration with `database.yml` example |
156
+ | [`samples/01-dotenv-file/`](samples/01-dotenv-file/) | Read the `.env` file `bella` writes |
157
+ | [`samples/02-process-inject/`](samples/02-process-inject/) | Read the secrets `bella run` injects into `ENV` |
158
+ | [`samples/03-standalone/`](samples/03-standalone/) | Pure Ruby script using the SDK |
159
+ | [`samples/04-rails/`](samples/04-rails/) | Rails integration with `database.yml` example |
160
+ | [`samples/05-typed-secrets/`](samples/05-typed-secrets/) | Typed secrets generated by `bella secrets generate ruby` |
158
161
 
159
162
  ---
160
163
 
@@ -116,6 +116,18 @@ module BellaBaxter
116
116
  def decrypt_raw(payload)
117
117
  return payload unless payload["encrypted"] == true
118
118
 
119
+ JSON.parse(decrypt_plaintext(payload))
120
+ rescue JSON::ParserError => e
121
+ raise BellaBaxter::DecryptionError, "Decrypted payload is not valid JSON: #{e.message}"
122
+ end
123
+
124
+ # Decrypt an envelope and return its plaintext exactly as the server serialized it (a String).
125
+ # #1162: the middleware hands this on unchanged, whatever the read's shape.
126
+ #
127
+ # @param payload [Hash] Parsed JSON encrypted payload ("encrypted" => true).
128
+ # @return [String] The decrypted UTF-8 JSON text.
129
+ # @raise [BellaBaxter::DecryptionError] when the GCM tag does not verify.
130
+ def decrypt_plaintext(payload)
119
131
  server_key_der = Base64.strict_decode64(payload["serverPublicKey"])
120
132
  nonce = Base64.strict_decode64(payload["nonce"])
121
133
  tag = Base64.strict_decode64(payload["tag"])
@@ -132,12 +144,9 @@ module BellaBaxter
132
144
  cipher.auth_tag = tag
133
145
  cipher.auth_data = ""
134
146
 
135
- plaintext = cipher.update(ciphertext) + cipher.final
136
- JSON.parse(plaintext)
147
+ (cipher.update(ciphertext) + cipher.final).force_encoding(Encoding::UTF_8)
137
148
  rescue OpenSSL::Cipher::CipherError => e
138
149
  raise BellaBaxter::DecryptionError, "AES-GCM decryption failed: #{e.message}"
139
- rescue JSON::ParserError => e
140
- raise BellaBaxter::DecryptionError, "Decrypted payload is not valid JSON: #{e.message}"
141
150
  end
142
151
 
143
152
  private
@@ -2,12 +2,15 @@
2
2
 
3
3
  require "faraday"
4
4
  require "json"
5
+ require_relative "errors"
6
+ require_relative "e2ee"
5
7
 
6
8
  module BellaBaxter
7
- # Faraday middleware that transparently adds E2EE to GET /secrets requests.
9
+ # Faraday middleware that transparently adds E2EE to the envelope-required secret reads.
8
10
  #
9
- # On outbound: adds X-E2E-Public-Key header so the server encrypts the response.
10
- # On inbound: decrypts the encrypted payload and reconstructs a normal secrets response.
11
+ # On outbound: adds X-E2E-Public-Key on every envelope-required read (#1162, +requires_envelope?+) so
12
+ # the server encrypts the response.
13
+ # On inbound: decrypts the envelope and hands the server's plaintext JSON on unchanged.
11
14
  class E2EEFaradayMiddleware < Faraday::Middleware
12
15
  def initialize(app, key_pair: nil, on_wrapped_dek_received: nil)
13
16
  super(app)
@@ -15,33 +18,55 @@ module BellaBaxter
15
18
  @on_wrapped_dek_received = on_wrapped_dek_received
16
19
  end
17
20
 
18
- def call(env)
19
- is_secrets_get = env.method == :get && env.url.path.end_with?("/secrets")
21
+ # #1050 — the GETs whose 2xx body the server encrypts to a presented key: every read that carries
22
+ # secret VALUES (apps/sdk/SDK_CONTRACT.md, "Which Endpoints Support E2EE"). Everything else under
23
+ # /secrets (…/version, …/manifest, …/hash, …/{key}/metadata, writes) is plain JSON by design and must
24
+ # never be refused. One place, so the rule and the table cannot drift apart inside this SDK.
25
+ def self.requires_envelope?(method, path)
26
+ return false unless method.to_s.downcase == "get"
27
+
28
+ marker = "/api/v1/projects/"
29
+ i = path.to_s.index(marker) or return false
30
+ _project, *rest = path[(i + marker.length)..].split("/", -1)
31
+
32
+ return true if rest == ["secrets"]
33
+ return false unless rest.length >= 3 && rest[0] == "environments"
20
34
 
21
- if is_secrets_get
22
- env.request_headers["X-E2E-Public-Key"] = @e2ee.public_key_b64
35
+ tail = rest[2..]
36
+ return true if tail == ["secrets"] || tail == ["secrets", "export"]
37
+ return false unless tail.length >= 3 && tail[0] == "providers" && tail[2] == "secrets"
38
+
39
+ provider_tail = tail[3..]
40
+ case provider_tail.length
41
+ when 0 then true
42
+ when 1 then provider_tail[0] != "hash" && !provider_tail[0].empty?
43
+ when 3 then provider_tail[1] == "versions" && provider_tail[2].match?(/\A\d+\z/)
44
+ else false
23
45
  end
46
+ end
47
+
48
+ def call(env)
49
+ # #1162 — the key is presented on EVERY envelope-required read (SDK_CONTRACT.md, "Rule: the key is
50
+ # presented on every envelope-required read"), decided here by the one matcher, never per method.
51
+ # From then on a 2xx that is not a decryptable envelope is an error (#1050), never a value.
52
+ presented = self.class.requires_envelope?(env.method, env.url.path)
53
+
54
+ env.request_headers["X-E2E-Public-Key"] = @e2ee.public_key_b64 if presented
24
55
 
25
56
  @app.call(env).on_complete do |resp_env|
26
- next unless is_secrets_get && resp_env.status == 200
27
-
28
- data = JSON.parse(resp_env.body)
29
- next unless data["encrypted"]
30
-
31
- decrypted = @e2ee.decrypt_raw(data)
32
- if decrypted.is_a?(Hash) && decrypted.key?("secrets") && decrypted["secrets"].is_a?(Hash)
33
- resp_env[:body] = JSON.generate(decrypted)
34
- else
35
- secrets = @e2ee.decrypt(data)
36
- resp_env[:body] = JSON.generate(
37
- "secrets" => secrets,
38
- "version" => 0,
39
- "environmentSlug" => "",
40
- "environmentName" => "",
41
- "lastModified" => ""
42
- )
57
+ next unless presented && resp_env.status.between?(200, 299)
58
+
59
+ path = env.url.path
60
+ data = begin
61
+ JSON.parse(resp_env.body.to_s)
62
+ rescue JSON::ParserError
63
+ raise E2EEResponseError.plaintext(path)
43
64
  end
44
65
 
66
+ raise E2EEResponseError.plaintext(path) unless data.is_a?(Hash) && data["encrypted"] == true
67
+
68
+ resp_env[:body] = decrypted_body(data, path)
69
+
45
70
  if @on_wrapped_dek_received
46
71
  wrapped_dek = resp_env.response_headers["X-Bella-Wrapped-Dek"] ||
47
72
  resp_env.response_headers["x-bella-wrapped-dek"]
@@ -56,5 +81,41 @@ module BellaBaxter
56
81
  end
57
82
  end
58
83
  end
84
+
85
+ private
86
+
87
+ # The body handed on after decryption. The plaintext of every envelope-required read is the JSON the
88
+ # server would have sent without a key (a secret item, an array of them, a {key: value} export,
89
+ # ListGlobalSecretsResponse), so it is passed on byte for byte (#1162). Only getAllEnvironmentSecrets
90
+ # keeps its legacy rescue: a server that encrypted just the flat {key: value} dict is re-wrapped as an
91
+ # AllEnvironmentSecretsResponse. Any failure — a missing or undecodable field, a GCM tag that does not
92
+ # verify (tampered), a key it was not encrypted to — is the one refusal, with the original as +cause+.
93
+ def decrypted_body(data, path)
94
+ plaintext = @e2ee.decrypt_plaintext(data)
95
+ decrypted = JSON.parse(plaintext)
96
+ return plaintext unless all_environment_secrets?(path)
97
+ return plaintext if decrypted.is_a?(Hash) && decrypted["secrets"].is_a?(Hash)
98
+ raise E2EEResponseError.decryption_failed(path) unless decrypted.is_a?(Hash)
99
+
100
+ JSON.generate(
101
+ "secrets" => decrypted.transform_values(&:to_s),
102
+ "version" => 0,
103
+ "environmentSlug" => "",
104
+ "environmentName" => "",
105
+ "lastModified" => ""
106
+ )
107
+ rescue E2EEResponseError
108
+ raise
109
+ rescue StandardError
110
+ raise E2EEResponseError.decryption_failed(path)
111
+ end
112
+
113
+ # .../api/v1/projects/{p}/environments/{e}/secrets — getAllEnvironmentSecrets.
114
+ def all_environment_secrets?(path)
115
+ marker = "/api/v1/projects/"
116
+ i = path.to_s.index(marker) or return false
117
+ segs = path[(i + marker.length)..].split("/", -1)
118
+ segs.length == 4 && segs[1] == "environments" && segs[3] == "secrets"
119
+ end
59
120
  end
60
121
  end
@@ -20,6 +20,32 @@ module BellaBaxter
20
20
  # Raised when E2EE decryption fails.
21
21
  class DecryptionError < Error; end
22
22
 
23
+ # #1050 — a secrets read that presented X-E2E-Public-Key got back something other than an envelope
24
+ # that decrypts with this client's key. Refused, never returned: there is no plaintext fallback.
25
+ #
26
+ # +code+ is the stable, cross-SDK contract (apps/sdk/SDK_CONTRACT.md, "a presented key requires an
27
+ # envelope"); the message names the request path and the code, never the body, ciphertext or a key.
28
+ # A DecryptionError subclass so code that already rescues DecryptionError keeps catching it.
29
+ class E2EEResponseError < DecryptionError
30
+ # The 2xx answer was not an `"encrypted": true` envelope (plain secrets, or not JSON at all).
31
+ PLAINTEXT_RESPONSE = "e2ee-plaintext-response"
32
+ # The envelope was malformed, tampered with (GCM tag), or encrypted to a different key.
33
+ DECRYPTION_FAILED = "e2ee-decryption-failed"
34
+
35
+ attr_reader :code, :path
36
+
37
+ def initialize(code, path)
38
+ @code = code
39
+ @path = path
40
+ what = code == PLAINTEXT_RESPONSE ? "expected but plaintext received" : "could not be decrypted"
41
+ super("E2EE response #{what} for #{path}; refusing it (#{code})")
42
+ end
43
+
44
+ def self.plaintext(path) = new(PLAINTEXT_RESPONSE, path)
45
+
46
+ def self.decryption_failed(path) = new(DECRYPTION_FAILED, path)
47
+ end
48
+
23
49
  # Raised when required configuration is missing.
24
50
  class ConfigurationError < Error; end
25
51
 
@@ -38,6 +38,8 @@ module BellaBaxterGenerated
38
38
  )
39
39
  error_mapping = Hash.new
40
40
  error_mapping["403"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
41
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
42
+ error_mapping["409"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
41
43
  error_mapping["503"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
42
44
  return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::AcceptInviteResponse.create_from_discriminator_value(pn) }, error_mapping)
43
45
  end
@@ -38,6 +38,7 @@ module BellaBaxterGenerated
38
38
  )
39
39
  error_mapping = Hash.new
40
40
  error_mapping["403"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
41
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
41
42
  error_mapping["409"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
42
43
  error_mapping["503"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
43
44
  return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InviteAddressVerificationResponse.create_from_discriminator_value(pn) }, error_mapping)
@@ -1,6 +1,7 @@
1
1
  require 'microsoft_kiota_abstractions'
2
2
  require_relative '../../../../../bella_baxter_generated'
3
3
  require_relative '../../../../../models/invite_preview_response'
4
+ require_relative '../../../../../models/problem_details'
4
5
  require_relative '../../../../api'
5
6
  require_relative '../../../tenants'
6
7
  require_relative '../../invites'
@@ -35,7 +36,9 @@ module BellaBaxterGenerated
35
36
  request_info = self.to_get_request_information(
36
37
  request_configuration
37
38
  )
38
- return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InvitePreviewResponse.create_from_discriminator_value(pn) }, nil)
39
+ error_mapping = Hash.new
40
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
41
+ return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InvitePreviewResponse.create_from_discriminator_value(pn) }, error_mapping)
39
42
  end
40
43
  ##
41
44
  ## GET_api_tenants_invites_token_preview
@@ -16,7 +16,7 @@ module BellaBaxterGenerated
16
16
  module Item
17
17
  module Invites
18
18
  ##
19
- # Builds and executes requests for operations under \api\tenants\{identifier-id}\invites
19
+ # Builds and executes requests for operations under \api\tenants\{-id}\invites
20
20
  class InvitesRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
21
21
 
22
22
  ##
@@ -37,7 +37,7 @@ module BellaBaxterGenerated
37
37
  ## @return a void
38
38
  ##
39
39
  def initialize(path_parameters, request_adapter)
40
- super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{identifier%2Did}/invites")
40
+ super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{%2Did}/invites")
41
41
  end
42
42
  ##
43
43
  ## GET_api_tenants_id_invites
@@ -48,7 +48,9 @@ module BellaBaxterGenerated
48
48
  request_info = self.to_get_request_information(
49
49
  request_configuration
50
50
  )
51
- return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InviteListResponse.create_from_discriminator_value(pn) }, nil)
51
+ error_mapping = Hash.new
52
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
53
+ return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InviteListResponse.create_from_discriminator_value(pn) }, error_mapping)
52
54
  end
53
55
  ##
54
56
  ## POST_api_tenants_id_invites
@@ -63,6 +65,8 @@ module BellaBaxterGenerated
63
65
  )
64
66
  error_mapping = Hash.new
65
67
  error_mapping["400"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
68
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
69
+ error_mapping["409"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
66
70
  return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InviteResponse.create_from_discriminator_value(pn) }, error_mapping)
67
71
  end
68
72
  ##
@@ -17,7 +17,7 @@ module BellaBaxterGenerated
17
17
  module Item
18
18
  module Replacement
19
19
  ##
20
- # Builds and executes requests for operations under \api\tenants\{identifier-id}\invites\{token}\replacement
20
+ # Builds and executes requests for operations under \api\tenants\{-id}\invites\{token}\replacement
21
21
  class ReplacementRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
22
22
 
23
23
  ##
@@ -27,7 +27,7 @@ module BellaBaxterGenerated
27
27
  ## @return a void
28
28
  ##
29
29
  def initialize(path_parameters, request_adapter)
30
- super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{identifier%2Did}/invites/{token}/replacement")
30
+ super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{%2Did}/invites/{token}/replacement")
31
31
  end
32
32
  ##
33
33
  ## POST_api_tenants_id_invites_token_replacement
@@ -40,6 +40,8 @@ module BellaBaxterGenerated
40
40
  )
41
41
  error_mapping = Hash.new
42
42
  error_mapping["400"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
43
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
44
+ error_mapping["409"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
43
45
  return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::InviteResponse.create_from_discriminator_value(pn) }, error_mapping)
44
46
  end
45
47
  ##
@@ -1,5 +1,6 @@
1
1
  require 'microsoft_kiota_abstractions'
2
2
  require_relative '../../../../../bella_baxter_generated'
3
+ require_relative '../../../../../models/problem_details'
3
4
  require_relative '../../../../api'
4
5
  require_relative '../../../tenants'
5
6
  require_relative '../../item'
@@ -14,7 +15,7 @@ module BellaBaxterGenerated
14
15
  module Invites
15
16
  module Item
16
17
  ##
17
- # Builds and executes requests for operations under \api\tenants\{identifier-id}\invites\{token}
18
+ # Builds and executes requests for operations under \api\tenants\{-id}\invites\{token}
18
19
  class WithTokenItemRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
19
20
 
20
21
  ##
@@ -29,7 +30,7 @@ module BellaBaxterGenerated
29
30
  ## @return a void
30
31
  ##
31
32
  def initialize(path_parameters, request_adapter)
32
- super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{identifier%2Did}/invites/{token}")
33
+ super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{%2Did}/invites/{token}")
33
34
  end
34
35
  ##
35
36
  ## DELETE_api_tenants_id_invites_token
@@ -40,7 +41,9 @@ module BellaBaxterGenerated
40
41
  request_info = self.to_delete_request_information(
41
42
  request_configuration
42
43
  )
43
- return @request_adapter.send_async(request_info, nil, nil)
44
+ error_mapping = Hash.new
45
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
46
+ return @request_adapter.send_async(request_info, nil, error_mapping)
44
47
  end
45
48
  ##
46
49
  ## DELETE_api_tenants_id_invites_token
@@ -56,7 +59,7 @@ module BellaBaxterGenerated
56
59
  request_info.url_template = @url_template
57
60
  request_info.path_parameters = @path_parameters
58
61
  request_info.http_method = :DELETE
59
- request_info.headers.try_add('Accept', 'application/json')
62
+ request_info.headers.try_add('Accept', 'application/json, application/problem+json')
60
63
  return request_info
61
64
  end
62
65
  ##
@@ -0,0 +1,58 @@
1
+ require 'microsoft_kiota_abstractions'
2
+ require_relative '../../../bella_baxter_generated'
3
+ require_relative '../../api'
4
+ require_relative '../tenants'
5
+ require_relative './invites/invites_request_builder'
6
+ require_relative './item'
7
+ require_relative './settings/settings_request_builder'
8
+ require_relative './switch/switch_request_builder'
9
+ require_relative './users/users_request_builder'
10
+ require_relative './verify_access/verify_access_request_builder'
11
+
12
+ module BellaBaxterGenerated
13
+ module Api
14
+ module Tenants
15
+ module Item
16
+ ##
17
+ # Builds and executes requests for operations under \api\tenants\{-id}
18
+ class ItemRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
19
+
20
+ ##
21
+ # The invites property
22
+ def invites()
23
+ return BellaBaxterGenerated::Api::Tenants::Item::Invites::InvitesRequestBuilder.new(@path_parameters, @request_adapter)
24
+ end
25
+ ##
26
+ # The settings property
27
+ def settings()
28
+ return BellaBaxterGenerated::Api::Tenants::Item::Settings::SettingsRequestBuilder.new(@path_parameters, @request_adapter)
29
+ end
30
+ ##
31
+ # The switch property
32
+ def switch()
33
+ return BellaBaxterGenerated::Api::Tenants::Item::Switch::SwitchRequestBuilder.new(@path_parameters, @request_adapter)
34
+ end
35
+ ##
36
+ # The users property
37
+ def users()
38
+ return BellaBaxterGenerated::Api::Tenants::Item::Users::UsersRequestBuilder.new(@path_parameters, @request_adapter)
39
+ end
40
+ ##
41
+ # The verifyAccess property
42
+ def verify_access()
43
+ return BellaBaxterGenerated::Api::Tenants::Item::VerifyAccess::VerifyAccessRequestBuilder.new(@path_parameters, @request_adapter)
44
+ end
45
+ ##
46
+ ## Instantiates a new ItemRequestBuilder and sets the default values.
47
+ ## @param path_parameters Path parameters for the request
48
+ ## @param request_adapter The request adapter to use to execute the requests.
49
+ ## @return a void
50
+ ##
51
+ def initialize(path_parameters, request_adapter)
52
+ super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{%2Did}")
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,5 +1,6 @@
1
1
  require 'microsoft_kiota_abstractions'
2
2
  require_relative '../../../../bella_baxter_generated'
3
+ require_relative '../../../../models/problem_details'
3
4
  require_relative '../../../../models/tenant_settings_response'
4
5
  require_relative '../../../api'
5
6
  require_relative '../../tenants'
@@ -12,7 +13,7 @@ module BellaBaxterGenerated
12
13
  module Item
13
14
  module Settings
14
15
  ##
15
- # Builds and executes requests for operations under \api\tenants\{identifier-id}\settings
16
+ # Builds and executes requests for operations under \api\tenants\{-id}\settings
16
17
  class SettingsRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
17
18
 
18
19
  ##
@@ -22,7 +23,7 @@ module BellaBaxterGenerated
22
23
  ## @return a void
23
24
  ##
24
25
  def initialize(path_parameters, request_adapter)
25
- super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{identifier%2Did}/settings")
26
+ super(path_parameters, request_adapter, "{+baseurl}/api/tenants/{%2Did}/settings")
26
27
  end
27
28
  ##
28
29
  ## GET_api_tenants_tenantId_settings
@@ -33,7 +34,10 @@ module BellaBaxterGenerated
33
34
  request_info = self.to_get_request_information(
34
35
  request_configuration
35
36
  )
36
- return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::TenantSettingsResponse.create_from_discriminator_value(pn) }, nil)
37
+ error_mapping = Hash.new
38
+ error_mapping["403"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
39
+ error_mapping["404"] = lambda {|pn| BellaBaxterGenerated::Models::ProblemDetails.create_from_discriminator_value(pn) }
40
+ return @request_adapter.send_async(request_info, lambda {|pn| BellaBaxterGenerated::Models::TenantSettingsResponse.create_from_discriminator_value(pn) }, error_mapping)
37
41
  end
38
42
  ##
39
43
  ## GET_api_tenants_tenantId_settings