svix 1.60.1 → 1.61.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.
- checksums.yaml +4 -4
- data/Gemfile +5 -1
- data/Gemfile.lock +35 -21
- data/README.md +0 -7
- data/lib/svix/api/application.rb +90 -0
- data/lib/svix/api/authentication.rb +61 -0
- data/lib/svix/api/background_task.rb +37 -0
- data/lib/svix/api/endpoint.rb +185 -0
- data/lib/svix/api/environment.rb +37 -0
- data/lib/svix/api/event_type.rb +92 -0
- data/lib/svix/api/health.rb +20 -0
- data/lib/svix/api/ingest_endpoint.rb +100 -0
- data/lib/svix/api/integration.rb +84 -0
- data/lib/svix/api/message.rb +107 -0
- data/lib/svix/api/message_attempt.rb +116 -0
- data/lib/svix/api/operational_webhook_endpoint.rb +100 -0
- data/lib/svix/api/statistics.rb +34 -0
- data/lib/svix/api_error.rb +7 -17
- data/lib/svix/errors.rb +9 -9
- data/lib/svix/http_error_out.rb +18 -0
- data/lib/svix/http_validation_error.rb +18 -0
- data/lib/svix/internal.rb +0 -9
- data/lib/svix/models/aggregate_event_types_out.rb +32 -292
- data/lib/svix/models/app_portal_access_in.rb +31 -278
- data/lib/svix/models/app_portal_access_out.rb +27 -243
- data/lib/svix/models/app_usage_stats_in.rb +30 -234
- data/lib/svix/models/app_usage_stats_out.rb +31 -320
- data/lib/svix/models/application_in.rb +31 -298
- data/lib/svix/models/application_out.rb +37 -371
- data/lib/svix/models/application_patch.rb +31 -272
- data/lib/svix/models/application_token_expire_in.rb +28 -219
- data/lib/svix/models/background_task_out.rb +31 -307
- data/lib/svix/models/background_task_status.rb +14 -25
- data/lib/svix/models/background_task_type.rb +23 -26
- data/lib/svix/models/connector_in.rb +58 -385
- data/lib/svix/models/connector_kind.rb +28 -26
- data/lib/svix/models/dashboard_access_out.rb +27 -243
- data/lib/svix/models/endpoint_headers_in.rb +25 -202
- data/lib/svix/models/endpoint_headers_out.rb +30 -230
- data/lib/svix/models/endpoint_headers_patch_in.rb +28 -202
- data/lib/svix/models/endpoint_in.rb +65 -449
- data/lib/svix/models/endpoint_message_out.rb +48 -467
- data/lib/svix/models/endpoint_out.rb +67 -528
- data/lib/svix/models/endpoint_patch.rb +61 -383
- data/lib/svix/models/endpoint_secret_out.rb +25 -222
- data/lib/svix/models/endpoint_secret_rotate_in.rb +28 -212
- data/lib/svix/models/endpoint_stats.rb +31 -245
- data/lib/svix/models/endpoint_transformation_in.rb +30 -226
- data/lib/svix/models/endpoint_transformation_out.rb +30 -228
- data/lib/svix/models/endpoint_update.rb +58 -422
- data/lib/svix/models/environment_in.rb +31 -212
- data/lib/svix/models/environment_out.rb +35 -255
- data/lib/svix/models/event_example_in.rb +27 -261
- data/lib/svix/models/event_type_from_open_api.rb +35 -341
- data/lib/svix/models/event_type_import_open_api_in.rb +37 -228
- data/lib/svix/models/event_type_import_open_api_out.rb +28 -200
- data/lib/svix/models/event_type_import_open_api_out_data.rb +31 -211
- data/lib/svix/models/event_type_in.rb +37 -347
- data/lib/svix/models/event_type_out.rb +58 -389
- data/lib/svix/models/event_type_patch.rb +35 -289
- data/lib/svix/models/event_type_update.rb +35 -301
- data/lib/svix/models/expung_all_contents_out.rb +29 -292
- data/lib/svix/models/expunge_all_contents_out.rb +55 -0
- data/lib/svix/models/ingest_endpoint_headers_in.rb +49 -0
- data/lib/svix/models/ingest_endpoint_headers_out.rb +52 -0
- data/lib/svix/models/ingest_endpoint_in.rb +64 -0
- data/lib/svix/models/ingest_endpoint_out.rb +70 -0
- data/lib/svix/models/ingest_endpoint_secret_in.rb +49 -0
- data/lib/svix/models/ingest_endpoint_secret_out.rb +49 -0
- data/lib/svix/models/ingest_endpoint_update.rb +61 -0
- data/lib/svix/models/integration_in.rb +27 -239
- data/lib/svix/models/integration_key_out.rb +25 -200
- data/lib/svix/models/integration_out.rb +33 -324
- data/lib/svix/models/integration_update.rb +27 -239
- data/lib/svix/models/list_response_application_out.rb +34 -237
- data/lib/svix/models/list_response_background_task_out.rb +34 -237
- data/lib/svix/models/list_response_endpoint_message_out.rb +34 -237
- data/lib/svix/models/list_response_endpoint_out.rb +34 -237
- data/lib/svix/models/list_response_event_type_out.rb +34 -237
- data/lib/svix/models/list_response_ingest_endpoint_out.rb +58 -0
- data/lib/svix/models/list_response_integration_out.rb +34 -237
- data/lib/svix/models/list_response_message_attempt_out.rb +34 -237
- data/lib/svix/models/list_response_message_endpoint_out.rb +34 -237
- data/lib/svix/models/list_response_message_out.rb +34 -237
- data/lib/svix/models/list_response_operational_webhook_endpoint_out.rb +34 -237
- data/lib/svix/models/message_attempt_out.rb +64 -521
- data/lib/svix/models/message_attempt_trigger_type.rb +20 -28
- data/lib/svix/models/message_endpoint_out.rb +70 -557
- data/lib/svix/models/message_in.rb +58 -450
- data/lib/svix/models/message_out.rb +37 -414
- data/lib/svix/models/message_status.rb +24 -30
- data/lib/svix/models/operational_webhook_endpoint_headers_in.rb +28 -202
- data/lib/svix/models/operational_webhook_endpoint_headers_out.rb +30 -229
- data/lib/svix/models/operational_webhook_endpoint_in.rb +42 -380
- data/lib/svix/models/operational_webhook_endpoint_out.rb +64 -458
- data/lib/svix/models/operational_webhook_endpoint_secret_in.rb +28 -212
- data/lib/svix/models/operational_webhook_endpoint_secret_out.rb +28 -222
- data/lib/svix/models/operational_webhook_endpoint_update.rb +40 -353
- data/lib/svix/models/ordering.rb +15 -25
- data/lib/svix/models/recover_in.rb +28 -210
- data/lib/svix/models/recover_out.rb +29 -292
- data/lib/svix/models/replay_in.rb +28 -210
- data/lib/svix/models/replay_out.rb +29 -292
- data/lib/svix/models/status_code_class.rb +28 -32
- data/lib/svix/models/template_out.rb +70 -514
- data/lib/svix/svix.rb +50 -50
- data/lib/svix/svix_http_client.rb +110 -0
- data/lib/svix/util.rb +44 -25
- data/lib/svix/validation_error.rb +28 -0
- data/lib/svix/version.rb +1 -1
- data/lib/svix/webhook.rb +69 -65
- data/lib/svix.rb +60 -37
- data/svix.gemspec +1 -10
- data/templates/api_extra/application_create.rb +16 -0
- data/templates/api_extra/message.rb +26 -0
- data/templates/api_resource.rb.jinja +71 -0
- data/templates/component_type.rb.jinja +7 -0
- data/templates/summary.rb.jinja +41 -0
- data/templates/types/integer_enum.rb.jinja +37 -0
- data/templates/types/string_enum.rb.jinja +37 -0
- data/templates/types/struct.rb.jinja +87 -0
- metadata +40 -194
- data/lib/svix/api/application_api.rb +0 -772
- data/lib/svix/api/authentication_api.rb +0 -791
- data/lib/svix/api/background_tasks_api.rb +0 -191
- data/lib/svix/api/broadcast_api.rb +0 -93
- data/lib/svix/api/endpoint_api.rb +0 -2752
- data/lib/svix/api/environment_api.rb +0 -153
- data/lib/svix/api/environment_settings_api.rb +0 -79
- data/lib/svix/api/event_type_api.rb +0 -852
- data/lib/svix/api/events_api.rb +0 -102
- data/lib/svix/api/health_api.rb +0 -79
- data/lib/svix/api/inbound_api.rb +0 -209
- data/lib/svix/api/integration_api.rb +0 -707
- data/lib/svix/api/message_api.rb +0 -1192
- data/lib/svix/api/message_attempt_api.rb +0 -1245
- data/lib/svix/api/statistics_api.rb +0 -333
- data/lib/svix/api/stream_api.rb +0 -659
- data/lib/svix/api/stream_event_types_api.rb +0 -486
- data/lib/svix/api/transformation_template_api.rb +0 -967
- data/lib/svix/api/webhook_endpoint_api.rb +0 -748
- data/lib/svix/api_client.rb +0 -423
- data/lib/svix/application_api.rb +0 -35
- data/lib/svix/authentication_api.rb +0 -21
- data/lib/svix/background_tasks_api.rb +0 -17
- data/lib/svix/configuration.rb +0 -312
- data/lib/svix/endpoint_api.rb +0 -80
- data/lib/svix/event_type_api.rb +0 -37
- data/lib/svix/integration_api.rb +0 -38
- data/lib/svix/message_api.rb +0 -54
- data/lib/svix/message_attempt_api.rb +0 -51
- data/lib/svix/models/active_application_out.rb +0 -373
- data/lib/svix/models/active_endpoint_out.rb +0 -355
- data/lib/svix/models/aggregated_event_types.rb +0 -305
- data/lib/svix/models/application_message_failure.rb +0 -277
- data/lib/svix/models/application_message_id_pair.rb +0 -317
- data/lib/svix/models/application_stats.rb +0 -323
- data/lib/svix/models/application_stats_out.rb +0 -324
- data/lib/svix/models/attempt_statistics_data.rb +0 -229
- data/lib/svix/models/attempt_statistics_response.rb +0 -291
- data/lib/svix/models/auth_token_out.rb +0 -325
- data/lib/svix/models/azure_blob_storage_config.rb +0 -253
- data/lib/svix/models/background_task_finished_event.rb +0 -272
- data/lib/svix/models/background_task_finished_event2.rb +0 -331
- data/lib/svix/models/big_query_config.rb +0 -271
- data/lib/svix/models/border_radius_config.rb +0 -254
- data/lib/svix/models/border_radius_enum.rb +0 -43
- data/lib/svix/models/client_secret_jwt_params_in.rb +0 -297
- data/lib/svix/models/completion_choice.rb +0 -253
- data/lib/svix/models/completion_message.rb +0 -237
- data/lib/svix/models/count_out.rb +0 -258
- data/lib/svix/models/create_stream_in.rb +0 -232
- data/lib/svix/models/create_token_in.rb +0 -248
- data/lib/svix/models/custom_color_palette.rb +0 -295
- data/lib/svix/models/custom_strings_override.rb +0 -235
- data/lib/svix/models/custom_theme_override.rb +0 -223
- data/lib/svix/models/data.rb +0 -108
- data/lib/svix/models/data_any_of.rb +0 -240
- data/lib/svix/models/data_any_of1.rb +0 -223
- data/lib/svix/models/data_any_of2.rb +0 -241
- data/lib/svix/models/data_any_of3.rb +0 -223
- data/lib/svix/models/data_any_of4.rb +0 -240
- data/lib/svix/models/duration.rb +0 -275
- data/lib/svix/models/endpoint_created_event.rb +0 -272
- data/lib/svix/models/endpoint_created_event_data.rb +0 -410
- data/lib/svix/models/endpoint_deleted_event.rb +0 -272
- data/lib/svix/models/endpoint_deleted_event_data.rb +0 -410
- data/lib/svix/models/endpoint_disabled_event.rb +0 -272
- data/lib/svix/models/endpoint_disabled_event_data.rb +0 -451
- data/lib/svix/models/endpoint_disabled_trigger.rb +0 -40
- data/lib/svix/models/endpoint_enabled_event.rb +0 -272
- data/lib/svix/models/endpoint_enabled_event_data.rb +0 -410
- data/lib/svix/models/endpoint_mtls_config_in.rb +0 -233
- data/lib/svix/models/endpoint_mtls_config_out.rb +0 -215
- data/lib/svix/models/endpoint_oauth_config_in.rb +0 -350
- data/lib/svix/models/endpoint_oauth_config_out.rb +0 -315
- data/lib/svix/models/endpoint_transformation_simulate_in.rb +0 -330
- data/lib/svix/models/endpoint_transformation_simulate_out.rb +0 -296
- data/lib/svix/models/endpoint_updated_event.rb +0 -272
- data/lib/svix/models/endpoint_updated_event_data.rb +0 -410
- data/lib/svix/models/environment_settings_out.rb +0 -455
- data/lib/svix/models/event_in.rb +0 -258
- data/lib/svix/models/event_out.rb +0 -274
- data/lib/svix/models/event_stream_out.rb +0 -255
- data/lib/svix/models/event_type_example_out.rb +0 -221
- data/lib/svix/models/event_type_schema_in.rb +0 -221
- data/lib/svix/models/export_event_type_out.rb +0 -315
- data/lib/svix/models/font_size_config.rb +0 -230
- data/lib/svix/models/generate_in.rb +0 -221
- data/lib/svix/models/generate_out.rb +0 -287
- data/lib/svix/models/google_cloud_storage_config.rb +0 -239
- data/lib/svix/models/http_error_out.rb +0 -237
- data/lib/svix/models/http_validation_error.rb +0 -223
- data/lib/svix/models/hubspot_oauth_config_in.rb +0 -221
- data/lib/svix/models/inbound_path_params.rb +0 -277
- data/lib/svix/models/incoming_webhook_payload_out.rb +0 -235
- data/lib/svix/models/kafka_security_protocol_type.rb +0 -41
- data/lib/svix/models/list_response_active_application_out.rb +0 -261
- data/lib/svix/models/list_response_application_stats.rb +0 -261
- data/lib/svix/models/list_response_message_attempt_endpoint_out.rb +0 -261
- data/lib/svix/models/list_response_sink_out.rb +0 -261
- data/lib/svix/models/list_response_stream_event_type_out.rb +0 -261
- data/lib/svix/models/list_response_stream_out.rb +0 -261
- data/lib/svix/models/list_response_stream_sink_out.rb +0 -261
- data/lib/svix/models/list_response_template_out.rb +0 -261
- data/lib/svix/models/message_attempt_endpoint_out.rb +0 -545
- data/lib/svix/models/message_attempt_exhausted_event.rb +0 -272
- data/lib/svix/models/message_attempt_exhausted_event_data.rb +0 -482
- data/lib/svix/models/message_attempt_failed_data.rb +0 -293
- data/lib/svix/models/message_attempt_failing_event.rb +0 -272
- data/lib/svix/models/message_attempt_failing_event_data.rb +0 -482
- data/lib/svix/models/message_attempt_headers_out.rb +0 -263
- data/lib/svix/models/message_attempt_recovered_event.rb +0 -272
- data/lib/svix/models/message_attempt_recovered_event_data.rb +0 -482
- data/lib/svix/models/message_broadcast_in.rb +0 -423
- data/lib/svix/models/message_broadcast_out.rb +0 -315
- data/lib/svix/models/message_events_out.rb +0 -255
- data/lib/svix/models/message_precheck_in.rb +0 -288
- data/lib/svix/models/message_precheck_out.rb +0 -221
- data/lib/svix/models/message_raw_payload_out.rb +0 -221
- data/lib/svix/models/message_subscriber_auth_token_out.rb +0 -237
- data/lib/svix/models/o_auth_payload_in.rb +0 -237
- data/lib/svix/models/o_auth_payload_out.rb +0 -235
- data/lib/svix/models/oauth2_auth_method_in_out.rb +0 -41
- data/lib/svix/models/oauth2_grant_type_in_out.rb +0 -40
- data/lib/svix/models/oauth_jws_signing_algorithm.rb +0 -39
- data/lib/svix/models/one_time_token_in.rb +0 -221
- data/lib/svix/models/one_time_token_out.rb +0 -221
- data/lib/svix/models/polling_endpoint_message_out.rb +0 -454
- data/lib/svix/models/polling_endpoint_out.rb +0 -255
- data/lib/svix/models/redshift_config.rb +0 -317
- data/lib/svix/models/retry_schedule_in_out.rb +0 -216
- data/lib/svix/models/rotate_poller_token_in.rb +0 -280
- data/lib/svix/models/rotated_url_out.rb +0 -221
- data/lib/svix/models/s3_config.rb +0 -269
- data/lib/svix/models/sink_http_config.rb +0 -242
- data/lib/svix/models/sink_in.rb +0 -108
- data/lib/svix/models/sink_in_one_of.rb +0 -287
- data/lib/svix/models/sink_in_one_of1.rb +0 -319
- data/lib/svix/models/sink_in_one_of2.rb +0 -325
- data/lib/svix/models/sink_in_one_of3.rb +0 -271
- data/lib/svix/models/sink_in_one_of4.rb +0 -255
- data/lib/svix/models/sink_otel_v1_config.rb +0 -221
- data/lib/svix/models/sink_out.rb +0 -108
- data/lib/svix/models/sink_payload_format.rb +0 -39
- data/lib/svix/models/sink_secret_out.rb +0 -233
- data/lib/svix/models/sink_status.rb +0 -41
- data/lib/svix/models/sink_status_in.rb +0 -40
- data/lib/svix/models/sink_transform_in.rb +0 -248
- data/lib/svix/models/sink_transformation_out.rb +0 -226
- data/lib/svix/models/snowflake_config.rb +0 -287
- data/lib/svix/models/statistics_period.rb +0 -40
- data/lib/svix/models/stream_event_type_in.rb +0 -262
- data/lib/svix/models/stream_event_type_out.rb +0 -294
- data/lib/svix/models/stream_event_type_patch.rb +0 -254
- data/lib/svix/models/stream_in.rb +0 -287
- data/lib/svix/models/stream_out.rb +0 -350
- data/lib/svix/models/stream_patch.rb +0 -261
- data/lib/svix/models/stream_portal_access_in.rb +0 -293
- data/lib/svix/models/stream_sink_in.rb +0 -111
- data/lib/svix/models/stream_sink_in_one_of.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of1.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of2.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of3.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of4.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of5.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of6.rb +0 -271
- data/lib/svix/models/stream_sink_in_one_of7.rb +0 -271
- data/lib/svix/models/stream_sink_out.rb +0 -111
- data/lib/svix/models/stream_sink_patch.rb +0 -111
- data/lib/svix/models/template_patch.rb +0 -382
- data/lib/svix/models/template_update.rb +0 -402
- data/lib/svix/models/transformation_http_method.rb +0 -41
- data/lib/svix/models/transformation_simulate_in.rb +0 -330
- data/lib/svix/models/transformation_simulate_out.rb +0 -296
- data/lib/svix/models/validation_error.rb +0 -259
- data/lib/svix/statistics_api.rb +0 -17
data/svix.gemspec
CHANGED
@@ -19,11 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
Thank you for installing svix!
|
21
21
|
|
22
|
-
If you are using svix to send outgoing webhhooks, you should also install the `typhoeus` gem.
|
23
|
-
If you are only using svix to consume incoming webhooks, you do not need it.
|
24
|
-
|
25
|
-
gem 'typhoeus`
|
26
|
-
|
27
22
|
MESSAGE
|
28
23
|
|
29
24
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
@@ -41,13 +36,9 @@ Gem::Specification.new do |spec|
|
|
41
36
|
|
42
37
|
# Specify which files should be added to the gem when it is released.
|
43
38
|
ignored = Regexp.union(
|
44
|
-
/\A\.openapi-generator/,
|
45
39
|
/\Aspec/,
|
46
40
|
/\Apkg/,
|
47
|
-
/\Atemplates/,
|
48
41
|
/\A.gitignore/,
|
49
|
-
/\A.openapi-generator-ignore/,
|
50
|
-
/\Aopenapi-generator-config.json/,
|
51
42
|
/.gem\z/
|
52
43
|
)
|
53
44
|
spec.files = Dir['**/*'].reject {|f| !File.file?(f) || ignored.match(f) }
|
@@ -58,5 +49,5 @@ Gem::Specification.new do |spec|
|
|
58
49
|
|
59
50
|
spec.add_development_dependency "rake", "~> 13.0"
|
60
51
|
spec.add_development_dependency "rspec", "~> 3.2"
|
61
|
-
spec.add_development_dependency '
|
52
|
+
spec.add_development_dependency 'webmock', '~> 3.25'
|
62
53
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
def get_or_create(application_in, options = {})
|
2
|
+
options = options.transform_keys(&:to_s)
|
3
|
+
path = "/api/v1/app"
|
4
|
+
res = @client.execute_request(
|
5
|
+
"POST",
|
6
|
+
path,
|
7
|
+
query_params: {
|
8
|
+
"get_if_exists" => true
|
9
|
+
},
|
10
|
+
headers: {
|
11
|
+
"idempotency-key" => options["idempotency-key"]
|
12
|
+
},
|
13
|
+
body: application_in
|
14
|
+
)
|
15
|
+
ApplicationOut.deserialize(res)
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Creates a [`MessageIn`] with a raw string payload.
|
2
|
+
#
|
3
|
+
# The payload is not normalized on the server. Normally, payloads are required
|
4
|
+
# to be JSON, and Svix will minify the payload before sending the webhook
|
5
|
+
# (for example, by removing extraneous whitespace or unnecessarily escaped
|
6
|
+
# characters in strings). With this function, the payload will be sent
|
7
|
+
# "as is", without any minification or other processing.
|
8
|
+
#
|
9
|
+
# `attributes[:payload]` must be a string. An extra attribute `content_type`
|
10
|
+
# is accepted that sets the `content-type` header of the webhook sent by Svix,
|
11
|
+
# overwriting the default of `application/json` if specified. Other than that,
|
12
|
+
# the attributes are forwarded [`MessageIn.new`], so all the same ones are
|
13
|
+
# accepted.
|
14
|
+
def message_in_raw(attributes = {})
|
15
|
+
attributes[:transformations_params] ||= {}
|
16
|
+
attributes[:transformations_params][:rawPayload] = attributes[:payload]
|
17
|
+
attributes[:payload] = {}
|
18
|
+
|
19
|
+
content_type = attributes.delete(:content_type)
|
20
|
+
if content_type != nil
|
21
|
+
attributes[:transformations_params][:headers] ||= {}
|
22
|
+
attributes[:transformations_params][:headers][:"content-type"] = content_type
|
23
|
+
end
|
24
|
+
|
25
|
+
MessageIn.new(attributes)
|
26
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
{% set resource_type_name = resource.name | to_upper_camel_case -%}
|
2
|
+
# frozen_string_literal: true
|
3
|
+
# This file is @generated
|
4
|
+
|
5
|
+
require 'net/http'
|
6
|
+
|
7
|
+
|
8
|
+
module Svix
|
9
|
+
{% if resource.name == "message" -%}
|
10
|
+
module_function
|
11
|
+
{% include "api_extra/message.rb" %}
|
12
|
+
{% endif -%}
|
13
|
+
class {{ resource_type_name }}
|
14
|
+
def initialize(client)
|
15
|
+
@client = client
|
16
|
+
end
|
17
|
+
{% for op in resource.operations %}
|
18
|
+
{% set func_args -%}
|
19
|
+
{# path params -#}
|
20
|
+
{%- for p in op.path_params -%}
|
21
|
+
{{ p | to_snake_case }},
|
22
|
+
{%- endfor -%}
|
23
|
+
{# request body -#}
|
24
|
+
{%- if op.request_body_schema_name is defined -%}
|
25
|
+
{{ op.request_body_schema_name | to_snake_case }},
|
26
|
+
{%- endif -%}
|
27
|
+
{# header/query params -#}
|
28
|
+
{%- if op | has_query_or_header_params -%}
|
29
|
+
options = {}
|
30
|
+
{%- endif -%}
|
31
|
+
{% endset -%}
|
32
|
+
|
33
|
+
def {{ op.name | to_snake_case }}({{ func_args | strip_trailing_comma }})
|
34
|
+
{% if op | has_query_or_header_params -%}
|
35
|
+
options = options.transform_keys(&:to_s)
|
36
|
+
{% endif -%}
|
37
|
+
{% if op.response_body_schema_name is defined -%}res = {% endif -%}
|
38
|
+
@client.execute_request(
|
39
|
+
"{{ op.method | upper }}",
|
40
|
+
"{{ op.path | generate_ruby_path_str(op.path_params) }}",
|
41
|
+
{% if op.query_params | length >0 -%}
|
42
|
+
query_params:{
|
43
|
+
{% for p in op.query_params -%}
|
44
|
+
"{{ p.name }}" => options["{{ p.name }}"],
|
45
|
+
{% endfor -%}
|
46
|
+
},
|
47
|
+
{% endif -%}
|
48
|
+
{% if op.header_params | length >0 -%}
|
49
|
+
headers:{
|
50
|
+
{% for p in op.header_params -%}
|
51
|
+
"{{ p.name }}" => options["{{ p.name }}"],
|
52
|
+
{% endfor -%}
|
53
|
+
},
|
54
|
+
{% endif -%}
|
55
|
+
{% if op.request_body_schema_name is defined -%}
|
56
|
+
body: {{ op.request_body_schema_name | to_snake_case }},
|
57
|
+
{% endif -%}
|
58
|
+
)
|
59
|
+
{% if op.response_body_schema_name is defined -%}
|
60
|
+
{{ op.response_body_schema_name | to_upper_camel_case }}.deserialize res
|
61
|
+
{% endif %}
|
62
|
+
end
|
63
|
+
|
64
|
+
{% set extra_path -%}
|
65
|
+
api_extra/{{ resource.name | to_snake_case }}_{{ op.name | to_snake_case }}.rb
|
66
|
+
{%- endset -%}
|
67
|
+
{% include extra_path ignore missing %}
|
68
|
+
|
69
|
+
{% endfor -%}
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file is @generated
|
3
|
+
|
4
|
+
require "json"
|
5
|
+
require "openssl"
|
6
|
+
require "base64"
|
7
|
+
require "uri"
|
8
|
+
require "logger"
|
9
|
+
|
10
|
+
{% macro require_api(resource) -%}
|
11
|
+
{% if resource.operations | length > 0 -%}
|
12
|
+
require "svix/api/{{ resource.name | to_snake_case }}"
|
13
|
+
{% endif -%}
|
14
|
+
{% endmacro -%}
|
15
|
+
|
16
|
+
|
17
|
+
# API
|
18
|
+
{% for resource in api.resources -%}
|
19
|
+
{{ require_api(resource) -}}
|
20
|
+
{% for _resource_name, resource in resource.subresources | items -%}
|
21
|
+
{{ require_api(resource) -}}
|
22
|
+
{% endfor -%}
|
23
|
+
{% endfor -%}
|
24
|
+
|
25
|
+
# Models
|
26
|
+
{% for type in types -%}
|
27
|
+
require "svix/models/{{ type | to_snake_case }}"
|
28
|
+
{% endfor -%}
|
29
|
+
|
30
|
+
# Core
|
31
|
+
require "svix/api_error"
|
32
|
+
require "svix/errors"
|
33
|
+
require "svix/svix"
|
34
|
+
require "svix/util"
|
35
|
+
require "svix/version"
|
36
|
+
require "svix/webhook"
|
37
|
+
require "svix/http_error_out"
|
38
|
+
require "svix/http_validation_error"
|
39
|
+
require "svix/validation_error"
|
40
|
+
require "svix/svix_http_client.rb"
|
41
|
+
require "svix/internal"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file is @generated
|
3
|
+
{% set class_ty = type.name | to_upper_camel_case -%}
|
4
|
+
|
5
|
+
module Svix
|
6
|
+
{% if type.description is defined -%}
|
7
|
+
{{ type.description | to_doc_comment(style="ruby") | indent(4) }}
|
8
|
+
{% endif -%}
|
9
|
+
class {{ class_ty }}
|
10
|
+
{% for name, value in type.variants -%}
|
11
|
+
{{ name | to_upper_snake_case }} = {{ value }}.freeze
|
12
|
+
{% endfor %}
|
13
|
+
def self.all_vars
|
14
|
+
@all_vars ||= [
|
15
|
+
{%- for name, value in type.variants -%}
|
16
|
+
{{ name | to_upper_snake_case }},
|
17
|
+
{%- endfor -%}
|
18
|
+
].freeze
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(value)
|
22
|
+
unless {{ class_ty }}.all_vars.include?(value)
|
23
|
+
raise "Invalid ENUM value '#{value}' for class #{{ class_ty }}"
|
24
|
+
end
|
25
|
+
@value = value
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.deserialize(value)
|
29
|
+
return value if {{ class_ty }}.all_vars.include?(value)
|
30
|
+
raise "Invalid ENUM value '#{value}' for class #{{ class_ty }}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def serialize
|
34
|
+
@value
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file is @generated
|
3
|
+
{% set class_ty = type.name | to_upper_camel_case -%}
|
4
|
+
|
5
|
+
module Svix
|
6
|
+
{% if type.description is defined -%}
|
7
|
+
{{ type.description | to_doc_comment(style="ruby") | indent(4) }}
|
8
|
+
{% endif -%}
|
9
|
+
class {{ class_ty }}
|
10
|
+
{% for value in type.values -%}
|
11
|
+
{{ value | to_upper_snake_case }} = "{{ value }}".freeze
|
12
|
+
{% endfor %}
|
13
|
+
def self.all_vars
|
14
|
+
@all_vars ||= [
|
15
|
+
{%- for value in type.values -%}
|
16
|
+
{{ value | to_upper_snake_case }},
|
17
|
+
{%- endfor -%}
|
18
|
+
].freeze
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(value)
|
22
|
+
unless {{ class_ty }}.all_vars.include?(value)
|
23
|
+
raise "Invalid ENUM value '#{value}' for class #{{ class_ty }}"
|
24
|
+
end
|
25
|
+
@value = value
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.deserialize(value)
|
29
|
+
return value if {{ class_ty }}.all_vars.include?(value)
|
30
|
+
raise "Invalid ENUM value '#{value}' for class #{{ class_ty }}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def serialize
|
34
|
+
@value
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file is @generated
|
3
|
+
{% set class_ty = type.name | to_upper_camel_case -%}
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Svix
|
7
|
+
{% if type.description is defined -%}
|
8
|
+
{{ type.description | to_doc_comment(style="ruby") | indent(4) }}
|
9
|
+
{% endif -%}
|
10
|
+
class {{ class_ty }}
|
11
|
+
{% for field in type.fields -%}
|
12
|
+
attr_accessor :{{ field.name | to_snake_case }}
|
13
|
+
{% endfor %}
|
14
|
+
ALL_FIELD ||= [
|
15
|
+
{%- for f in type.fields -%}
|
16
|
+
"{{ f.name | to_snake_case }}"{% if not loop.last %},{% endif %}
|
17
|
+
{%- endfor -%}
|
18
|
+
].freeze
|
19
|
+
private_constant :ALL_FIELD
|
20
|
+
|
21
|
+
def initialize(attributes = {})
|
22
|
+
unless attributes.is_a?(Hash)
|
23
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Svix::{{ class_ty }}` new method"
|
24
|
+
end
|
25
|
+
attributes.each do |k, v|
|
26
|
+
unless ALL_FIELD.include? k.to_s
|
27
|
+
fail ArgumentError, "The field #{k} is not part of Svix::{{ class_ty }}"
|
28
|
+
end
|
29
|
+
instance_variable_set("@#{k}", v)
|
30
|
+
instance_variable_set("@__#{k}_is_defined", true)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.deserialize(attributes = {})
|
35
|
+
attributes = attributes.transform_keys(&:to_s)
|
36
|
+
attrs = Hash.new
|
37
|
+
{% for field in type.fields -%}
|
38
|
+
{% set val_expr %}attributes['{{ field.name }}']{% endset -%}
|
39
|
+
{% set not_nil_check = "" -%}
|
40
|
+
{% if not field.required -%}
|
41
|
+
{% set not_nil_check %}if {{ val_expr }}{% endset -%}
|
42
|
+
{% endif -%}
|
43
|
+
|
44
|
+
{% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
|
45
|
+
{% set val_expr -%}
|
46
|
+
attributes['{{ field.name }}'].map { | v | Svix::{{ field.type.inner_type().to_ruby() }}.deserialize v } {{ not_nil_check }}
|
47
|
+
{%- endset -%}
|
48
|
+
{% elif field.type.is_schema_ref() -%}
|
49
|
+
{% set val_expr -%}
|
50
|
+
Svix::{{ field.type.to_ruby() }}.deserialize(attributes['{{ field.name }}']) {{ not_nil_check }}
|
51
|
+
{%- endset -%}
|
52
|
+
{% elif field.type.is_datetime() -%}
|
53
|
+
{% set val_expr %}DateTime.rfc3339({{ val_expr }}).to_time {{ not_nil_check }}{% endset -%}
|
54
|
+
{% endif -%}
|
55
|
+
attrs['{{ field.name | to_snake_case }}'] = {{ val_expr }}
|
56
|
+
{% endfor -%}
|
57
|
+
new attrs
|
58
|
+
end
|
59
|
+
|
60
|
+
def serialize
|
61
|
+
out = Hash.new
|
62
|
+
{% for field in type.fields -%}
|
63
|
+
{% set val_expr %}@{{ field.name | to_snake_case }}{% endset -%}
|
64
|
+
|
65
|
+
{% if (field.type.is_set() or field.type.is_list()) and field.type.inner_type().is_schema_ref() -%}
|
66
|
+
{% set val_expr %}{{ val_expr }}.map { | v | v.serialize }{% endset -%}
|
67
|
+
{% elif field.type.is_schema_ref() -%}
|
68
|
+
{% set val_expr %}{{ val_expr }}.serialize{% endset -%}
|
69
|
+
{% else -%}
|
70
|
+
{% set val_expr %}Svix::serialize_primitive({{ val_expr }}){% endset -%}
|
71
|
+
{% endif -%}
|
72
|
+
{% if type.name is endingwith "Patch" and field.nullable -%}
|
73
|
+
out['{{ field.name }}'] = {{ val_expr }} if @__{{ field.name | to_snake_case }}_is_defined
|
74
|
+
{% else -%}
|
75
|
+
out['{{ field.name }}'] = {{ val_expr }} if @{{ field.name | to_snake_case }}
|
76
|
+
{% endif -%}
|
77
|
+
{% endfor -%}
|
78
|
+
out
|
79
|
+
end
|
80
|
+
|
81
|
+
# Serializes the object to a json string
|
82
|
+
# @return String
|
83
|
+
def to_json
|
84
|
+
JSON.dump(serialize)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|