schematichq 1.4.0 → 1.4.1

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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +4 -4
  3. data/lib/schematic/accounts/client.rb +76 -0
  4. data/lib/schematic/{companies/types/update_plan_trait_response.rb → accounts/types/get_account_member_response.rb} +3 -3
  5. data/lib/schematic/accounts/types/list_account_members_params.rb +15 -0
  6. data/lib/schematic/accounts/types/list_account_members_request.rb +14 -0
  7. data/lib/schematic/accounts/types/list_account_members_response.rb +12 -0
  8. data/lib/schematic/billing/types/create_billing_price_request_body.rb +1 -0
  9. data/lib/schematic/billing/types/create_billing_subscription_request_body.rb +1 -0
  10. data/lib/schematic/billing/types/create_meter_request_body.rb +1 -0
  11. data/lib/schematic/cache.rb +7 -4
  12. data/lib/schematic/client.rb +11 -1
  13. data/lib/schematic/companies/client.rb +8 -105
  14. data/lib/schematic/companies/types/count_companies_params.rb +1 -0
  15. data/lib/schematic/companies/types/count_companies_request.rb +1 -0
  16. data/lib/schematic/companies/types/list_companies_params.rb +1 -0
  17. data/lib/schematic/companies/types/list_companies_request.rb +1 -0
  18. data/lib/schematic/companies/types/list_plan_changes_params.rb +2 -2
  19. data/lib/schematic/companies/types/list_plan_changes_request.rb +2 -2
  20. data/lib/schematic/credits/client.rb +38 -0
  21. data/lib/schematic/credits/types/list_company_credit_balances_params.rb +12 -0
  22. data/lib/schematic/credits/types/list_company_credit_balances_request.rb +11 -0
  23. data/lib/schematic/credits/types/list_company_credit_balances_response.rb +12 -0
  24. data/lib/schematic/datastream/client.rb +28 -21
  25. data/lib/schematic/entitlements/client.rb +32 -0
  26. data/lib/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body.rb +40 -0
  27. data/lib/schematic/entitlements/types/create_company_override_request_body.rb +2 -2
  28. data/lib/schematic/entitlements/types/create_plan_entitlement_request_body.rb +2 -2
  29. data/lib/schematic/entitlements/types/update_company_override_request_body.rb +2 -2
  30. data/lib/schematic/entitlements/types/update_plan_entitlement_request_body.rb +2 -2
  31. data/lib/schematic/entitlements/types/upsert_plan_entitlement_for_billing_product_response.rb +12 -0
  32. data/lib/schematic/features/client.rb +46 -14
  33. data/lib/schematic/features/types/count_features_request.rb +3 -3
  34. data/lib/schematic/features/types/create_billing_linked_feature_request_body.rb +23 -0
  35. data/lib/schematic/features/types/create_feature_request_body.rb +1 -1
  36. data/lib/schematic/features/types/list_features_request.rb +3 -3
  37. data/lib/schematic/features/types/update_feature_request_body.rb +1 -1
  38. data/lib/schematic/features/types/upsert_feature_for_billing_product_response.rb +12 -0
  39. data/lib/schematic/insights/client.rb +251 -0
  40. data/lib/schematic/insights/types/get_activity_params.rb +12 -0
  41. data/lib/schematic/insights/types/get_activity_request.rb +11 -0
  42. data/lib/schematic/insights/types/get_activity_response.rb +12 -0
  43. data/lib/schematic/insights/types/get_environment_feature_usage_time_series_params.rb +15 -0
  44. data/lib/schematic/insights/types/get_environment_feature_usage_time_series_request.rb +14 -0
  45. data/lib/schematic/insights/types/get_environment_feature_usage_time_series_response.rb +12 -0
  46. data/lib/schematic/insights/types/get_environment_trait_usage_time_series_params.rb +15 -0
  47. data/lib/schematic/insights/types/get_environment_trait_usage_time_series_request.rb +14 -0
  48. data/lib/schematic/insights/types/get_environment_trait_usage_time_series_response.rb +12 -0
  49. data/lib/schematic/insights/types/get_plan_growth_params.rb +12 -0
  50. data/lib/schematic/insights/types/get_plan_growth_request.rb +11 -0
  51. data/lib/schematic/insights/types/get_plan_growth_response.rb +12 -0
  52. data/lib/schematic/{companies/types/create_plan_trait_response.rb → insights/types/get_summary_response.rb} +3 -3
  53. data/lib/schematic/insights/types/get_top_features_by_usage_params.rb +14 -0
  54. data/lib/schematic/insights/types/get_top_features_by_usage_request.rb +13 -0
  55. data/lib/schematic/insights/types/get_top_features_by_usage_response.rb +12 -0
  56. data/lib/schematic/integrationsapi/client.rb +46 -0
  57. data/lib/schematic/integrationsapi/types/get_integration_webhook_url_response.rb +12 -0
  58. data/lib/schematic/plans/client.rb +247 -2
  59. data/lib/schematic/plans/types/count_billing_product_match_companies_params.rb +15 -0
  60. data/lib/schematic/plans/types/count_billing_product_match_companies_request.rb +14 -0
  61. data/lib/schematic/plans/types/count_billing_product_match_companies_response.rb +12 -0
  62. data/lib/schematic/plans/types/count_plans_params.rb +2 -0
  63. data/lib/schematic/plans/types/count_plans_request.rb +2 -0
  64. data/lib/schematic/plans/types/create_billing_linked_plan_request_body.rb +16 -0
  65. data/lib/schematic/plans/types/create_custom_plan_request_body.rb +15 -0
  66. data/lib/schematic/{companies/types/delete_plan_trait_response.rb → plans/types/create_custom_plan_response.rb} +3 -3
  67. data/lib/schematic/plans/types/list_billing_product_match_companies_params.rb +15 -0
  68. data/lib/schematic/plans/types/list_billing_product_match_companies_request.rb +14 -0
  69. data/lib/schematic/plans/types/list_billing_product_match_companies_response.rb +12 -0
  70. data/lib/schematic/plans/types/list_custom_plan_billings_params.rb +17 -0
  71. data/lib/schematic/plans/types/list_custom_plan_billings_request.rb +16 -0
  72. data/lib/schematic/plans/types/list_custom_plan_billings_response.rb +12 -0
  73. data/lib/schematic/plans/types/list_plans_params.rb +2 -0
  74. data/lib/schematic/plans/types/list_plans_request.rb +2 -0
  75. data/lib/schematic/plans/types/publish_plan_version_request_body.rb +4 -0
  76. data/lib/schematic/plans/types/retry_custom_plan_billing_request_body.rb +15 -0
  77. data/lib/schematic/plans/types/retry_custom_plan_billing_response.rb +12 -0
  78. data/lib/schematic/plans/types/upsert_plan_for_billing_product_response.rb +12 -0
  79. data/lib/schematic/redis_cache.rb +5 -2
  80. data/lib/schematic/schematic_client.rb +0 -1
  81. data/lib/schematic/types/account_member_permission.rb +25 -0
  82. data/lib/schematic/types/account_member_response_data.rb +16 -0
  83. data/lib/schematic/types/{rulesengine_company_metric_month_reset.rb → account_member_role.rb} +3 -3
  84. data/lib/schematic/types/activity_entry_response_data.rb +14 -0
  85. data/lib/schematic/types/activity_response_response_data.rb +9 -0
  86. data/lib/schematic/types/api_key_create_response_data.rb +1 -0
  87. data/lib/schematic/types/api_key_response_data.rb +1 -0
  88. data/lib/schematic/types/audit_log_list_response_data.rb +1 -0
  89. data/lib/schematic/types/audit_log_response_data.rb +1 -0
  90. data/lib/schematic/types/billing_linked_resource_response_data.rb +11 -0
  91. data/lib/schematic/types/billing_plan_credit_grant_response_data.rb +1 -0
  92. data/lib/schematic/types/billing_price_response_data.rb +1 -0
  93. data/lib/schematic/types/billing_price_view.rb +1 -0
  94. data/lib/schematic/types/billing_product_plan_response_data.rb +1 -1
  95. data/lib/schematic/types/billing_product_price_response_data.rb +1 -0
  96. data/lib/schematic/types/billing_provider_type.rb +1 -0
  97. data/lib/schematic/types/check_flag_response_data.rb +2 -2
  98. data/lib/schematic/types/checkout_subscription.rb +1 -0
  99. data/lib/schematic/types/company_credit_balance_response_data.rb +12 -0
  100. data/lib/schematic/types/company_detail_response_data.rb +1 -0
  101. data/lib/schematic/types/company_event_period_metrics_response_data.rb +2 -2
  102. data/lib/schematic/types/company_override_response_data.rb +2 -2
  103. data/lib/schematic/types/company_plan_detail_response_data.rb +7 -3
  104. data/lib/schematic/types/company_subscription_response_data.rb +1 -0
  105. data/lib/schematic/types/{condition_operator.rb → comparable_operator.rb} +4 -4
  106. data/lib/schematic/types/condition.rb +4 -4
  107. data/lib/schematic/types/condition_response_data.rb +4 -4
  108. data/lib/schematic/types/{condition_condition_type.rb → condition_type.rb} +1 -1
  109. data/lib/schematic/types/condition_view.rb +4 -4
  110. data/lib/schematic/types/create_billing_plan_credit_grant_request_body.rb +1 -0
  111. data/lib/schematic/types/create_entitlement_in_bundle_request_body.rb +2 -2
  112. data/lib/schematic/types/create_entitlement_req_common.rb +2 -2
  113. data/lib/schematic/types/create_flag_request_body.rb +1 -1
  114. data/lib/schematic/types/create_or_update_condition_request_body.rb +4 -4
  115. data/lib/schematic/types/create_or_update_flag_request_body.rb +1 -1
  116. data/lib/schematic/types/create_or_update_rule_request_body.rb +1 -1
  117. data/lib/schematic/types/create_plan_request_body.rb +1 -1
  118. data/lib/schematic/types/custom_plan_activation_strategy.rb +12 -0
  119. data/lib/schematic/types/custom_plan_billing_response_data.rb +19 -0
  120. data/lib/schematic/types/custom_plan_billing_status.rb +14 -0
  121. data/lib/schematic/types/datastream_company_plan.rb +1 -0
  122. data/lib/schematic/types/environment_feature_usage_time_series_response_data.rb +11 -0
  123. data/lib/schematic/types/environment_trait_usage_time_series_response_data.rb +11 -0
  124. data/lib/schematic/types/environment_usage_point_response_data.rb +10 -0
  125. data/lib/schematic/types/feature_company_response_data.rb +3 -3
  126. data/lib/schematic/types/feature_company_user_response_data.rb +2 -2
  127. data/lib/schematic/types/feature_detail_response_data.rb +3 -1
  128. data/lib/schematic/types/feature_entitlement.rb +2 -2
  129. data/lib/schematic/types/feature_in_plan_response_data.rb +26 -0
  130. data/lib/schematic/types/feature_response_data.rb +1 -1
  131. data/lib/schematic/types/feature_usage_response_data.rb +3 -3
  132. data/lib/schematic/types/feature_view.rb +1 -1
  133. data/lib/schematic/types/flag_detail_response_data.rb +2 -1
  134. data/lib/schematic/types/flag_in_plan_response_data.rb +21 -0
  135. data/lib/schematic/types/flag_response_data.rb +1 -1
  136. data/lib/schematic/types/flag_view.rb +0 -1
  137. data/lib/schematic/types/insights_summary_response_data.rb +14 -0
  138. data/lib/schematic/types/{plan_controlled_by_type.rb → integration_type.rb} +4 -2
  139. data/lib/schematic/types/integration_webhook_url_response_data.rb +10 -0
  140. data/lib/schematic/types/{condition_metric_period.rb → metric_period.rb} +1 -1
  141. data/lib/schematic/types/{feature_entitlement_month_reset.rb → metric_period_month_reset.rb} +2 -2
  142. data/lib/schematic/types/mrr_response_data.rb +10 -0
  143. data/lib/schematic/types/plan_credit_grant_view.rb +1 -0
  144. data/lib/schematic/types/plan_detail_response_data.rb +7 -3
  145. data/lib/schematic/types/plan_entitlement_response_data.rb +3 -2
  146. data/lib/schematic/types/plan_group_plan_detail_response_data.rb +7 -3
  147. data/lib/schematic/types/plan_growth_point_response_data.rb +12 -0
  148. data/lib/schematic/types/plan_growth_response_data.rb +9 -0
  149. data/lib/schematic/types/plan_icon.rb +35 -0
  150. data/lib/schematic/types/plan_response_data.rb +3 -1
  151. data/lib/schematic/types/plan_version_response_data.rb +1 -1
  152. data/lib/schematic/types/plan_view_public_response_data.rb +7 -3
  153. data/lib/schematic/types/rule.rb +1 -1
  154. data/lib/schematic/types/rule_condition_detail_response_data.rb +4 -4
  155. data/lib/schematic/types/rule_condition_response_data.rb +4 -4
  156. data/lib/schematic/types/rule_detail_response_data.rb +1 -1
  157. data/lib/schematic/types/rule_response_data.rb +1 -1
  158. data/lib/schematic/types/{rule_rule_type.rb → rule_type.rb} +3 -3
  159. data/lib/schematic/types/rule_view.rb +1 -1
  160. data/lib/schematic/types/rules_engine_schema_version.rb +1 -1
  161. data/lib/schematic/types/rulesengine_check_flag_result.rb +2 -2
  162. data/lib/schematic/types/rulesengine_company_metric.rb +2 -2
  163. data/lib/schematic/types/rulesengine_condition.rb +4 -4
  164. data/lib/schematic/types/{rulesengine_condition_condition_type.rb → rulesengine_condition_type.rb} +1 -1
  165. data/lib/schematic/types/rulesengine_feature_entitlement.rb +2 -2
  166. data/lib/schematic/types/{feature_entitlement_metric_period.rb → rulesengine_metric_period.rb} +1 -1
  167. data/lib/schematic/types/{condition_metric_period_month_reset.rb → rulesengine_metric_period_month_reset.rb} +2 -2
  168. data/lib/schematic/types/rulesengine_rule.rb +1 -1
  169. data/lib/schematic/types/{rulesengine_rule_rule_type.rb → rulesengine_rule_type.rb} +3 -3
  170. data/lib/schematic/types/top_feature_by_usage_response_data.rb +14 -0
  171. data/lib/schematic/types/top_features_by_usage_response_data.rb +9 -0
  172. data/lib/schematic/types/trial_status.rb +13 -0
  173. data/lib/schematic/types/update_billing_plan_credit_grant_request_body.rb +1 -0
  174. data/lib/schematic/types/update_entitlement_req_common.rb +2 -2
  175. data/lib/schematic/types/update_plan_request_body.rb +1 -1
  176. data/lib/schematic/types/usage_based_entitlement_response_data.rb +2 -2
  177. data/lib/schematic/types/webhook_url.rb +10 -0
  178. data/lib/schematic/version.rb +1 -1
  179. data/lib/schematic.rb +85 -48
  180. data/reference.md +2326 -889
  181. metadata +82 -45
  182. data/lib/schematic/companies/types/create_plan_trait_request_body.rb +0 -13
  183. data/lib/schematic/companies/types/update_plan_trait_request_body.rb +0 -13
  184. data/lib/schematic/entitlements/types/create_company_override_request_body_metric_period.rb +0 -16
  185. data/lib/schematic/entitlements/types/create_company_override_request_body_metric_period_month_reset.rb +0 -14
  186. data/lib/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period.rb +0 -16
  187. data/lib/schematic/entitlements/types/create_plan_entitlement_request_body_metric_period_month_reset.rb +0 -14
  188. data/lib/schematic/entitlements/types/update_company_override_request_body_metric_period.rb +0 -16
  189. data/lib/schematic/entitlements/types/update_company_override_request_body_metric_period_month_reset.rb +0 -14
  190. data/lib/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period.rb +0 -16
  191. data/lib/schematic/entitlements/types/update_plan_entitlement_request_body_metric_period_month_reset.rb +0 -14
  192. data/lib/schematic/types/create_entitlement_in_bundle_request_body_metric_period.rb +0 -14
  193. data/lib/schematic/types/create_entitlement_in_bundle_request_body_metric_period_month_reset.rb +0 -12
  194. data/lib/schematic/types/create_entitlement_req_common_metric_period.rb +0 -14
  195. data/lib/schematic/types/create_entitlement_req_common_metric_period_month_reset.rb +0 -12
  196. data/lib/schematic/types/create_or_update_condition_request_body_condition_type.rb +0 -17
  197. data/lib/schematic/types/create_or_update_condition_request_body_metric_period.rb +0 -14
  198. data/lib/schematic/types/create_or_update_condition_request_body_metric_period_month_reset.rb +0 -12
  199. data/lib/schematic/types/create_or_update_condition_request_body_operator.rb +0 -18
  200. data/lib/schematic/types/create_or_update_rule_request_body_rule_type.rb +0 -15
  201. data/lib/schematic/types/rulesengine_check_flag_result_feature_usage_period.rb +0 -14
  202. data/lib/schematic/types/rulesengine_check_flag_result_rule_type.rb +0 -17
  203. data/lib/schematic/types/rulesengine_company_metric_period.rb +0 -14
  204. data/lib/schematic/types/rulesengine_condition_metric_period.rb +0 -14
  205. data/lib/schematic/types/rulesengine_condition_metric_period_month_reset.rb +0 -12
  206. data/lib/schematic/types/rulesengine_condition_operator.rb +0 -18
  207. data/lib/schematic/types/rulesengine_feature_entitlement_metric_period.rb +0 -14
  208. data/lib/schematic/types/rulesengine_feature_entitlement_month_reset.rb +0 -12
  209. data/lib/schematic/types/update_entitlement_req_common_metric_period.rb +0 -14
  210. data/lib/schematic/types/update_entitlement_req_common_metric_period_month_reset.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a37f9b78f97beda5bfbe730f7f2379af6ebc839d78effba80bb721937c4c543
4
- data.tar.gz: 5023b82060064243de4b6e1819d4f8b3d7c28d5a04c120d76d1625208ce2767b
3
+ metadata.gz: f3af69ae06714ed229c0c900c09694c8eac9db7fc708a1c00470464cf55376f7
4
+ data.tar.gz: dee24391f912af1e31b07421066c2c34117032a788624e6f6f55ec41d5324a53
5
5
  SHA512:
6
- metadata.gz: f794285eeef51f342e46facd95319bb2a9dac39d862f062889076f11bab49fa2dc10626363135e12058c2380db85ab6bf3b6b60a77c6387961596d7e59f1f580
7
- data.tar.gz: a2f5fe984d629ac16dc9886c7419bb65790707f263936e0674d506dda69b57df1bae5c472a9e2823dfd5dd0a6c8e850beff8d3e529ca93d91063a7c36adc7910
6
+ metadata.gz: e2d2a0985b527493b9282c58ba76eb828a8adce85cf22195d3a7644f9250957160fc138ebcdcc0fc1220e6e75b36fcaf232230d7cc804eb6ef7360055ea405bd
7
+ data.tar.gz: 5aa1fe13cc209733d354cdc7e49295dd79bc9e7c2c9891eaa47c2af83af9f0bae28760c3e5dfd4e13ad225c7a6d3c4f499688fc46a0053dfd9fce43bea05f5b2
data/.fern/metadata.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "4.43.1",
2
+ "cliVersion": "4.76.1",
3
3
  "generatorName": "fernapi/fern-ruby-sdk",
4
- "generatorVersion": "1.1.11",
4
+ "generatorVersion": "1.1.13",
5
5
  "generatorConfig": {
6
6
  "module": "SchematicHQ",
7
7
  "rubocopVariableNumberStyle": "disabled",
@@ -13,6 +13,6 @@
13
13
  "webrick": ">= 1.0"
14
14
  }
15
15
  },
16
- "originGitCommit": "42e108eda47d554722530a9d404ee80ba2da1b28",
17
- "sdkVersion": "1.4.0"
16
+ "originGitCommit": "65ef3b80b68cd7596daad7fa53232ea510ad01f2",
17
+ "sdkVersion": "1.4.1"
18
18
  }
@@ -10,6 +10,82 @@ module Schematic
10
10
  @client = client
11
11
  end
12
12
 
13
+ # @param request_options [Hash]
14
+ # @param params [Hash]
15
+ # @option request_options [String] :base_url
16
+ # @option request_options [Hash{String => Object}] :additional_headers
17
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
18
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
19
+ # @option request_options [Integer] :timeout_in_seconds
20
+ # @option params [String, nil] :ids
21
+ # @option params [String, nil] :q
22
+ # @option params [Integer, nil] :limit
23
+ # @option params [Integer, nil] :offset
24
+ #
25
+ # @return [Schematic::Accounts::Types::ListAccountMembersResponse]
26
+ def list_account_members(request_options: {}, **params)
27
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
28
+ query_param_names = %i[ids q limit offset]
29
+ query_params = {}
30
+ query_params["ids"] = params[:ids] if params.key?(:ids)
31
+ query_params["q"] = params[:q] if params.key?(:q)
32
+ query_params["limit"] = params[:limit] if params.key?(:limit)
33
+ query_params["offset"] = params[:offset] if params.key?(:offset)
34
+ params.except(*query_param_names)
35
+
36
+ request = Schematic::Internal::JSON::Request.new(
37
+ base_url: request_options[:base_url],
38
+ method: "GET",
39
+ path: "account-members",
40
+ query: query_params,
41
+ request_options: request_options
42
+ )
43
+ begin
44
+ response = @client.send(request)
45
+ rescue Net::HTTPRequestTimeout
46
+ raise Schematic::Errors::TimeoutError
47
+ end
48
+ code = response.code.to_i
49
+ if code.between?(200, 299)
50
+ Schematic::Accounts::Types::ListAccountMembersResponse.load(response.body)
51
+ else
52
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
53
+ raise error_class.new(response.body, code: code)
54
+ end
55
+ end
56
+
57
+ # @param request_options [Hash]
58
+ # @param params [Hash]
59
+ # @option request_options [String] :base_url
60
+ # @option request_options [Hash{String => Object}] :additional_headers
61
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
62
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
63
+ # @option request_options [Integer] :timeout_in_seconds
64
+ # @option params [String] :account_member_id
65
+ #
66
+ # @return [Schematic::Accounts::Types::GetAccountMemberResponse]
67
+ def get_account_member(request_options: {}, **params)
68
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
69
+ request = Schematic::Internal::JSON::Request.new(
70
+ base_url: request_options[:base_url],
71
+ method: "GET",
72
+ path: "account-members/#{URI.encode_uri_component(params[:account_member_id].to_s)}",
73
+ request_options: request_options
74
+ )
75
+ begin
76
+ response = @client.send(request)
77
+ rescue Net::HTTPRequestTimeout
78
+ raise Schematic::Errors::TimeoutError
79
+ end
80
+ code = response.code.to_i
81
+ if code.between?(200, 299)
82
+ Schematic::Accounts::Types::GetAccountMemberResponse.load(response.body)
83
+ else
84
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
85
+ raise error_class.new(response.body, code: code)
86
+ end
87
+ end
88
+
13
89
  # @param request_options [Hash]
14
90
  # @param params [Hash]
15
91
  # @option request_options [String] :base_url
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Schematic
4
- module Companies
4
+ module Accounts
5
5
  module Types
6
- class UpdatePlanTraitResponse < Internal::Types::Model
7
- field :data, -> { Schematic::Types::PlanTraitResponseData }, optional: false, nullable: false
6
+ class GetAccountMemberResponse < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::AccountMemberResponseData }, optional: false, nullable: false
8
8
  field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
9
  end
10
10
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Accounts
5
+ module Types
6
+ # Input parameters
7
+ class ListAccountMembersParams < Internal::Types::Model
8
+ field :ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
9
+ field :limit, -> { Integer }, optional: true, nullable: false
10
+ field :offset, -> { Integer }, optional: true, nullable: false
11
+ field :q, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Accounts
5
+ module Types
6
+ class ListAccountMembersRequest < Internal::Types::Model
7
+ field :ids, -> { String }, optional: true, nullable: false
8
+ field :q, -> { String }, optional: true, nullable: false
9
+ field :limit, -> { Integer }, optional: true, nullable: false
10
+ field :offset, -> { Integer }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Accounts
5
+ module Types
6
+ class ListAccountMembersResponse < Internal::Types::Model
7
+ field :data, -> { Internal::Types::Array[Schematic::Types::AccountMemberResponseData] }, optional: false, nullable: false
8
+ field :params, -> { Schematic::Accounts::Types::ListAccountMembersParams }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -10,6 +10,7 @@ module Schematic
10
10
  field :interval, -> { String }, optional: false, nullable: false
11
11
  field :is_active, -> { Internal::Types::Boolean }, optional: false, nullable: false
12
12
  field :meter_id, -> { String }, optional: true, nullable: false
13
+ field :nickname, -> { String }, optional: true, nullable: false
13
14
  field :package_size, -> { Integer }, optional: true, nullable: false
14
15
  field :price, -> { Integer }, optional: false, nullable: false
15
16
  field :price_decimal, -> { String }, optional: true, nullable: false
@@ -18,6 +18,7 @@ module Schematic
18
18
  field :period_end, -> { Integer }, optional: true, nullable: false
19
19
  field :period_start, -> { Integer }, optional: true, nullable: false
20
20
  field :product_external_ids, -> { Internal::Types::Array[Schematic::Types::BillingProductPricing] }, optional: false, nullable: false
21
+ field :provider_type, -> { Schematic::Types::BillingProviderType }, optional: true, nullable: false
21
22
  field :status, -> { String }, optional: true, nullable: false
22
23
  field :subscription_external_id, -> { String }, optional: false, nullable: false
23
24
  field :total_price, -> { Integer }, optional: false, nullable: false
@@ -8,6 +8,7 @@ module Schematic
8
8
  field :event_name, -> { String }, optional: false, nullable: false
9
9
  field :event_payload_key, -> { String }, optional: false, nullable: false
10
10
  field :external_id, -> { String }, optional: false, nullable: false
11
+ field :provider_type, -> { Schematic::Types::BillingProviderType }, optional: true, nullable: false
11
12
  end
12
13
  end
13
14
  end
@@ -14,8 +14,11 @@ module Schematic
14
14
  raise NotImplementedError
15
15
  end
16
16
 
17
- def delete_missing(keys_to_keep)
18
- # Optional: remove all keys NOT in keys_to_keep
17
+ # Remove all keys matching `scope` that are NOT in `keys_to_keep`.
18
+ # `scope:` is required so shared caches (e.g. Redis) only prune their own
19
+ # namespace instead of wiping sibling caches that share a base key_prefix.
20
+ def delete_missing(keys_to_keep, scope:)
21
+ raise NotImplementedError
19
22
  end
20
23
  end
21
24
 
@@ -72,10 +75,10 @@ module Schematic
72
75
  end
73
76
  end
74
77
 
75
- def delete_missing(keys_to_keep)
78
+ def delete_missing(keys_to_keep, scope:)
76
79
  keep_set = keys_to_keep.to_set
77
80
  @mutex.synchronize do
78
- @cache.delete_if { |k, _| !keep_set.include?(k) }
81
+ @cache.delete_if { |k, _| k.start_with?(scope) && !keep_set.include?(k) }
79
82
  end
80
83
  end
81
84
 
@@ -10,7 +10,7 @@ module Schematic
10
10
  @raw_client = Schematic::Internal::Http::RawClient.new(
11
11
  base_url: base_url || Schematic::Environment::DEFAULT,
12
12
  headers: {
13
- "User-Agent" => "schematichq/1.4.0",
13
+ "User-Agent" => "schematichq/1.4.1",
14
14
  "X-Fern-Language" => "Ruby",
15
15
  "X-Schematic-Api-Key" => api_key.to_s
16
16
  }
@@ -72,6 +72,16 @@ module Schematic
72
72
  @features ||= Schematic::Features::Client.new(client: @raw_client)
73
73
  end
74
74
 
75
+ # @return [Schematic::Insights::Client]
76
+ def insights
77
+ @insights ||= Schematic::Insights::Client.new(client: @raw_client)
78
+ end
79
+
80
+ # @return [Schematic::Integrationsapi::Client]
81
+ def integrationsapi
82
+ @integrationsapi ||= Schematic::Integrationsapi::Client.new(client: @raw_client)
83
+ end
84
+
75
85
  # @return [Schematic::Planbundle::Client]
76
86
  def planbundle
77
87
  @planbundle ||= Schematic::Planbundle::Client.new(client: @raw_client)
@@ -18,6 +18,7 @@ module Schematic
18
18
  # @option request_options [Hash{String => Object}] :additional_body_parameters
19
19
  # @option request_options [Integer] :timeout_in_seconds
20
20
  # @option params [String, nil] :credit_type_ids
21
+ # @option params [Boolean, nil] :has_scheduled_downgrade
21
22
  # @option params [String, nil] :ids
22
23
  # @option params [Boolean, nil] :monetized_subscriptions
23
24
  # @option params [String, nil] :plan_id
@@ -39,9 +40,10 @@ module Schematic
39
40
  # @return [Schematic::Companies::Types::ListCompaniesResponse]
40
41
  def list_companies(request_options: {}, **params)
41
42
  params = Schematic::Internal::Types::Utils.normalize_keys(params)
42
- query_param_names = %i[credit_type_ids ids monetized_subscriptions plan_id plan_ids plan_version_id q sort_order_column sort_order_direction subscription_statuses subscription_types with_entitlement_for without_feature_override_for without_plan without_subscription with_subscription limit offset]
43
+ query_param_names = %i[credit_type_ids has_scheduled_downgrade ids monetized_subscriptions plan_id plan_ids plan_version_id q sort_order_column sort_order_direction subscription_statuses subscription_types with_entitlement_for without_feature_override_for without_plan without_subscription with_subscription limit offset]
43
44
  query_params = {}
44
45
  query_params["credit_type_ids"] = params[:credit_type_ids] if params.key?(:credit_type_ids)
46
+ query_params["has_scheduled_downgrade"] = params[:has_scheduled_downgrade] if params.key?(:has_scheduled_downgrade)
45
47
  query_params["ids"] = params[:ids] if params.key?(:ids)
46
48
  query_params["monetized_subscriptions"] = params[:monetized_subscriptions] if params.key?(:monetized_subscriptions)
47
49
  query_params["plan_id"] = params[:plan_id] if params.key?(:plan_id)
@@ -195,6 +197,7 @@ module Schematic
195
197
  # @option request_options [Hash{String => Object}] :additional_body_parameters
196
198
  # @option request_options [Integer] :timeout_in_seconds
197
199
  # @option params [String, nil] :credit_type_ids
200
+ # @option params [Boolean, nil] :has_scheduled_downgrade
198
201
  # @option params [String, nil] :ids
199
202
  # @option params [Boolean, nil] :monetized_subscriptions
200
203
  # @option params [String, nil] :plan_id
@@ -216,9 +219,10 @@ module Schematic
216
219
  # @return [Schematic::Companies::Types::CountCompaniesResponse]
217
220
  def count_companies(request_options: {}, **params)
218
221
  params = Schematic::Internal::Types::Utils.normalize_keys(params)
219
- query_param_names = %i[credit_type_ids ids monetized_subscriptions plan_id plan_ids plan_version_id q sort_order_column sort_order_direction subscription_statuses subscription_types with_entitlement_for without_feature_override_for without_plan without_subscription with_subscription limit offset]
222
+ query_param_names = %i[credit_type_ids has_scheduled_downgrade ids monetized_subscriptions plan_id plan_ids plan_version_id q sort_order_column sort_order_direction subscription_statuses subscription_types with_entitlement_for without_feature_override_for without_plan without_subscription with_subscription limit offset]
220
223
  query_params = {}
221
224
  query_params["credit_type_ids"] = params[:credit_type_ids] if params.key?(:credit_type_ids)
225
+ query_params["has_scheduled_downgrade"] = params[:has_scheduled_downgrade] if params.key?(:has_scheduled_downgrade)
222
226
  query_params["ids"] = params[:ids] if params.key?(:ids)
223
227
  query_params["monetized_subscriptions"] = params[:monetized_subscriptions] if params.key?(:monetized_subscriptions)
224
228
  query_params["plan_id"] = params[:plan_id] if params.key?(:plan_id)
@@ -895,8 +899,8 @@ module Schematic
895
899
  # @option request_options [Hash{String => Object}] :additional_query_parameters
896
900
  # @option request_options [Hash{String => Object}] :additional_body_parameters
897
901
  # @option request_options [Integer] :timeout_in_seconds
898
- # @option params [String, nil] :action
899
- # @option params [String, nil] :base_plan_action
902
+ # @option params [Schematic::Types::PlanChangeAction, nil] :action
903
+ # @option params [Schematic::Types::PlanChangeBasePlanAction, nil] :base_plan_action
900
904
  # @option params [String, nil] :company_id
901
905
  # @option params [String, nil] :company_ids
902
906
  # @option params [String, nil] :plan_ids
@@ -1018,38 +1022,6 @@ module Schematic
1018
1022
  end
1019
1023
  end
1020
1024
 
1021
- # @param request_options [Hash]
1022
- # @param params [Schematic::Companies::Types::CreatePlanTraitRequestBody]
1023
- # @option request_options [String] :base_url
1024
- # @option request_options [Hash{String => Object}] :additional_headers
1025
- # @option request_options [Hash{String => Object}] :additional_query_parameters
1026
- # @option request_options [Hash{String => Object}] :additional_body_parameters
1027
- # @option request_options [Integer] :timeout_in_seconds
1028
- #
1029
- # @return [Schematic::Companies::Types::CreatePlanTraitResponse]
1030
- def create_plan_trait(request_options: {}, **params)
1031
- params = Schematic::Internal::Types::Utils.normalize_keys(params)
1032
- request = Schematic::Internal::JSON::Request.new(
1033
- base_url: request_options[:base_url],
1034
- method: "POST",
1035
- path: "plan-traits",
1036
- body: Schematic::Companies::Types::CreatePlanTraitRequestBody.new(params).to_h,
1037
- request_options: request_options
1038
- )
1039
- begin
1040
- response = @client.send(request)
1041
- rescue Net::HTTPRequestTimeout
1042
- raise Schematic::Errors::TimeoutError
1043
- end
1044
- code = response.code.to_i
1045
- if code.between?(200, 299)
1046
- Schematic::Companies::Types::CreatePlanTraitResponse.load(response.body)
1047
- else
1048
- error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
1049
- raise error_class.new(response.body, code: code)
1050
- end
1051
- end
1052
-
1053
1025
  # @param request_options [Hash]
1054
1026
  # @param params [Hash]
1055
1027
  # @option request_options [String] :base_url
@@ -1082,75 +1054,6 @@ module Schematic
1082
1054
  end
1083
1055
  end
1084
1056
 
1085
- # @param request_options [Hash]
1086
- # @param params [Schematic::Companies::Types::UpdatePlanTraitRequestBody]
1087
- # @option request_options [String] :base_url
1088
- # @option request_options [Hash{String => Object}] :additional_headers
1089
- # @option request_options [Hash{String => Object}] :additional_query_parameters
1090
- # @option request_options [Hash{String => Object}] :additional_body_parameters
1091
- # @option request_options [Integer] :timeout_in_seconds
1092
- # @option params [String] :plan_trait_id
1093
- #
1094
- # @return [Schematic::Companies::Types::UpdatePlanTraitResponse]
1095
- def update_plan_trait(request_options: {}, **params)
1096
- params = Schematic::Internal::Types::Utils.normalize_keys(params)
1097
- request_data = Schematic::Companies::Types::UpdatePlanTraitRequestBody.new(params).to_h
1098
- non_body_param_names = ["plan_trait_id"]
1099
- body = request_data.except(*non_body_param_names)
1100
-
1101
- request = Schematic::Internal::JSON::Request.new(
1102
- base_url: request_options[:base_url],
1103
- method: "PUT",
1104
- path: "plan-traits/#{URI.encode_uri_component(params[:plan_trait_id].to_s)}",
1105
- body: body,
1106
- request_options: request_options
1107
- )
1108
- begin
1109
- response = @client.send(request)
1110
- rescue Net::HTTPRequestTimeout
1111
- raise Schematic::Errors::TimeoutError
1112
- end
1113
- code = response.code.to_i
1114
- if code.between?(200, 299)
1115
- Schematic::Companies::Types::UpdatePlanTraitResponse.load(response.body)
1116
- else
1117
- error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
1118
- raise error_class.new(response.body, code: code)
1119
- end
1120
- end
1121
-
1122
- # @param request_options [Hash]
1123
- # @param params [Hash]
1124
- # @option request_options [String] :base_url
1125
- # @option request_options [Hash{String => Object}] :additional_headers
1126
- # @option request_options [Hash{String => Object}] :additional_query_parameters
1127
- # @option request_options [Hash{String => Object}] :additional_body_parameters
1128
- # @option request_options [Integer] :timeout_in_seconds
1129
- # @option params [String] :plan_trait_id
1130
- #
1131
- # @return [Schematic::Companies::Types::DeletePlanTraitResponse]
1132
- def delete_plan_trait(request_options: {}, **params)
1133
- params = Schematic::Internal::Types::Utils.normalize_keys(params)
1134
- request = Schematic::Internal::JSON::Request.new(
1135
- base_url: request_options[:base_url],
1136
- method: "DELETE",
1137
- path: "plan-traits/#{URI.encode_uri_component(params[:plan_trait_id].to_s)}",
1138
- request_options: request_options
1139
- )
1140
- begin
1141
- response = @client.send(request)
1142
- rescue Net::HTTPRequestTimeout
1143
- raise Schematic::Errors::TimeoutError
1144
- end
1145
- code = response.code.to_i
1146
- if code.between?(200, 299)
1147
- Schematic::Companies::Types::DeletePlanTraitResponse.load(response.body)
1148
- else
1149
- error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
1150
- raise error_class.new(response.body, code: code)
1151
- end
1152
- end
1153
-
1154
1057
  # @param request_options [Hash]
1155
1058
  # @param params [Schematic::Companies::Types::UpdatePlanTraitBulkRequestBody]
1156
1059
  # @option request_options [String] :base_url
@@ -6,6 +6,7 @@ module Schematic
6
6
  # Input parameters
7
7
  class CountCompaniesParams < Internal::Types::Model
8
8
  field :credit_type_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
9
+ field :has_scheduled_downgrade, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
11
  field :limit, -> { Integer }, optional: true, nullable: false
11
12
  field :monetized_subscriptions, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -5,6 +5,7 @@ module Schematic
5
5
  module Types
6
6
  class CountCompaniesRequest < Internal::Types::Model
7
7
  field :credit_type_ids, -> { String }, optional: true, nullable: false
8
+ field :has_scheduled_downgrade, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
9
  field :ids, -> { String }, optional: true, nullable: false
9
10
  field :monetized_subscriptions, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :plan_id, -> { String }, optional: true, nullable: false
@@ -6,6 +6,7 @@ module Schematic
6
6
  # Input parameters
7
7
  class ListCompaniesParams < Internal::Types::Model
8
8
  field :credit_type_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
9
+ field :has_scheduled_downgrade, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
11
  field :limit, -> { Integer }, optional: true, nullable: false
11
12
  field :monetized_subscriptions, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -5,6 +5,7 @@ module Schematic
5
5
  module Types
6
6
  class ListCompaniesRequest < Internal::Types::Model
7
7
  field :credit_type_ids, -> { String }, optional: true, nullable: false
8
+ field :has_scheduled_downgrade, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
9
  field :ids, -> { String }, optional: true, nullable: false
9
10
  field :monetized_subscriptions, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :plan_id, -> { String }, optional: true, nullable: false
@@ -5,8 +5,8 @@ module Schematic
5
5
  module Types
6
6
  # Input parameters
7
7
  class ListPlanChangesParams < Internal::Types::Model
8
- field :action, -> { String }, optional: true, nullable: false
9
- field :base_plan_action, -> { String }, optional: true, nullable: false
8
+ field :action, -> { Schematic::Types::PlanChangeAction }, optional: true, nullable: false
9
+ field :base_plan_action, -> { Schematic::Types::PlanChangeBasePlanAction }, optional: true, nullable: false
10
10
  field :company_id, -> { String }, optional: true, nullable: false
11
11
  field :company_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
12
12
  field :limit, -> { Integer }, optional: true, nullable: false
@@ -4,8 +4,8 @@ module Schematic
4
4
  module Companies
5
5
  module Types
6
6
  class ListPlanChangesRequest < Internal::Types::Model
7
- field :action, -> { String }, optional: true, nullable: false
8
- field :base_plan_action, -> { String }, optional: true, nullable: false
7
+ field :action, -> { Schematic::Types::PlanChangeAction }, optional: true, nullable: false
8
+ field :base_plan_action, -> { Schematic::Types::PlanChangeBasePlanAction }, optional: true, nullable: false
9
9
  field :company_id, -> { String }, optional: true, nullable: false
10
10
  field :company_ids, -> { String }, optional: true, nullable: false
11
11
  field :plan_ids, -> { String }, optional: true, nullable: false
@@ -187,6 +187,44 @@ module Schematic
187
187
  end
188
188
  end
189
189
 
190
+ # @param request_options [Hash]
191
+ # @param params [Hash]
192
+ # @option request_options [String] :base_url
193
+ # @option request_options [Hash{String => Object}] :additional_headers
194
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
195
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
196
+ # @option request_options [Integer] :timeout_in_seconds
197
+ # @option params [String] :company_id
198
+ #
199
+ # @return [Schematic::Credits::Types::ListCompanyCreditBalancesResponse]
200
+ def list_company_credit_balances(request_options: {}, **params)
201
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
202
+ query_param_names = %i[company_id]
203
+ query_params = {}
204
+ query_params["company_id"] = params[:company_id] if params.key?(:company_id)
205
+ params.except(*query_param_names)
206
+
207
+ request = Schematic::Internal::JSON::Request.new(
208
+ base_url: request_options[:base_url],
209
+ method: "GET",
210
+ path: "billing/credits/balance",
211
+ query: query_params,
212
+ request_options: request_options
213
+ )
214
+ begin
215
+ response = @client.send(request)
216
+ rescue Net::HTTPRequestTimeout
217
+ raise Schematic::Errors::TimeoutError
218
+ end
219
+ code = response.code.to_i
220
+ if code.between?(200, 299)
221
+ Schematic::Credits::Types::ListCompanyCreditBalancesResponse.load(response.body)
222
+ else
223
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
224
+ raise error_class.new(response.body, code: code)
225
+ end
226
+ end
227
+
190
228
  # @param request_options [Hash]
191
229
  # @param params [Hash]
192
230
  # @option request_options [String] :base_url
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Credits
5
+ module Types
6
+ # Input parameters
7
+ class ListCompanyCreditBalancesParams < Internal::Types::Model
8
+ field :company_id, -> { String }, optional: true, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Credits
5
+ module Types
6
+ class ListCompanyCreditBalancesRequest < Internal::Types::Model
7
+ field :company_id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Credits
5
+ module Types
6
+ class ListCompanyCreditBalancesResponse < Internal::Types::Model
7
+ field :data, -> { Internal::Types::Array[Schematic::Types::CompanyCreditBalanceResponseData] }, optional: false, nullable: false
8
+ field :params, -> { Schematic::Credits::Types::ListCompanyCreditBalancesParams }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end