schematichq 1.4.1 → 1.4.2

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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +3 -3
  3. data/.fern/replay.lock +10 -0
  4. data/.fernignore +3 -0
  5. data/README.md +1 -1
  6. data/lib/schematic/billing/client.rb +6 -2
  7. data/lib/schematic/billing/types/count_billing_products_params.rb +1 -0
  8. data/lib/schematic/billing/types/count_billing_products_request.rb +1 -0
  9. data/lib/schematic/billing/types/create_billing_price_request_body.rb +1 -0
  10. data/lib/schematic/billing/types/list_billing_products_params.rb +1 -0
  11. data/lib/schematic/billing/types/list_billing_products_request.rb +1 -0
  12. data/lib/schematic/client.rb +6 -6
  13. data/lib/schematic/credits/client.rb +6 -2
  14. data/lib/schematic/credits/types/count_billing_plan_credit_grants_params.rb +1 -0
  15. data/lib/schematic/credits/types/count_billing_plan_credit_grants_request.rb +1 -0
  16. data/lib/schematic/credits/types/list_billing_plan_credit_grants_params.rb +1 -0
  17. data/lib/schematic/credits/types/list_billing_plan_credit_grants_request.rb +1 -0
  18. data/lib/schematic/datastream/websocket_client.rb +32 -1
  19. data/lib/schematic/entitlements/client.rb +6 -2
  20. data/lib/schematic/entitlements/types/count_feature_usage_params.rb +1 -0
  21. data/lib/schematic/entitlements/types/count_feature_usage_request.rb +1 -0
  22. data/lib/schematic/entitlements/types/create_billing_linked_plan_entitlement_request_body.rb +4 -0
  23. data/lib/schematic/entitlements/types/create_plan_entitlement_request_body.rb +4 -0
  24. data/lib/schematic/entitlements/types/list_feature_usage_params.rb +1 -0
  25. data/lib/schematic/entitlements/types/list_feature_usage_request.rb +1 -0
  26. data/lib/schematic/entitlements/types/update_plan_entitlement_request_body.rb +4 -0
  27. data/lib/schematic/event_buffer.rb +10 -2
  28. data/lib/schematic/events/client.rb +3 -1
  29. data/lib/schematic/events/types/list_events_params.rb +1 -0
  30. data/lib/schematic/events/types/list_events_request.rb +1 -0
  31. data/lib/schematic/features/client.rb +6 -2
  32. data/lib/schematic/features/types/count_features_params.rb +1 -0
  33. data/lib/schematic/features/types/count_features_request.rb +1 -0
  34. data/lib/schematic/features/types/list_features_params.rb +1 -0
  35. data/lib/schematic/features/types/list_features_request.rb +1 -0
  36. data/lib/schematic/integrationsapi/client.rb +177 -0
  37. data/lib/schematic/integrationsapi/types/list_integrations_params.rb +18 -0
  38. data/lib/schematic/integrationsapi/types/list_integrations_request.rb +17 -0
  39. data/lib/schematic/integrationsapi/types/list_integrations_response.rb +12 -0
  40. data/lib/schematic/integrationsapi/types/load_sample_data_set_v_2_response.rb +12 -0
  41. data/lib/schematic/integrationsapi/types/run_integration_response.rb +12 -0
  42. data/lib/schematic/integrationsapi/types/start_data_import_request_body.rb +13 -0
  43. data/lib/schematic/integrationsapi/types/start_data_import_response.rb +12 -0
  44. data/lib/schematic/integrationsapi/types/uninstall_integration_response.rb +12 -0
  45. data/lib/schematic/planbundle/client.rb +32 -0
  46. data/lib/schematic/planbundle/types/create_custom_plan_bundle_request_body.rb +13 -0
  47. data/lib/schematic/planbundle/types/create_custom_plan_bundle_response.rb +12 -0
  48. data/lib/schematic/plans/client.rb +6 -2
  49. data/lib/schematic/plans/types/count_plans_params.rb +1 -0
  50. data/lib/schematic/plans/types/count_plans_request.rb +1 -0
  51. data/lib/schematic/plans/types/create_billing_linked_plan_request_body.rb +1 -0
  52. data/lib/schematic/plans/types/list_plans_params.rb +1 -0
  53. data/lib/schematic/plans/types/list_plans_request.rb +1 -0
  54. data/lib/schematic/types/api_key_create_response_data.rb +1 -0
  55. data/lib/schematic/types/api_key_integration_response_data.rb +11 -0
  56. data/lib/schematic/types/api_key_response_data.rb +1 -0
  57. data/lib/schematic/types/audit_log_list_response_data.rb +1 -0
  58. data/lib/schematic/types/audit_log_response_data.rb +1 -0
  59. data/lib/schematic/types/billing_credit_bundle_view.rb +1 -1
  60. data/lib/schematic/types/billing_credit_view.rb +1 -0
  61. data/lib/schematic/types/billing_plan_credit_grant_response_data.rb +1 -0
  62. data/lib/schematic/types/billing_price_response_data.rb +1 -0
  63. data/lib/schematic/types/billing_price_view.rb +1 -0
  64. data/lib/schematic/types/billing_product_for_subscription_response_data.rb +1 -0
  65. data/lib/schematic/types/billing_product_plan_response_data.rb +1 -0
  66. data/lib/schematic/types/billing_product_price_response_data.rb +1 -0
  67. data/lib/schematic/types/billing_strategy.rb +13 -0
  68. data/lib/schematic/types/change_subscription_internal_request_body.rb +1 -0
  69. data/lib/schematic/types/change_subscription_request_body.rb +1 -0
  70. data/lib/schematic/types/charge_type.rb +1 -0
  71. data/lib/schematic/types/clerk_integration_config.rb +10 -0
  72. data/lib/schematic/types/company_matching_criteria.rb +12 -0
  73. data/lib/schematic/types/company_plan_credit_grant_view.rb +40 -0
  74. data/lib/schematic/types/company_plan_detail_response_data.rb +2 -0
  75. data/lib/schematic/types/company_plan_with_billing_sub_view.rb +1 -1
  76. data/lib/schematic/types/create_billing_plan_credit_grant_request_body.rb +1 -0
  77. data/lib/schematic/types/create_custom_plan_bundle_plan_request_body.rb +12 -0
  78. data/lib/schematic/types/create_entitlement_in_bundle_request_body.rb +4 -0
  79. data/lib/schematic/types/create_event_request_body.rb +3 -0
  80. data/lib/schematic/types/credit_currency_price.rb +10 -0
  81. data/lib/schematic/types/currency_price_request_body.rb +3 -0
  82. data/lib/schematic/types/data_event_payload.rb +3 -0
  83. data/lib/schematic/types/duplicate_plan_entitlements_response_response_data.rb +1 -0
  84. data/lib/schematic/types/entitlement_currency_prices_response_data.rb +1 -0
  85. data/lib/schematic/types/event_detail_response_data.rb +2 -0
  86. data/lib/schematic/types/event_response_data.rb +1 -0
  87. data/lib/schematic/types/feature_company_response_data.rb +1 -0
  88. data/lib/schematic/types/feature_usage_response_data.rb +1 -0
  89. data/lib/schematic/types/integration_capabilities.rb +11 -0
  90. data/lib/schematic/types/integration_config.rb +15 -0
  91. data/lib/schematic/types/integration_response_data.rb +13 -0
  92. data/lib/schematic/types/integration_state.rb +13 -0
  93. data/lib/schematic/types/integrations_data_set_response_data.rb +9 -0
  94. data/lib/schematic/types/integrations_list_response_data.rb +15 -0
  95. data/lib/schematic/types/integrations_response_data.rb +13 -0
  96. data/lib/schematic/types/orb_integration_config.rb +9 -0
  97. data/lib/schematic/types/plan_credit_grant_view.rb +1 -0
  98. data/lib/schematic/types/plan_currency_price_request_body.rb +1 -0
  99. data/lib/schematic/types/plan_currency_prices_response_data.rb +1 -0
  100. data/lib/schematic/types/plan_detail_response_data.rb +2 -0
  101. data/lib/schematic/types/plan_entitlement_response_data.rb +1 -0
  102. data/lib/schematic/types/plan_group_plan_detail_response_data.rb +2 -0
  103. data/lib/schematic/types/plan_view_public_response_data.rb +2 -0
  104. data/lib/schematic/types/rules_engine_schema_version.rb +1 -1
  105. data/lib/schematic/types/stripe_integration_config.rb +15 -0
  106. data/lib/schematic/types/update_auto_topup_override_request_body.rb +12 -0
  107. data/lib/schematic/types/update_billing_plan_credit_grant_request_body.rb +1 -0
  108. data/lib/schematic/types/upsert_billing_product_request_body.rb +3 -0
  109. data/lib/schematic/types/usage_based_entitlement_request_body.rb +4 -0
  110. data/lib/schematic/types/usage_based_entitlement_response_data.rb +1 -0
  111. data/lib/schematic/version.rb +1 -1
  112. data/lib/schematic.rb +37 -10
  113. data/reference.md +675 -88
  114. metadata +30 -2
@@ -10,6 +10,88 @@ 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] :integration_id
21
+ #
22
+ # @return [Schematic::Integrationsapi::Types::RunIntegrationResponse]
23
+ def run_integration(request_options: {}, **params)
24
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
25
+ request = Schematic::Internal::JSON::Request.new(
26
+ base_url: request_options[:base_url],
27
+ method: "GET",
28
+ path: "integration/start/#{URI.encode_uri_component(params[:integration_id].to_s)}",
29
+ request_options: request_options
30
+ )
31
+ begin
32
+ response = @client.send(request)
33
+ rescue Net::HTTPRequestTimeout
34
+ raise Schematic::Errors::TimeoutError
35
+ end
36
+ code = response.code.to_i
37
+ if code.between?(200, 299)
38
+ Schematic::Integrationsapi::Types::RunIntegrationResponse.load(response.body)
39
+ else
40
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
41
+ raise error_class.new(response.body, code: code)
42
+ end
43
+ end
44
+
45
+ # @param request_options [Hash]
46
+ # @param params [Hash]
47
+ # @option request_options [String] :base_url
48
+ # @option request_options [Hash{String => Object}] :additional_headers
49
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
50
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
51
+ # @option request_options [Integer] :timeout_in_seconds
52
+ # @option params [Boolean, nil] :billing_only
53
+ # @option params [String, nil] :exclude_ids
54
+ # @option params [String, nil] :id
55
+ # @option params [Schematic::Types::IntegrationState, nil] :state
56
+ # @option params [Schematic::Types::IntegrationType, nil] :type
57
+ # @option params [Integer, nil] :limit
58
+ # @option params [Integer, nil] :offset
59
+ #
60
+ # @return [Schematic::Integrationsapi::Types::ListIntegrationsResponse]
61
+ def list_integrations(request_options: {}, **params)
62
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
63
+ query_param_names = %i[billing_only exclude_ids id state type limit offset]
64
+ query_params = {}
65
+ query_params["billing_only"] = params[:billing_only] if params.key?(:billing_only)
66
+ query_params["exclude_ids"] = params[:exclude_ids] if params.key?(:exclude_ids)
67
+ query_params["id"] = params[:id] if params.key?(:id)
68
+ query_params["state"] = params[:state] if params.key?(:state)
69
+ query_params["type"] = params[:type] if params.key?(:type)
70
+ query_params["limit"] = params[:limit] if params.key?(:limit)
71
+ query_params["offset"] = params[:offset] if params.key?(:offset)
72
+ params.except(*query_param_names)
73
+
74
+ request = Schematic::Internal::JSON::Request.new(
75
+ base_url: request_options[:base_url],
76
+ method: "GET",
77
+ path: "integrations",
78
+ query: query_params,
79
+ request_options: request_options
80
+ )
81
+ begin
82
+ response = @client.send(request)
83
+ rescue Net::HTTPRequestTimeout
84
+ raise Schematic::Errors::TimeoutError
85
+ end
86
+ code = response.code.to_i
87
+ if code.between?(200, 299)
88
+ Schematic::Integrationsapi::Types::ListIntegrationsResponse.load(response.body)
89
+ else
90
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
91
+ raise error_class.new(response.body, code: code)
92
+ end
93
+ end
94
+
13
95
  # @param request_options [Hash]
14
96
  # @param params [Hash]
15
97
  # @option request_options [String] :base_url
@@ -41,6 +123,101 @@ module Schematic
41
123
  raise error_class.new(response.body, code: code)
42
124
  end
43
125
  end
126
+
127
+ # @param request_options [Hash]
128
+ # @param params [Schematic::Integrationsapi::Types::StartDataImportRequestBody]
129
+ # @option request_options [String] :base_url
130
+ # @option request_options [Hash{String => Object}] :additional_headers
131
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
132
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
133
+ # @option request_options [Integer] :timeout_in_seconds
134
+ #
135
+ # @return [Schematic::Integrationsapi::Types::StartDataImportResponse]
136
+ def start_data_import(request_options: {}, **params)
137
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
138
+ request = Schematic::Internal::JSON::Request.new(
139
+ base_url: request_options[:base_url],
140
+ method: "POST",
141
+ path: "integrations/start-data-import",
142
+ body: Schematic::Integrationsapi::Types::StartDataImportRequestBody.new(params).to_h,
143
+ request_options: request_options
144
+ )
145
+ begin
146
+ response = @client.send(request)
147
+ rescue Net::HTTPRequestTimeout
148
+ raise Schematic::Errors::TimeoutError
149
+ end
150
+ code = response.code.to_i
151
+ if code.between?(200, 299)
152
+ Schematic::Integrationsapi::Types::StartDataImportResponse.load(response.body)
153
+ else
154
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
155
+ raise error_class.new(response.body, code: code)
156
+ end
157
+ end
158
+
159
+ # @param request_options [Hash]
160
+ # @param params [Hash]
161
+ # @option request_options [String] :base_url
162
+ # @option request_options [Hash{String => Object}] :additional_headers
163
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
164
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
165
+ # @option request_options [Integer] :timeout_in_seconds
166
+ #
167
+ # @return [Schematic::Integrationsapi::Types::LoadSampleDataSetV2Response]
168
+ def load_sample_data_set_v_2(request_options: {}, **params)
169
+ Schematic::Internal::Types::Utils.normalize_keys(params)
170
+ request = Schematic::Internal::JSON::Request.new(
171
+ base_url: request_options[:base_url],
172
+ method: "GET",
173
+ path: "integrations/stripe/dataset-sample-v2",
174
+ request_options: request_options
175
+ )
176
+ begin
177
+ response = @client.send(request)
178
+ rescue Net::HTTPRequestTimeout
179
+ raise Schematic::Errors::TimeoutError
180
+ end
181
+ code = response.code.to_i
182
+ if code.between?(200, 299)
183
+ Schematic::Integrationsapi::Types::LoadSampleDataSetV2Response.load(response.body)
184
+ else
185
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
186
+ raise error_class.new(response.body, code: code)
187
+ end
188
+ end
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] :integration_id
198
+ #
199
+ # @return [Schematic::Integrationsapi::Types::UninstallIntegrationResponse]
200
+ def uninstall_integration(request_options: {}, **params)
201
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
202
+ request = Schematic::Internal::JSON::Request.new(
203
+ base_url: request_options[:base_url],
204
+ method: "DELETE",
205
+ path: "integrations/uninstall/#{URI.encode_uri_component(params[:integration_id].to_s)}",
206
+ request_options: request_options
207
+ )
208
+ begin
209
+ response = @client.send(request)
210
+ rescue Net::HTTPRequestTimeout
211
+ raise Schematic::Errors::TimeoutError
212
+ end
213
+ code = response.code.to_i
214
+ if code.between?(200, 299)
215
+ Schematic::Integrationsapi::Types::UninstallIntegrationResponse.load(response.body)
216
+ else
217
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
218
+ raise error_class.new(response.body, code: code)
219
+ end
220
+ end
44
221
  end
45
222
  end
46
223
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ # Input parameters
7
+ class ListIntegrationsParams < Internal::Types::Model
8
+ field :billing_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
+ field :exclude_ids, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
+ field :id, -> { String }, optional: true, nullable: false
11
+ field :limit, -> { Integer }, optional: true, nullable: false
12
+ field :offset, -> { Integer }, optional: true, nullable: false
13
+ field :state, -> { Schematic::Types::IntegrationState }, optional: true, nullable: false
14
+ field :type, -> { Schematic::Types::IntegrationType }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class ListIntegrationsRequest < Internal::Types::Model
7
+ field :billing_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
+ field :exclude_ids, -> { String }, optional: true, nullable: false
9
+ field :id, -> { String }, optional: true, nullable: false
10
+ field :state, -> { Schematic::Types::IntegrationState }, optional: true, nullable: false
11
+ field :type, -> { Schematic::Types::IntegrationType }, optional: true, nullable: false
12
+ field :limit, -> { Integer }, optional: true, nullable: false
13
+ field :offset, -> { Integer }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class ListIntegrationsResponse < Internal::Types::Model
7
+ field :data, -> { Internal::Types::Array[Schematic::Types::IntegrationsListResponseData] }, optional: false, nullable: false
8
+ field :params, -> { Schematic::Integrationsapi::Types::ListIntegrationsParams }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class LoadSampleDataSetV2Response < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::IntegrationsDataSetResponseData }, optional: false, nullable: false
8
+ field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class RunIntegrationResponse < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::IntegrationsResponseData }, optional: false, nullable: false
8
+ field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class StartDataImportRequestBody < Internal::Types::Model
7
+ field :company_matching_criteria, -> { Schematic::Types::CompanyMatchingCriteria }, optional: true, nullable: false
8
+ field :company_matching_field, -> { String }, optional: true, nullable: false
9
+ field :integration_id, -> { String }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class StartDataImportResponse < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::IntegrationsResponseData }, optional: false, nullable: false
8
+ field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Integrationsapi
5
+ module Types
6
+ class UninstallIntegrationResponse < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::DeleteResponse }, optional: false, nullable: false
8
+ field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -10,6 +10,38 @@ module Schematic
10
10
  @client = client
11
11
  end
12
12
 
13
+ # @param request_options [Hash]
14
+ # @param params [Schematic::Planbundle::Types::CreateCustomPlanBundleRequestBody]
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
+ #
21
+ # @return [Schematic::Planbundle::Types::CreateCustomPlanBundleResponse]
22
+ def create_custom_plan_bundle(request_options: {}, **params)
23
+ params = Schematic::Internal::Types::Utils.normalize_keys(params)
24
+ request = Schematic::Internal::JSON::Request.new(
25
+ base_url: request_options[:base_url],
26
+ method: "POST",
27
+ path: "custom-plan-bundles",
28
+ body: Schematic::Planbundle::Types::CreateCustomPlanBundleRequestBody.new(params).to_h,
29
+ request_options: request_options
30
+ )
31
+ begin
32
+ response = @client.send(request)
33
+ rescue Net::HTTPRequestTimeout
34
+ raise Schematic::Errors::TimeoutError
35
+ end
36
+ code = response.code.to_i
37
+ if code.between?(200, 299)
38
+ Schematic::Planbundle::Types::CreateCustomPlanBundleResponse.load(response.body)
39
+ else
40
+ error_class = Schematic::Errors::ResponseError.subclass_for_code(code)
41
+ raise error_class.new(response.body, code: code)
42
+ end
43
+ end
44
+
13
45
  # @param request_options [Hash]
14
46
  # @param params [Schematic::Planbundle::Types::CreatePlanBundleRequestBody]
15
47
  # @option request_options [String] :base_url
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Planbundle
5
+ module Types
6
+ class CreateCustomPlanBundleRequestBody < Internal::Types::Model
7
+ field :billing_product, -> { Schematic::Types::UpsertBillingProductRequestBody }, optional: true, nullable: false
8
+ field :entitlements, -> { Internal::Types::Array[Schematic::Types::PlanBundleEntitlementRequestBody] }, optional: false, nullable: false
9
+ field :plan, -> { Schematic::Types::CreateCustomPlanBundlePlanRequestBody }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Planbundle
5
+ module Types
6
+ class CreateCustomPlanBundleResponse < Internal::Types::Model
7
+ field :data, -> { Schematic::Types::PlanBundleResponseData }, optional: false, nullable: false
8
+ field :params, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -172,6 +172,7 @@ module Schematic
172
172
  # @option request_options [Hash{String => Object}] :additional_body_parameters
173
173
  # @option request_options [Integer] :timeout_in_seconds
174
174
  # @option params [String, nil] :company_id
175
+ # @option params [Boolean, nil] :company_scoped_only
175
176
  # @option params [Boolean, nil] :exclude_company_scoped
176
177
  # @option params [Boolean, nil] :for_fallback_plan
177
178
  # @option params [Boolean, nil] :for_initial_plan
@@ -190,9 +191,10 @@ module Schematic
190
191
  # @return [Schematic::Plans::Types::ListPlansResponse]
191
192
  def list_plans(request_options: {}, **params)
192
193
  params = Schematic::Internal::Types::Utils.normalize_keys(params)
193
- query_param_names = %i[company_id exclude_company_scoped for_fallback_plan for_initial_plan for_trial_expiry_plan has_product_id ids include_draft_versions plan_type q scoped_to_company_id without_entitlement_for without_paid_product_id limit offset]
194
+ query_param_names = %i[company_id company_scoped_only exclude_company_scoped for_fallback_plan for_initial_plan for_trial_expiry_plan has_product_id ids include_draft_versions plan_type q scoped_to_company_id without_entitlement_for without_paid_product_id limit offset]
194
195
  query_params = {}
195
196
  query_params["company_id"] = params[:company_id] if params.key?(:company_id)
197
+ query_params["company_scoped_only"] = params[:company_scoped_only] if params.key?(:company_scoped_only)
196
198
  query_params["exclude_company_scoped"] = params[:exclude_company_scoped] if params.key?(:exclude_company_scoped)
197
199
  query_params["for_fallback_plan"] = params[:for_fallback_plan] if params.key?(:for_fallback_plan)
198
200
  query_params["for_initial_plan"] = params[:for_initial_plan] if params.key?(:for_initial_plan)
@@ -527,6 +529,7 @@ module Schematic
527
529
  # @option request_options [Hash{String => Object}] :additional_body_parameters
528
530
  # @option request_options [Integer] :timeout_in_seconds
529
531
  # @option params [String, nil] :company_id
532
+ # @option params [Boolean, nil] :company_scoped_only
530
533
  # @option params [Boolean, nil] :exclude_company_scoped
531
534
  # @option params [Boolean, nil] :for_fallback_plan
532
535
  # @option params [Boolean, nil] :for_initial_plan
@@ -545,9 +548,10 @@ module Schematic
545
548
  # @return [Schematic::Plans::Types::CountPlansResponse]
546
549
  def count_plans(request_options: {}, **params)
547
550
  params = Schematic::Internal::Types::Utils.normalize_keys(params)
548
- query_param_names = %i[company_id exclude_company_scoped for_fallback_plan for_initial_plan for_trial_expiry_plan has_product_id ids include_draft_versions plan_type q scoped_to_company_id without_entitlement_for without_paid_product_id limit offset]
551
+ query_param_names = %i[company_id company_scoped_only exclude_company_scoped for_fallback_plan for_initial_plan for_trial_expiry_plan has_product_id ids include_draft_versions plan_type q scoped_to_company_id without_entitlement_for without_paid_product_id limit offset]
549
552
  query_params = {}
550
553
  query_params["company_id"] = params[:company_id] if params.key?(:company_id)
554
+ query_params["company_scoped_only"] = params[:company_scoped_only] if params.key?(:company_scoped_only)
551
555
  query_params["exclude_company_scoped"] = params[:exclude_company_scoped] if params.key?(:exclude_company_scoped)
552
556
  query_params["for_fallback_plan"] = params[:for_fallback_plan] if params.key?(:for_fallback_plan)
553
557
  query_params["for_initial_plan"] = params[:for_initial_plan] if params.key?(:for_initial_plan)
@@ -6,6 +6,7 @@ module Schematic
6
6
  # Input parameters
7
7
  class CountPlansParams < Internal::Types::Model
8
8
  field :company_id, -> { String }, optional: true, nullable: false
9
+ field :company_scoped_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :exclude_company_scoped, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :for_fallback_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
11
12
  field :for_initial_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -5,6 +5,7 @@ module Schematic
5
5
  module Types
6
6
  class CountPlansRequest < Internal::Types::Model
7
7
  field :company_id, -> { String }, optional: true, nullable: false
8
+ field :company_scoped_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
9
  field :exclude_company_scoped, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :for_fallback_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :for_initial_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -7,6 +7,7 @@ module Schematic
7
7
  field :billing_provider, -> { Schematic::Types::BillingProviderType }, optional: false, nullable: false
8
8
  field :description, -> { String }, optional: false, nullable: false
9
9
  field :external_resource_id, -> { String }, optional: false, nullable: false
10
+ field :external_resource_version, -> { String }, optional: true, nullable: false
10
11
  field :icon, -> { Schematic::Types::PlanIcon }, optional: true, nullable: false
11
12
  field :name, -> { String }, optional: false, nullable: false
12
13
  field :plan_type, -> { Schematic::Types::PlanType }, optional: false, nullable: false
@@ -6,6 +6,7 @@ module Schematic
6
6
  # Input parameters
7
7
  class ListPlansParams < Internal::Types::Model
8
8
  field :company_id, -> { String }, optional: true, nullable: false
9
+ field :company_scoped_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :exclude_company_scoped, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :for_fallback_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
11
12
  field :for_initial_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -5,6 +5,7 @@ module Schematic
5
5
  module Types
6
6
  class ListPlansRequest < Internal::Types::Model
7
7
  field :company_id, -> { String }, optional: true, nullable: false
8
+ field :company_scoped_only, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
9
  field :exclude_company_scoped, -> { Internal::Types::Boolean }, optional: true, nullable: false
9
10
  field :for_fallback_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
11
  field :for_initial_plan, -> { Internal::Types::Boolean }, optional: true, nullable: false
@@ -8,6 +8,7 @@ module Schematic
8
8
  field :environment, -> { Schematic::Types::EnvironmentResponseData }, optional: true, nullable: false
9
9
  field :environment_id, -> { String }, optional: true, nullable: false
10
10
  field :id, -> { String }, optional: false, nullable: false
11
+ field :integration, -> { Schematic::Types::ApiKeyIntegrationResponseData }, optional: true, nullable: false
11
12
  field :last_used_at, -> { String }, optional: true, nullable: false
12
13
  field :name, -> { String }, optional: false, nullable: false
13
14
  field :readonly, -> { Internal::Types::Boolean }, optional: false, nullable: false
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Types
5
+ class ApiKeyIntegrationResponseData < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+ field :state, -> { Schematic::Types::IntegrationState }, optional: false, nullable: false
8
+ field :type, -> { Schematic::Types::IntegrationType }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -8,6 +8,7 @@ module Schematic
8
8
  field :environment, -> { Schematic::Types::EnvironmentResponseData }, optional: true, nullable: false
9
9
  field :environment_id, -> { String }, optional: true, nullable: false
10
10
  field :id, -> { String }, optional: false, nullable: false
11
+ field :integration, -> { Schematic::Types::ApiKeyIntegrationResponseData }, optional: true, nullable: false
11
12
  field :last_used_at, -> { String }, optional: true, nullable: false
12
13
  field :name, -> { String }, optional: false, nullable: false
13
14
  field :readonly, -> { Internal::Types::Boolean }, optional: false, nullable: false
@@ -4,6 +4,7 @@ module Schematic
4
4
  module Types
5
5
  class AuditLogListResponseData < Internal::Types::Model
6
6
  field :actor_type, -> { Schematic::Types::ActorType }, optional: false, nullable: false
7
+ field :api_key, -> { Schematic::Types::ApiKeyResponseData }, optional: true, nullable: false
7
8
  field :api_key_id, -> { String }, optional: true, nullable: false
8
9
  field :ended_at, -> { String }, optional: true, nullable: false
9
10
  field :environment, -> { Schematic::Types::EnvironmentResponseData }, optional: true, nullable: false
@@ -4,6 +4,7 @@ module Schematic
4
4
  module Types
5
5
  class AuditLogResponseData < Internal::Types::Model
6
6
  field :actor_type, -> { Schematic::Types::ActorType }, optional: false, nullable: false
7
+ field :api_key, -> { Schematic::Types::ApiKeyResponseData }, optional: true, nullable: false
7
8
  field :api_key_id, -> { String }, optional: true, nullable: false
8
9
  field :ended_at, -> { String }, optional: true, nullable: false
9
10
  field :environment, -> { Schematic::Types::EnvironmentResponseData }, optional: true, nullable: false
@@ -9,7 +9,7 @@ module Schematic
9
9
  field :credit_icon, -> { String }, optional: true, nullable: false
10
10
  field :credit_id, -> { String }, optional: false, nullable: false
11
11
  field :credit_name, -> { String }, optional: false, nullable: false
12
- field :currency_prices, -> { Internal::Types::Array[Schematic::Types::CreditBundleCurrencyPrice] }, optional: true, nullable: false
12
+ field :currency_prices, -> { Internal::Types::Array[Schematic::Types::CreditBundleCurrencyPrice] }, optional: false, nullable: false
13
13
  field :expiry_type, -> { Schematic::Types::BillingCreditExpiryType }, optional: false, nullable: false
14
14
  field :expiry_unit, -> { Schematic::Types::BillingCreditExpiryUnit }, optional: false, nullable: false
15
15
  field :expiry_unit_count, -> { Integer }, optional: true, nullable: false
@@ -7,6 +7,7 @@ module Schematic
7
7
  field :burn_strategy, -> { Schematic::Types::BillingCreditBurnStrategy }, optional: false, nullable: false
8
8
  field :cost_editable, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
9
  field :created_at, -> { String }, optional: false, nullable: false
10
+ field :currency_prices, -> { Internal::Types::Array[Schematic::Types::CreditCurrencyPrice] }, optional: false, nullable: false
10
11
  field :default_expiry_unit, -> { Schematic::Types::BillingCreditExpiryUnit }, optional: false, nullable: false
11
12
  field :default_expiry_unit_count, -> { Integer }, optional: true, nullable: false
12
13
  field :default_rollover_policy, -> { Schematic::Types::BillingCreditRolloverPolicy }, optional: false, nullable: false
@@ -9,6 +9,7 @@ module Schematic
9
9
  field :auto_topup_expiry_type, -> { Schematic::Types::BillingCreditExpiryType }, optional: true, nullable: false
10
10
  field :auto_topup_expiry_unit, -> { Schematic::Types::BillingCreditExpiryUnit }, optional: true, nullable: false
11
11
  field :auto_topup_expiry_unit_count, -> { Integer }, optional: true, nullable: false
12
+ field :auto_topup_self_service, -> { Internal::Types::Boolean }, optional: false, nullable: false
12
13
  field :auto_topup_threshold_credits, -> { Integer }, optional: true, nullable: false
13
14
  field :auto_topup_threshold_percent, -> { Integer }, optional: true, nullable: false
14
15
  field :created_at, -> { String }, optional: false, nullable: false
@@ -7,6 +7,7 @@ module Schematic
7
7
  field :external_price_id, -> { String }, optional: false, nullable: false
8
8
  field :id, -> { String }, optional: false, nullable: false
9
9
  field :interval, -> { Schematic::Types::BillingProductPriceInterval }, optional: false, nullable: false
10
+ field :interval_count, -> { Integer }, optional: false, nullable: false
10
11
  field :nickname, -> { String }, optional: true, nullable: false
11
12
  field :price, -> { Integer }, optional: false, nullable: false
12
13
  field :price_decimal, -> { String }, optional: true, nullable: false
@@ -8,6 +8,7 @@ module Schematic
8
8
  field :currency, -> { String }, optional: false, nullable: false
9
9
  field :id, -> { String }, optional: false, nullable: false
10
10
  field :interval, -> { Schematic::Types::BillingProductPriceInterval }, optional: false, nullable: false
11
+ field :interval_count, -> { Integer }, optional: false, nullable: false
11
12
  field :is_active, -> { Internal::Types::Boolean }, optional: false, nullable: false
12
13
  field :meter_event_name, -> { String }, optional: true, nullable: false
13
14
  field :meter_event_payload_key, -> { String }, optional: true, nullable: false
@@ -11,6 +11,7 @@ module Schematic
11
11
  field :external_id, -> { String }, optional: false, nullable: false
12
12
  field :id, -> { String }, optional: false, nullable: false
13
13
  field :interval, -> { String }, optional: false, nullable: false
14
+ field :interval_count, -> { Integer }, optional: true, nullable: false
14
15
  field :meter_id, -> { String }, optional: true, nullable: false
15
16
  field :name, -> { String }, optional: false, nullable: false
16
17
  field :package_size, -> { Integer }, optional: false, nullable: false
@@ -5,6 +5,7 @@ module Schematic
5
5
  class BillingProductPlanResponseData < Internal::Types::Model
6
6
  field :account_id, -> { String }, optional: false, nullable: false
7
7
  field :billing_product_id, -> { String }, optional: false, nullable: false
8
+ field :billing_strategy, -> { Schematic::Types::BillingStrategy }, optional: false, nullable: false
8
9
  field :charge_type, -> { Schematic::Types::ChargeType }, optional: false, nullable: false
9
10
  field :controlled_by, -> { Schematic::Types::BillingProviderType }, optional: false, nullable: false
10
11
  field :environment_id, -> { String }, optional: false, nullable: false
@@ -8,6 +8,7 @@ module Schematic
8
8
  field :currency, -> { String }, optional: false, nullable: false
9
9
  field :id, -> { String }, optional: false, nullable: false
10
10
  field :interval, -> { Schematic::Types::BillingProductPriceInterval }, optional: false, nullable: false
11
+ field :interval_count, -> { Integer }, optional: false, nullable: false
11
12
  field :is_active, -> { Internal::Types::Boolean }, optional: false, nullable: false
12
13
  field :meter_id, -> { String }, optional: true, nullable: false
13
14
  field :nickname, -> { String }, optional: true, nullable: false
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Schematic
4
+ module Types
5
+ module BillingStrategy
6
+ extend Schematic::Internal::Types::Enum
7
+
8
+ SCHEMATIC_MANAGED = "schematic_managed"
9
+ PROVIDER_MANAGED = "provider_managed"
10
+ NO_BILLING = "no_billing"
11
+ end
12
+ end
13
+ end
@@ -4,6 +4,7 @@ module Schematic
4
4
  module Types
5
5
  class ChangeSubscriptionInternalRequestBody < Internal::Types::Model
6
6
  field :add_on_ids, -> { Internal::Types::Array[Schematic::Types::UpdateAddOnRequestBody] }, optional: false, nullable: false
7
+ field :auto_topup_overrides, -> { Internal::Types::Array[Schematic::Types::UpdateAutoTopupOverrideRequestBody] }, optional: false, nullable: false
7
8
  field :company_id, -> { String }, optional: false, nullable: false
8
9
  field :coupon_external_id, -> { String }, optional: true, nullable: false
9
10
  field :credit_bundles, -> { Internal::Types::Array[Schematic::Types::UpdateCreditBundleRequestBody] }, optional: false, nullable: false
@@ -4,6 +4,7 @@ module Schematic
4
4
  module Types
5
5
  class ChangeSubscriptionRequestBody < Internal::Types::Model
6
6
  field :add_on_ids, -> { Internal::Types::Array[Schematic::Types::UpdateAddOnRequestBody] }, optional: false, nullable: false
7
+ field :auto_topup_overrides, -> { Internal::Types::Array[Schematic::Types::UpdateAutoTopupOverrideRequestBody] }, optional: false, nullable: false
7
8
  field :coupon_external_id, -> { String }, optional: true, nullable: false
8
9
  field :credit_bundles, -> { Internal::Types::Array[Schematic::Types::UpdateCreditBundleRequestBody] }, optional: false, nullable: false
9
10
  field :new_plan_id, -> { String }, optional: false, nullable: false
@@ -6,6 +6,7 @@ module Schematic
6
6
  extend Schematic::Internal::Types::Enum
7
7
 
8
8
  FREE = "free"
9
+ NONE = "none"
9
10
  ONE_TIME = "one_time"
10
11
  RECURRING = "recurring"
11
12
  end